前言
在日常运营的基础上,不免需要关注一些能改善效率,提高生产力的技术或解决方案,本文列举一些技术点并加以描述,在适当的时候可以做相关的测试并且实际应用到开发中去。
下面列出的众多内容每个展开都包含了很多内容,因此目前的版本只包含条目不做过多的解释说明,简单的介绍可以通过搜索引擎查询获得。下一步的目标就是将这些内容细化了解,总结优缺点,方便在实际项目设计规划时使用。
操作系统 & 文件系统
l Solaris – 由于它与java都是同一家厂商,所以如果使用j2se,j2ee解决方案的话,需要验证在其系统上是否效率最高(原本的经验来看,的确会在效率上与其它操作系统内核有区别)。测试评估OpenSolaris和Solaris企业版的性能差异。
l SUSE – Novell提供的比较稳定的Linux系统,相比RedHat近年更加广泛的使用在服务器解决方案上。
l FreeBSD – 比较鼻祖的类UNIX系统,应花时间测试它与其它系统之间的性能差异
l LFS – 从文档构建自己定制的Linux发行版,此项目可以帮助我们了解Linux系统软件包之间的关系,并且按照我们自身业务的需求定制系统或简化当前使用的Linux发行版,提高系统运行效率和减少安全隐患。
l ReiserFS & Reiser4 – 对小文件处理效率比较高的文件系统,适合网站应用,但是现在面临后续开发终止的问题,所以适当的测试和比较,谨慎使用。
l Ext4 – 新的Linux默认文件系统,对其效率应该有相应的测试
l MogileFS –- 分布式文件系统,用以研究分布式文件系统架构以及系统设计难点。
l GoogleFS – 非开放的分布式文件系统,但是网上有人在讨论,通过研究可以学习其精华思路。
l Amazon Simple Storage Service (Amazon S3) – 这个应用预示了未来Web Service的发展趋势。研究它的API和使用方法有助于规划我们自己的系统。
数据库 & 缓存
l Memcached – 缓存技术的常用工具,延伸要研究纯内存存储机制。
l O/R Mapping –- 对象/关系型数据转换,现在很多应用程序开发都是面向对象的,怎么将程序中的对象和数据库的关系数据表进行快速简单的映射,是这个思想的关键,有很多解决方案,需要逐个分析测试效率,并吸取其思路。
l 面向对象数据库 –- 解决面向对象开发一条龙问题,需要测试相关产品积累经验。
l BigTable –- 分布式数据存储系统,非开放,通过学习可以了解其精华思路
l MySQL – 测试研究新版本的效率。被SUN收购后社区内的发展并不乐观,所以保持观望态度。
l PostgreSQL – 作为MySQL替代的产品,测试跟进其效率
l SQLite – 轻型文件型数据库系统,适合一些特殊应用,目前Google将其应用于Gears离线应用解决方案中。
热门编程语言
l Ruby – 面向对象语言热中之热,很多思想和编程风格,都可以在任何语言借鉴。另外体会纯面向对象的设计思路,也是不错的选择。目前Ruby开发的商用系统还不多,有待观察,可以作为一个学习工具使用。
l Python – 另外一个很热的面向对象脚本语言,Google核心支持的一种应用开发语言,可以用于多种用途,在后台可以作为增强的Bash Shell脚本语言来使用。值得推荐的工具。
l JavaScript & ActionScript 两个语言语法类似但是用途不同,前者在web 2.0炒得沸沸扬扬的时候算是主角,并且Google还使用它开发了重型产品Gmail和GoogleMap,一切证明它是一个浏览器级前端脚本语言的趋势;后者在Flash世界中举足轻重,可以理解成任何的面向视觉的flash开发,最终通过Flash CS工具都会转成ActionScript来运行,所以如果直接使用ActionScript来开发的话,效率会比原来的方法高,并且更适合程序员的习惯。
l Lua – 轻型嵌入式脚本语言,用于需要自定义脚本的时候,因为魔兽世界而让更多的人有所关注。
程序框架
l Struts – Java世界有关MVC结构的重要项目
l Spring MVC – 另外一个Java世界中的框架
l RubyOnRails – Ruby用于网页开发的经典框架
l CakePHP – RubyOnRails在PHP语言环境下的实现
l 其它Web MVC – 研究对比MVC框架是会提高应用开发的效率,根据业务要求选择适合的框架事半功倍,但是需要注意的是传统的MVC结构和Web的MVC结构是不一样的,需要区分。
Ajax辅助开发工具包
l Dojo Toolkit – 最火的Ajax开发工具包
l Google Web Toolkit – Google提供的Ajax开发工具包
l jQuery – 另外一个轻量化的开发工具包
l AjaxTag – 在Java世界使用的Ajax开发工具包
l MochiKit – 轻量级JS工具包
思想 & 方法论
l Mashup – 可以理解为聚合,如何使用几种数据、各方面的信息组合产生新的应用价值。例如早年电子商务网站的价格比价工具。
l RESTful(Representational State Transfer) – Web Service的一种理论,规范如何制作面向应用程序优化的Web应用。
l 自动测试 – 极限编程的讨论引发了对这个东西的关注,如何适当的利用自动测试方法,可以提高开发效率。重点关注JUnit,PHPUnit等项目。
l Comet – 基于 HTTP 长连接的“服务器推”技术思想,其实在dojo项目里有体现,但是如果能分离此思想,可用于很多需要频繁获取数据的应用上,例如Web版本的IM应用,聊天室等。
l Linking Open Data,LOD – 将内容资源用链接标记成唯一的对象方便引用或使用的思想。
杂项
l JavaScript Object Notation(JSON)- JS内部的数据对象格式,参照其格式就可以很快的将数据进行处理,因为JSON在JS内部是优化的,相比一些字符串操作、XML操作会有一定优势。
l ECMAscript – 遵循标准化的JS的代名词
l Resource Description Framework(RDF)- 是万维网联盟(W3C)提出的一组标记语言的技术标准, 以便对网络资源的内容与结构作更为丰富的描述和表达。
l 检索结果分析给用户提供检索建议 – 这方面看似是一个小功能,但背后隐藏着整个数据分析体系的思想,希望通过小项目来介入数据挖掘领域的研究。
l Google Gears – Google提出的离线应用的支持平台,通过研究Gears的原理可以了解一些新的开发思路。
总结
列举了很多东西算是内容丰富了,个人建议有机会的话都要深入研究一下,但是涉及面比较广,不可能个人力量完成,所以有待团队协作把这些东西弄熟悉。
孙绍轩 2008/10/17