--- title: "那些年我用过的开源软件、框架" date: 2012-07-01 00:00:00 tags: [java, 开源, 框架] --- 作为一个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插件,可以把节目做得更像移动平台原生,我感觉目前性能还有待提升。 目前只想到这些,文中对开源软件的描述可能有错,欢迎指出,讨论。 不要重复造轮子。