程序员啊,程序员,究竟是咋的

其实,我很早就想说这些话,今天又看了一下公司的烂代码,我疯狂了!!!
现在程序员真悲哀啊,代码不知道咋写的,都跟你分了三层架构了,各个层次
代码混乱,啥逻辑往Action里塞,都几千行代码了,还塞个毛啊 。
相比较service层的,我靠,都没什么业务。当中的一层被架空了!
再看DAO层,我靠,sql语句写的死死的,啥变量直接写成字符串。
一个date类new他妈一百多次,你就不知道写在一个地方复用一下
啊,我操,真猪脑! slq语句拼装真稀烂,完全不像程序员,靠
思路都不清晰,写个鸟的代码,这代码拿出去不笑死人的。我真的无语
了,都写了这么长时间代码的人了,写出来的代码,真是稀烂,惨不忍赌
实在看不下去了!啊......

确实有这种普遍情况,反映了公司管理很差

从你的语言中,我强烈感受到你的愤怒了。

设计和架构,一直是国内所忽略的地方,没办法。现在能重新重视起来是好事。以前大干sql主宰的程序就一堆了,那时就发觉,咋不像软件了,像个数据库加了个壳似的,整个软件变了味儿。整天谈业务业务,而业务实现工作就像翻译似地,完全就是翻译成数据库增删改。还有面向功能,写过程的方式实现功能,一般软件就算了,系统也这样干,我就纳闷了,这系统怎么读?

我一直觉得计算机软件专业缺少了这些教育,导致出来的人看到的,都是算法,感觉OO是空有一谈似的。其实OO最实在的地方,就像设计和架构等思想,而不是实现。

是不是二八原则在这里也适用?
80%的忽悠 + 20%的技术 = 中国软件公司

急功近利是一个主观原因。
但一些客观原因也使企业不得已而为之。

我其实也深有同感!!!
只不过背地里骂一骂就算了,还是接着在垃圾堆上面整理垃圾,无论怎么整理,它始终还是垃圾。

就是因为lz帮他分好层了才会出现这样的情况

LZ好像是现在是在做行业软件的维护吧,哈哈

大多数年轻程序员都这样,老板从来不看代码。设计一般只有界面设计,没有架构和类一级的设计。
老板看着建立在一堆垃圾代码上的漂亮界面美得屁颠屁颠。就好比用豆腐渣材料在沙滩上盖楼,外立面抹得十分光鲜,刚竣工富丽堂皇,过两年就倒塌。

兄弟,你是没见过2k多行的js+3k多行的procedure,java唯一的作用就是拼sql然后call procedure
能复用不复用,不能复用瞎复用,一个画面N个flag与state
不是我有偏见,据我观察这种代码80%出自某培训机构出来的人员

最近细看了敏捷软件开发,原则,模式,实践这本书。
我不敢想象我们的思想要追上人家路还有多长,建议大家细品下这本书,2003年就出来了,然而它对我们程序员的影响力又有多大呢?

书中讨论的工资发放系统是一个典型而且非常容易先建数据库schema再拼sql的系统,可是人家又是怎么做的?
关于数学和面向对象的关系书中也有提及。

摘录版序中的一段:
最好的软件开发人员都知道一个秘密:美的东西比丑的东西创建起来更廉价,也更便捷。构建、维护一个美的软件系统所花的时间、金钱都要少于丑的系统。软件开发新手往往不理解这一点。他们认为做每件事都必须要快,他们认为美是不适用的。错!由于事情做得过快,他们造成的混乱致使软件僵化,难以理解。



[该贴被oojdon于2010-12-06 13:44修改过]

我觉得你不应该怪程序员不好。反思一下让你的framework适合他们吧。
1. 既然他们喜欢在action里面直接写很多业务逻辑,为什么你不直接把事务放到action里面呢?(不要什么DAO,只要个manager)只需要告诉他们,把不同的action放到不同的class里面就好了。(甚至你可以规定,每一个class只执行完成一个action的请求)

2. 如果他们喜欢拼装那么证明你的方法封装不够体贴,人都有惰性他们如果有的选择是绝对不会自己费尽拼装的。所以你应该考虑引导

这个世界上总是有水平高,水平低之分。与其期望高质量的代码不如引导他们写能用的代码,程序员的洁癖要改。

TO fireflyc
那样做带来的种种恶果,我们这些人已经经历过了,感受到可维护性、复用、公司积累和个人积累等等一系列难题。终于在众多的老手思考量度后,有了新的更好的解决方案。就像现在的房子为什么设计合理了,原因也是设计师和架构师的存在,工人按着要求做就是了。是为了工人方便,而更改方案,还是为了整体利益而更改,想必你心中也有答案。框架需要合理性和易用性并存,但不是为了坏习惯而存在。

像你那样反过来做,只是做成软件行业停滞不前,软件行业可以服务其他行业发展,其他行业在发展,软件行业也必须发展来满足其他行业需求。追求综合性能、可维护性、可伸缩性、可重用性可以说是现代的软件的发展方向,过去不合理不科学的,该摒弃就摒弃,不能因为水平高低而妥协。正所谓水涨船高,软件行业的发展,注定程序员的水平要求越来越高。水平不行就跟上来,不更新技术,注定“落后就得挨打”。

程序员要有提高技术的自觉性,否则跟不上潮流,就得淘汰了。

完全同意,只有不断学习,不断进步才能让技术发展。软件开发应该是一件更有技术挑战的事情,否则就要变得一文不值。

对于类似的问题已经碰到一堆了,从一开始的很抗拒,到后面的淡定“接受”。我只能说这算是中国行业软件业的一个杯具吧,你今天纠正一个人,明天另一个人来纠正你,人家还能拿出种种“成功”案例。
急功近利,害人害已。我们已“随波逐流”!