初识j2ee——一个java新手的感触
2010-08-04 13:48
387 查看
最近做的几个项目技术上面都使用J***A,于是我这个J***A半吊子开始稍微比较系统的了解J***A。
这篇文章是我短期内对j2ee下开发的一点感触。
我自己曾经一直“引以为傲”的以“C++程序员”自居(虽然我自己在C++上的造诣也未必深刻),但是一直有种C++程序员的“王者气派”,认为无论在效率上、设计上、语法复杂度上,能做C++是很值得吹嘘的一件事情。对一些WEB上的技术甚至很浮躁的“不屑为之”。
其实当我走进J***A的开发世界的时候,却有了很多不同以往的感触,确实:实践才是检验真理的唯一标准啊。
J***A在语法上面和.NET很相似,由于我也做过一段时间C#的开发,所以上手还算快。至于垃圾回收器、语法、反射这些语言方面的东西我们就不提了。重点说说项目开发中的感触。我这儿使用 spring + hibernate + junit的开发(经典的WEB开发环境),使用IDE为myeclipse。
先说MyEclipse,给我的第一感觉是复杂,第二感觉是不习惯,第三感觉是牛逼。因为强大,所以复杂,它的插件非常强大,包括各种语法高亮、代码链接、甚至是SVN插件,都很人性化并且很成熟。
在j2ee上,各种框架都已经比较成熟,最高程度的复用已有代码才是做J***A开发的一个精神所在。这也是J***A开源社区为软件界做出的巨大贡献。(可能C++也有,但是我所接触的C++项目都是做相对来说较为封闭的,或者不是那么高层的应用,所以大规模的代码复用还是相对较少。)在WEB应用中比如我们用到的搜索引擎开发包lucene,MVC框架spring,日志log4j等……
另外再说说面向接口编程,面向切面编程。
毫无疑问,接口这个概念是面向对象思想上的一个突破,当强制所有项目成员都以面向接口的方式编程的时候,实际上从系统设计或者模块设计层面上就已经进行了一次解耦。同时每个项目成员也更加能专注于自身的业务,提高代码的封装、复用程度。而且正因为接口的明确,也使得单元测试能得以进行。
当然C++也能实现接口的功能(所有函数均为纯虚函数的基类),不过J***A设计层面上更加上层。
所以给我的感觉是,项目开发更像“项目开发”了……可能这句话有些自我矛盾,但是从C++转型做J***A团队项目开发的人,估计也会更我有同样的感受吧。我这并不是在比较或者批判C++和J***A之间的区别,我也可以理解C++项目的开发特点,其实偏向于更底层,更追求效率。
所以我的总结是,J***A开发确实效率较高,而且从团队合作的角度来说,现有的一些开源框架、软件或者技术都能发挥出自己的功效。以后无论在使用任何语言编程的时候、或者做设计的时候,都可以参考这些方便的设计或者理念。
这篇文章是我短期内对j2ee下开发的一点感触。
我自己曾经一直“引以为傲”的以“C++程序员”自居(虽然我自己在C++上的造诣也未必深刻),但是一直有种C++程序员的“王者气派”,认为无论在效率上、设计上、语法复杂度上,能做C++是很值得吹嘘的一件事情。对一些WEB上的技术甚至很浮躁的“不屑为之”。
其实当我走进J***A的开发世界的时候,却有了很多不同以往的感触,确实:实践才是检验真理的唯一标准啊。
J***A在语法上面和.NET很相似,由于我也做过一段时间C#的开发,所以上手还算快。至于垃圾回收器、语法、反射这些语言方面的东西我们就不提了。重点说说项目开发中的感触。我这儿使用 spring + hibernate + junit的开发(经典的WEB开发环境),使用IDE为myeclipse。
先说MyEclipse,给我的第一感觉是复杂,第二感觉是不习惯,第三感觉是牛逼。因为强大,所以复杂,它的插件非常强大,包括各种语法高亮、代码链接、甚至是SVN插件,都很人性化并且很成熟。
在j2ee上,各种框架都已经比较成熟,最高程度的复用已有代码才是做J***A开发的一个精神所在。这也是J***A开源社区为软件界做出的巨大贡献。(可能C++也有,但是我所接触的C++项目都是做相对来说较为封闭的,或者不是那么高层的应用,所以大规模的代码复用还是相对较少。)在WEB应用中比如我们用到的搜索引擎开发包lucene,MVC框架spring,日志log4j等……
另外再说说面向接口编程,面向切面编程。
毫无疑问,接口这个概念是面向对象思想上的一个突破,当强制所有项目成员都以面向接口的方式编程的时候,实际上从系统设计或者模块设计层面上就已经进行了一次解耦。同时每个项目成员也更加能专注于自身的业务,提高代码的封装、复用程度。而且正因为接口的明确,也使得单元测试能得以进行。
当然C++也能实现接口的功能(所有函数均为纯虚函数的基类),不过J***A设计层面上更加上层。
所以给我的感觉是,项目开发更像“项目开发”了……可能这句话有些自我矛盾,但是从C++转型做J***A团队项目开发的人,估计也会更我有同样的感受吧。我这并不是在比较或者批判C++和J***A之间的区别,我也可以理解C++项目的开发特点,其实偏向于更底层,更追求效率。
所以我的总结是,J***A开发确实效率较高,而且从团队合作的角度来说,现有的一些开源框架、软件或者技术都能发挥出自己的功效。以后无论在使用任何语言编程的时候、或者做设计的时候,都可以参考这些方便的设计或者理念。
相关文章推荐
- 手把手搭建一个完整的javaweb项目(适合新手)
- java工程项目里,在一个包里面,不能出现同名的类名,这问题是刚接触java才会遇到的,特别是新手一般都没有建立包,而是使用默认的,易出现同名的类名,导致eclipse提示错误
- 作为一个Java编程新手该如何学习好Java程序编程
- 用java写一个小型的聊天窗口 新手学java
- 给Java新手的一些建议----Java知识点归纳(J2EE and Web 部分)
- JAVA项目直接触之新手遇到的问题:JNDI 在 J2EE 中的角色
- 作为一个Java编程新手该如何学习好…
- 一个javaweb新手,eclipse如何配置tomcat,让纯前端页面在浏览器跑起来
- 一个JAVA新手问题,关于setName和getName
- 用AJAX J2EE实现一个网上会议室系统-Java基础-Java-编程开发
- java笔记——初识面向对象03一个文件调用另一个文件
- 新手,正在学Java Collection,瞎写点东西-一个基于链表的stack及其遍历
- JAVA入门: J2EE的学习流程,新手和老手都来看看!
- 用java 写的一个简单的 web 服务器(适合新手练练)
- Java新手求助,将两个文件合并为一个文件执行程序是发生的问题
- 在任何一个java工程下(即便是j2ee工程)都可以直接对某一个java文件run as Java Application,但是为什么有的java文件右击,没有“Java Application”
- 给Java新手的一些建议----Java知识点归纳(J2EE and Web 部分)
- 给Java新手的一些建议----Java知识点归纳(J2EE and Web 部分)
- J2EE面试题之 java如何找出一个int数组中出现次数最多的数字以及出现次数?
- 【菜鸟学Java】2:初识J2EE