SpringSide开发实战(八):不是结局的结局,谈谈程序员的境界

SpringSide是个好东西,对我来说,它的好主要体现在两个方面:一、它提供了一个敏 捷开发的框架,省去了我自己整合Spring、Hibernate、Struts、ActiveMQ等等开源组件的 时间,而且还是最佳实践;二、它指导了我的学习目标,在SpringSide中整合的各种组件, 都是在同一类组件中最优秀的,而且要想熟练使用这些组件,都必须对它们进行深入的系统 的学习。

本来以为我会在SpringSide开发实战系列中写更多的文章,但是写到现在,我认为应该 要写结局了,为什么呢?因为在使用SpringSide进行项目开发的过程中,我越来越感觉到项 目绝对不是各种组件的简单堆砌,而是程序员要不断有自己的想法和创意,并能够抽象到一 个高度。这也正是为什么我的文章从第一篇到第八篇越来越偏离SpringSide的核心了。在这 里,我主要想谈谈程序员的境界。以下观点纯属个人看法,欢迎大家探讨。

第一层境界:从不能到能。

可以这么说,早在7年前我就已经熟练掌握C语言、Visual FoxPro数据库、HTML、CSS和 JavaScript,C语言和Visual FoxPro是学校教的,HTML、CSS和JavaScript是自学的,同时 ,我还自学了Flash动画制作和Photoshop图像处理。但是,我那时候还不知道应用程序开发 ,学的这些东西无非就是好玩,偶尔参加一次学校主办的网页设计大赛而已。

我开发的第一个应用是《银符英语在线》,使用的是ASP + SQL Server 2000,时间是 2004年,那时我刚考过软件设计师(原高级程序员),有人找我做程序,他说想做一个英语 四六级的在线考试系统,问我能不能做到,我毫不犹豫就说能。我想我确实是具有软件设计 方面的天赋,用了一个星期设计出数据库,再用一个星期写了一个Demo,一下子就把他征服 了,于是,他当老板,我当程序员,一起进行在线英语考试方面的开发。

在这段时间,我觉得我不折不扣就是处于这第一层境界。JScript我早已是滚瓜乱熟, ASP教程更随处可得。在这段时间里,我用全JScript代码实现了用户认证和权限管理,用 Visual C++写了个COM组件进行数据的加密和解密,还在网上到处搜索文件上传和动态图片 生成方面的解决办法。当时,我觉得我的开发过程充实而满足;现在看来,我只不过是一个 重复发明轮子的傻冒。

在10个月的时间里,我把这个程序从1.0版开发到3.0版,功能上进行了不少升级。但是 我认为升级最大的还是我的技术,我尽我最到的能力将代码与网页分离,尽我最到的能力减 少代码的重复,甚至已经基本做到使用模式来让程序更加容易扩充和维护。我所做的一切, 与现代的一些Web开发框架已经不谋而合。但是,以我当时的内力,确实没有办法将之抽象 为一个框架。我的程序中依然充满了意大利面条式的代码,而且在在线人数多的时候,网页 会慢得象蜗牛爬。

第二层境界:从能做到做得漂亮

2005年,我开始接触Java,以我的基础,自然是很快就学会了Java的语法并进军J2EE。 我觉得Java开源世界给了我不少能量,在这两年里,我的进步速度是呈指数式的。以我现在 的水平,仅使用JSP和Servlet,已经足以解决绝大部分的需求。然而,仅使用JSP和Servlet 就是全部吗?

这个时候,我们不仅仅要能够完成应用程序的编写,更重要的要让应用程序便于维护和 便于扩充。这时候,没有足够的抽象能力是不够的。要能够理解和应用分层架构,要知道 MVC、IoC、AOP、ORM,要了解声明式事务处理,还要学会最流行了AJAX。所有的这一切,不 仅能够让我们的应用便于维护,合理使用各开源组件还能加快开发的速度,但是最重要的, 它们能使我们的应用充满艺术的美感。

在SpringSide社区,现在最流行的是Acegi,这也是对安全与权限功能的一种抽象。本来 我也想写一篇Acegi方面的文章,但是cac写的文档是在是太完美、太经典了,我无法超越。 我们应该让我们的应用尽量向Acegi靠拢,因为,它代表的就是安全与权限领域的最佳实践 。

第三层境界:从程序员到架构师

架构师可以干什么?如何让应用在性能,伸缩性,扩展性、可靠性,容灾,可恢复性, 可管理性等方面做到最好,就是架构师的职责,同时,架构师要能够把握软件开发的整个周 期。由于我还只是一个程序员,也没有精力去学习架构师方面的只是,因此上面的论述可能 不准确。但是,作为一个程序员,上升到一个境界之后,确实应该考虑编码之外的东西了。

举例说明,cnblogs的博客程序算式比较完善的了,我个人对站长dudu也是充满了仰慕。 cnblogs的1.0Beta2版本我也下载得有,本打算使用它建一个自己的博客网站,但是却不行 ,因为它在性能,伸缩性,扩展性方面都达不到我的要求。

时间: 2024-10-31 08:14:42

SpringSide开发实战(八):不是结局的结局,谈谈程序员的境界的相关文章

SpringSide开发实战(三):漫谈CSS和页面布局

这篇随笔不是专门针对SpringSide,却只得每个程序员一看. 还记得胡戈调侃<无极>中的王城布局为"圈圈套圈圈"娱乐城,也还记得我刚开始做 Web开发时"表格套表格"的页面布局.在大部分的程序员中,可能还在使用表格进行布局 ,使用表格进行布局的巨大缺点就是当页面进行一点点修改的时候,都有可能完全打乱页面 的外观,而且非常不利于和美工的配合.当然了,很多美工人员也在使用表格进行布局,他 们在图形软件中设计好页面,然后使用切片工具一切就完事,却给我们需要

SpringSide开发实战(六):AJAX,在地狱中漫步

说到AJAX,每个人都不会陌生,毕竟这两年它太流行了.然而,真正哪些地方需要AJAX ,并不是每个人都能够把握得很好.使用AJAX可以开发豪华的基于浏览器的富客户端界面, 然而其开发量的庞大和调试的艰难,让每一个程序员如同生活在地狱中一般. 我认为,真正需要AJAX的不外乎两种情况: 1.用户不希望他关注的信息离开他的视线的时候.比如填写某些表单的时候,有时候辛 辛苦苦填写的东西,一点提交按钮,全没了,如果某个字段验证失败,则所有的东西都要从 头再填,着实让人郁闷.虽然设计较好的网站可以保留用户

我也 30 了,来谈谈程序员的迷茫年龄

今年三十了,到了传说中程序员最应该迷茫的年龄了,那么我迷茫吗,没的说,按照某司34岁就要劝退的要求,我还有4年的程序生涯. 为什么30岁的程序员就应该迷茫呢? 30岁正是经过了七八年的职场生涯,技术.经验.职业素养等各方面都到了一个比较充沛的阶段.如果前几年不是在混日子,到了现在,踏踏实实干活的一般会成为公司的核心开发,潜心研究技术的应该会成为架构师,有领导才能的也许是小领导或者项目负责人.按道理来讲30岁正是人生的最黄金年龄,也是事业发展的核心阶段,如果在这个阶段抓住机遇能有突破,对整个职业生

初入开发组(1)--一个程序员的成长史(16)

也许是昨天晚上睡得早,今天代是雄起了个大早.在外面吃了点包子稀饭之后,便坐着公交车来到了公司.公交车还是一如既往的拥挤,代是雄一路上都是站着过来的,对于长期在大城市上班的人来说,大家都已经习惯了. 来到公司的大门口,代是雄发现很多人都是坐班车来上班的.下了班车之后,有些人又往另一个方向走去.代是雄放眼望去,才知道他们去食堂了.对于像Z公司这样的大公司来说,在每个研发中心都设立了食堂,提供早中晚三餐.这样,很多人就不用早起在家里面做早饭了,睡醒之后到公司吃饭更方便.代是雄决定从明天开始,自己也直接

初入开发组(3)--一个程序员的成长史(18)

在去食堂的路上,代是雄回忆了一下,自己从初中便开始住校,那时一日三餐便是在食堂里面解决的,高中是如此,大学也基本如此.这样算下来,代是雄和食堂已经打了十几年的交道了."这个食堂会不会像学校的食堂那样,饭菜很难吃呢?"代是雄在心里想到. 进入食堂之后,代是雄左右看了一下,这个食堂的布局和之前自己所见过的食堂差不多,也是几个大的窗口用于卖主食,两个小的窗口用于卖面点.由于代是雄去得比较晚,现在每个窗口前面都排起了长队.代是雄排了将近五分钟的队才打到饭,这期间他没有看到有插队的人,看来,程序

SpringSide开发实战(四):打通数据持久层的任督二脉

在这里,将创建一个简化的用户管理模块,演示怎样利用SpringSide提供的数据持久层 的功能,包括怎样通过Hibernate的Annotation来配置多对一映射和多对多映射. 大家都知道,现在最流行用户管理模型的是RBAC,也就是基于角色的访问控制模型,在 这种模型中,可以划分多个层次,如用户-角色-资源.用户-角色-权限-资源.用户-角色- 角色组-权限-资源.用户-角色-角色组-权限-操作-资源等等,因此,想要创建一个完善而 复杂的用户管理模块,是相当具有难度的.在Web2.0时代,有一

SpringSide开发实战(二):修改数据库、字符编码和快速部署应用

SpringSide默认的数据库是hsql,但是大部分开发人员熟悉的数据库是MySql,因此在实 际开发过程中,遇到的第一件事往往是修改数据库.在SpringSide中修改数据库很简单,还 是以前一篇中创建的xkland项目为例,首先修改src\main\resources\config文件夹下的 jdbc.properties文件,注释掉1.2行,解注释7.8行,并修改10.11行的用户名和密码, 如下: 1#jdbc.driverClassName=org.hsqldb.jdbcDriver

SpringSide开发实战(一):使用Eclipse让SpringSide跑起来

自2000年Struts框架发布,到2001年底Hibernate的诞生,再到2004年Spring的流行, Java社区的开源软件哲学是:"只做好一件事情,只做最擅长的事情,其他事情留给别人去 做."但是到了2005年,Java开源出现了框架整合的大趋势,整个Java开源社区雨后春笋般 出现了一批又一批的full-stack框架,比较著名的有RIFE,Grails,JBoss Seam,Trails和 Able等等.SpringSide也是这样一个整合框架,常逛BlogJava的人肯

SpringSide开发实战(七):在项目中整合FCKeditor

Web 2.0时代时代的Web项目,是无论如何也少不了一个在线编辑器的,因此在我们的项 目中整合一个Web编辑器就显得至关重要.在这里,我依然以前面的xkland项目为例,来探 讨在项目中整合FCKeditor的方方面面. 一.关于用户发表文章的功能设计 用户发表文章的功能,大家见过不少,也用过不少,最简单的,莫过于提供一个文本框 ,数据提交后直接写入数据库了事,稍复杂一点的最少也要提供一个输入标题和选择分类的 功能.当然,我们也可以把我们的功能设计得更有特色.在这个示例项目中,我假设开发的 是