继往开来 吐故纳新
日历
网志分类
· 所有网志 (1024)
· 个人作品 (64)
· 软件设计 (33)
· 面向对象编程 (22)
· JavaAPI (44)
· Java开源工具 (36)
· Swing (34)
· Java语法细节 (39)
· 样式表CSS (12)
· XML (9)
· J2EE(JavaEE) (23)
· 算法数据结构 (64)
· 正则表达式 (4)
· 软件知识 (6)
· Java线程 (9)
· Web开发.Jsp/Servlet/Struts (20)
· 程序随想录 (7)
· Hibernate (7)
· Spring (5)
· J2SE 高级 (2)
· J2SE 高级 (0)
· Web开发.Ajax (16)
· Web开发.JavaScript (48)
· DB4O (2)
· Web开发.CSS/Html (22)
· C# (20)
· ERP (4)
· JDBC (1)
· 编程资源 (16)
· 编程感悟 (29)
· DB/Sql (13)
· VB (29)
· VC (2)
· 桌面脚本 (3)
· 新兴软件 (3)
· 英语学习 (21)
· 网文转载 (163)
· 职场风云 (40)
· 诗词歌赋 (32)
· 生活感言 (79)
· 生活常识 (0)
· 奇文共赏 (15)
· 财经纵横 (9)
· 未分类 (17)
站内搜索
友情链接
· 歪酷博客
· 我的歪酷 非非共享界
· 偶要雷锋
· 豆瓣
· nczonline
· 当当网
· easyjf中文站
· Donews
· 天极Java文章列表
· W3CSchool
· taiten的BLOG
· Dojo中国
· Dojo
· Extjs.com
· Lifehack中文网志
· JaveEye的一个AS专题
· Banq's JDon
· Java 中文网址大全
· 梦想Java
· 360Doc个人图书馆
· java开源大全
· 我在硅谷动力的软件下载站
· 站长中国
· 随意贴
· CSS教学素材站
· java 参考中文站
· 面向构件与SOA社区
· 彩字生成
· 派派小说论坛
· 如坐春风
· 英语学习网
· BBC CHina
· www.dlbang.com
· 古文竖排格式在线转化工具
· 免费家谱
· 图片上传基地
· 风景壁纸
· 和风细雨
· MyC#BlogInCsdn

订阅 RSS

0251036

歪酷博客

开此博一为经验积累,二为资料收集,三为同道交流,四为资源共享.
« 上一篇: 【转贴】Dom4j 使用简介 下一篇: 【转贴】J2EE面试题集锦 »
Junglesong @ 2007-03-02 21:59

本文系原创文章,转载请注明出处(jungleosng.yculblog.com)

技术含量一词,自<<天下无贼>>后就开始流行,变成了很多程序员在闲暇时评论项目的标准用语.但我觉得部分人误解了技术含量这一词,有时候甚至本末倒置了.

首先让我们来澄清一下那些不是属于技术含量:
1.API不是技术含量.这样说原因有三,一.API是从手册上,网络上查来的东西;二.API不是难以掌握的,项目中纯粹的技术问题反而最好解决和掌握;三.考虑到实现的通用性和普及性,API会逐渐趋同,这样门槛会越来越低.总而言之,记问之学不足为人师.

2.名词概念不算技术含量.前几年EJB三个字会让人肃然起敬,去年则人人喊打,最后POJO的流行让大家都返璞归真了.概念并非不重要,但它应该是交流和讨论时用的缩略语,而不应该拿来当作吓唬人的名词,实话说笔者对这种人也很厌恶.很多概念和技术都有其适用的场合,并非放之四海而皆准,许多项目为了贪大求全,盲目的上了一些技术,结果只用了一小部分,其实还有更简便的方案存在.这种情况下技术名词概念实在不能算技术含量.

3.冗长的代码更不是技术含量.好的代码不在于其长短,它应该是"完美得无法进行增删操作"的.过分冗长的代码一把都有重复代码,未进行完全抽象,内聚度不高等典型代码臭味,属于重构的专政对象,不能想象这会被当作技术含量,最多当做辛苦程度的评价指标.

4.投机取巧或难为而为之的代码不是技术含量,这样的代码多为复杂多变的需求所产生,本身就存在耦合严重,难以理解修改,不适应变化等问题,后期维护更是一场恶梦.这是把需求分析和领域建模未充分解决的问题转移到了编码阶段,从一开始就充满着隐患.具体表现了冗长复杂的SQL语句,奇怪的作用域很广的变量,Session中的全局变量,违规的跨层调用等.这些都是应该完全避免的.

我觉得,真正有技术含量的项目应该具备以下特征:
1.复杂度最小,简单而易于理解.
2.易于维护,不会是维护程序员的恶梦.
3.松耦合.
4.可扩展,不会因为需求在可预计的范围内变化就要动大手术.
5.重用度高,不需要每个项目都制造一批新零件.
6.系统很好的利用了底层工具类.
7.精简性,系统没有多余的部分.
8.良好的层次,各层各司其责,没有跨层调用.
9.标准技术:API趋向于标准的,常用的方法.


但是,不仅仅是这样就可以了,如果程序员不能真正投入进去,恰当的发挥自己,再符合以上标准的项目都是别人的世界.一个优秀的程序员应该充分发挥自己的创造性和追求完美的精神,力争贴近这些目标.

所以,我觉得,如果一个维护性项目交付到程序员手中时,他应该先努力去发现其优点,整体了解后再向以上标准进行靠拢;如果是一个开发性的项目,那么程序员一开始就要想到以以上标准来指导开发.这才是程序正道.与正道相反的意见,规定,制约都是邪门歪道,无论有什么理由,都是应当唾弃的.

我的结论就是:技术含量就是指项目中正道与邪门歪道的比例.










最新评论


chen

2007-03-03 15:52

ding !
支持,很理想话不是很多项目都有机会这么做的


评论 / 个人网页 / 扔小纸条
* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 


 

分类小组论坛
杂谈 , 娱乐、八卦 , 文学、艺术 , 体育 , 旅游、同城 , 象牙塔 , 情感 , 时尚、生活 , 星座 , 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定