那些年我用过的开源软件、框架

作为一个Java程序员,我想我们很多时候都需要和开源(open source software)扯上关系,我不得不说如果我的生活没有开源,肯定会比现在更糟,我们程序员效率一定没有现在这么高。我们通过使用那些著名的开源软件,逐步深入,不断提升了自己的编码水平。也学习了人家的设计功力。


到目前为止我没有设计出或者说贡献出什么开源软件,我自知自己的能力真的还不够。不过我希望哪一天可以为开源世界添砖加瓦,也希望其他童鞋能够加入这个行列。让世界变得更美好。

下面是我曾经用过的开源软件,可能有些只是简单了解,并不是很熟悉,但是我觉得它很不错也会记录在下面:

========================== 开发语言 ===============================

Java 不多说,正是我现在深入学习,使用的。

PHP 适合于快速开发的服务器语言。我只是学习过一些,大概有两三次学习,每次都是学习一点,然后又放弃。最后遗忘。因为我还是喜欢java

Node.js 基于js的服务器后台语言框架。其非阻塞的特点,便于开发高性能的网站。开发快速,现在在国内已经开始流行,而且有很多开源的组件,使得node.js的可以实现的功能越来越多,比如著名的express.js 这是提供快速开发网站的支持,自带restful

C#, C ,曾经学过,现在已经快忘得差不多。

javascript 主要是用于浏览器的脚本语言,现在有了node.js当然也可以用在后台服务器,入门较简单。jquery也是必学。学好这个东西很重要。现在HTML5 的世界,javascript可以做到事越来越多了。基于V8虚拟机,也使得javascipt在chrome的性能提升了很多倍。


==================== 工具类 ===================

Eclipse 开源java IDE,当然这个IDE也可以用来开发C/C++ ,PHP,ruby等程序,我认为它是世界上最好的集成开发工具。可以通过插件无限扩展其功能。

netbeans oracle开发的开源java IDE,不过我认为和eclipse还是有一定差距的。不够好用,而且有点卡。

notepad++ 开源的文本编辑器,支撑几乎所有语言的高亮显示,还支持安装各种插件扩展其功能哦。很小巧。

tomcat 开源的java servlet容器,轻量级服务器。性能很好。不过很多Java EE的特性程序,是不能在tomcat上运行的。

Jboss AS 开源的JAVA 应用服务器,它的功能则强大得多,支持tomcat的所有功能,而且对JAVA EE也提供完整支持,现在最新的jboss AS 7中,加入了OSGI功能,使得它更加强大。

Jetty 开源的java servlet容器,你可以把它简单理解和tomcat 差不多,不过它更加小巧,甚至可以内嵌到应用中,小到只有一个包。也就是你的程序可以本身就单独运行,当然需要在程序中加入jetty相关包。

Aptana 开源的eclipse插件,功能强大,提供了很多web开发功能,支持主题、内嵌git 插件等,而且它的javascript 辅助功能也更加强大。其他很多功能我还没有用到,但是它值得你开始使用。

checkstyle 用于检查代码语法和结构的eclipse插件,它的要求比eclipse自身更加严格,对开发人员的编程规范要求很高,不过可以让你写出的代码质量更高、更易于他人阅读理解。

findbugs 检查代码中潜在bug的eclipse插件。我对它使用还不够熟悉,但是它还是很有用,方便你随时检查下代码是否有常见bug。

MAVEN 类似于ANT的项目打包、构建工具,也是基于组件式的,你可以通过使用多个maven插件来完成很多功能。使用自动化构建程序等任务,比ant强大很多,同时支持调用ant命令。

git 开源的代码版本控制工具。分布式,没有中央服务器照样安全工作。

chrome 谷歌浏览器,我通常用它来调试web 应用程序,相当给力啊。

Nexus 开源的maven 仓库管理工具,功能很强大。

Jenkins 开源的项目自动构建、持续集成服务器。基于Hudson 开发。

run jetty 在eclipse 内一键运行jetty的插件,在开发maven项目的使用用起来特别方便。简单,而传统的run on server是做不到这点的。

M2E 开源的maven eclipse 插件,提供图形化支撑。



=====================java开发框架=======================

struts 很著名的控制层框架,不过我不太喜欢

spring framework 全世界最好的框架之一,它的能力之强大,使用范围之广。据说它里面的代码实现相当经典,不过还没有拜读。其衍生出的很多框架也很好。比如spring security

hibernate 开源的ORM框架,将所有对数据库的 操作都做成操作对象的形式,不过它的弱点在于不能直接使用sql 语句操作,在处理一些比较复杂的查询功能时没有直接操作sql语句简单。很麻烦。

jgit git的java实现。很不错哦,在一个eclipse插件里面使用了这个包,这样再也没有狂平台的问题,java帮我解决了一切。

apache poi 开源的java api,你可以用它来操作windows 文档:doc,xls,ppt,pdf等等。很方便。以前用它作过导出数据到excel中。

jersey 开源的java restful 服务实现。比较简单吧。用起来也舒服。

apache CXF 另一个开源的java web services 实现,当然支持标准的rest服务。通过它还有osgi 版本,很前卫。

dom4j java的操作xml 的开源类库,有了它读或者写xml文档都很简单。

apache fileupload java开源的文件上传插件,很实用,也比较简单。

log4j java 开源的日志框架,可以将软件日志写到控制台、外部文件、数据库中

slf4j 另外一个开源的java日志框架,但是它本身并不提供实现,而是提供了接口。如过你想把日志写入外部文件或者数据库还需要配合log4j等其他框架使用。


================其他开发框架 =========================

twitter bootstrap twitter的开源前端框架,用它开发一个网页界面,超级简单,快速,而且很美哦,兼容性也很好。

artdialog 一个中国人写的开源js弹出层框架,很好用,而且也很绚丽。强烈推荐。

jquery form 一个开源的jquery form 插件,可以用来执行ajax 表单请求。等等。

xml2json 一个用于把xml文档转成json的jquery 插件。js操作json还是更加舒服。

highcharts 开源的js图表插件,功能强大,有多种图表,并支持ajax异步强求。

jquery 这个强大的js 框架,让js变得更加好用。

jquery UI jquery 的UI控件框架,集成了很多网页UI组件,不过我认为有了twitter bootstrap 此框架少了很多吸引力。

jquery mobile 用于移动平台的jquery UI插件,可以把节目做得更像移动平台原生,我感觉目前性能还有待提升。


目前只想到这些,文中对开源软件的描述可能有错,欢迎指出,讨论。

不要重复造轮子。