2019独角兽企业重金招聘Python工程师标准>>>
工作已有两年了,两年不长也不短了,程序员的辛酸苦乐也都体验了一些,故写此博客既为留念,也为接下来的两年留下一个参考点。
首先需要声明的是,本人的工作是JavaWeb企业级开发(即所谓的增删改查)。从一开始熟悉java的基础及其简单用法,到后来的JavaWeb基础开发(使用servlet)了解到很多专业名词,如JavaEE/J2EE、JavaWeb、JDBC、Servlet、Filter、Listener、Request/Response等,再到最后的使用框架开发(Spring\SrpingMVC\Struts1\Struts2\MyBatis\Hibernate等及其整合技术)、WebService\HttpClient,如果再扯的话,还有
构建工具ant\maven\graddle等
源码控制工具svn/git等
模板技术Freemarker/velocity等
开发工具Eclipse\MyEclipse\Idea\NetBeans等
可以说,Java编程社区的名词是非常多的,无形之中给了许多java开发人员很大的压力,可是路要走的,生活也在继续。
两年的时间里参与开发了几个程序,也参与维护了几个程序,维护的程序中还有为期3年的项目。期间还是有相当多感触的,按照时间线性来划分的话,现在有如下所归纳的:
- 1.最初的实现基本功能。
- 2.数据多了如何应对。
- 3.为什么要使用这个功能,对系统有什么好处和坏处。
- 4.系统开发流程中维护的代价太大,代码规范十分重要,知道为什么和怎么开发比开发要重要。
- ……
如上只是这两年的经验,和以后无关哦
。
而我越来越感觉到,代码规范的重要性,以及编码只是整个软件流程中的一小环,很多项目(我见过的和我参与过的),都是把编码放在一个很核心的位置上,而忽略了整个软件流程中其它部分如需求分析、设计等的重要性,导致代码越来越臃肿,也越来越难以维护,从而直接导致维护的时间加长、维护的成本也提高,更不易于掌控,这就进入了一个恶性循环。
代码越难维护,程序员就越不想维护;程序员越不想维护,代码就越难维护。
其实系统不易于掌控的原因我们也是知道的,大部分就是为了赶工,或者是先完成功能其他再说
,即唯结果至上
。以后当该再说
的时候发现已经没时间了,因为下个需求已经来了。如此循环,导致越来越没有时间去好好整理和维护,一直都很快,可是快的过程中都埋下了一颗颗地雷,而这些地雷颗颗必爆。
从表面上看,系统越来越难维护的原因是唯结果至上
,但其实可以更深一层次的去挖掘,代码是人写的。
记得小学思想品德书本上,有两副图两个场景:
公交车上一个人踩了另外一个人的脚, 两人破口大骂。
公交车上一个人踩了另外一个人的脚, 一人道歉另一人表示原谅。
两种情形下,为什么会有两种不同的情况,可以说,一切都从都和人有关系,
而程序设计也如上,代码难以维护的表面原因是唯结果至上,而直接原因则是,责任心问题,以及人(程序员及其上司)的心态问题。
物竞天择,适者生存。古来如此,历史上从来不缺的就是人及其做的事,历史都是在重演。互联网也是一场战争,当然这也会重演。
系统开发是一件耗时的工程。耗时的工程都要进行好好的设计。不然的话非常容易越来越偏离最初的目标。最终导致全盘推翻重新再来。这也正好印证了古话——凡事预则立不预则废、欲速则不达。
悄悄问一句:您的代码可控吗?