进入外包公司的一个好处就是代码从来不需要从头写,对我这样出校园时间不长、对程序构建没什么把握能力(没经验)的人来说真的是一个比较好的锻炼机会(对那些刚出校园就敢从项目经理那里接项目做某某系统的人无限崇拜...)。
但是其弱点也同样明显,那就是:要给人擦屁股。经历了3、4个项目之后,真的是厌烦了这种工作:第一,项目负责人比较忙不能向你详细解说功能需求(可能他也不知道,并且极度缺少需求文档,就算有你也不敢相信那是否是符合客户要求的);第二,代码缺少注释(就算有注释也不敢相信);第三,负责人才不管你是新接手的,新需求来了他就当你是熟练掌握了系统需求的;第四,以前开发代码的要么是别的公司的,就算不是别的公司的要么离职,要么调离公司,就算联系上也会很不耐烦给你讲解。
下面介绍下我的心得体会:
第一,高屋建瓴详细了解需求。需求一定要搞懂,没搞懂就开工改代码是大忌(项目经理可以只要大略知道需求,但是程序员一定要搞清楚自己模块的需求,原因是写代码的人是你)。这里介绍搞懂需求的几个步骤:首先找文档,不管文档是否齐全,一定要找完该项目的所有文档,找出有关自己模块的资料(通常由于项目交接,资料不会完整的,我遇到过文档齐全但是里面没什么内容的情况);其次,去烦项目负责人,这里有两个用意,让他知道你在搞清需求,让他知道你的难处(通常不要奢求能从他那里得到清晰的需求说明); 再次对照需求跟踪代码,这是程序员搞懂需求的杀手锏,并且这个过程一定要有;最后把自己疑惑的地方拿出来,向负责人请教,如果他也搞不清楚,那就会去烦客户了。
第二,在有备份的情况下尝试稍微改动代码(改动功能)。备份是二次开发的一个重点,通常负责人那里会在每个节点上做备份,但是自己也要做好备份,不要一出问题就要从负责人那里重新拷贝代码,更不要随便改动配置库的代码(尤其是在项目刚启动的时候)。改动代码是为了更好的了解需求,了解代码结构。
第三,改动代码的时候怀疑一切。不要认为原来的代码是好的(即便客户信誓旦旦),不要相信功能运行正常是因为原来代码写的正确,不要相信代码注释的每一句话(即便他是特别明显),不要相信原来的功能实现是合理的。做到这几点出了问题就比较好查找了。
第四,不要随意改动原来的代码。即便你真的确认原来的代码有问题,也不要随意改动。正确的做法是,重写方法加注释(这里要合理运用复制粘贴)。
第五,代码重构可以私下里做,但是不要在客户版本里做(除非客户在需求里做了特殊说明,并且项目负责人对代码重构算了工作量)。二次开发的大项目(各个模块加起来的开发代码20W行以上)通常是一个悲剧,请不要在这个悲剧里加上你的名字。你可以复用以前的模块实现结构,不用管它合不合理,尽量不要实现自己认为合理的代码结构。原因是,你自己的代码风格会给后来的开发人员带来困惑(一个项目的代码风格的统一性很重要,并且没有大的付出很难改变)。
重点强调一下:程序员在二次开发中的重点是代码。神马文档啊、注释啊都是浮云!文档,注释是公司用来降低程序员薪水的。另外框架啊,模式啊,流程啊,测试啊,甚至包括Java都是用来降低程序员的薪水的!因此文档注释一类的东西在二次开发的代码中就随便写写吧(从这里你也知道了为什么要怀疑文档、怀疑注释、怀疑代码了吧)。
程序员是软件开发技术进步的第一阻碍力(要相信这句话)。
分享到:
相关推荐
幼儿园小班健康优质教案《擦屁股》润新教育.txt
《cocos2dx 创意游戏 打屁股》是一款基于Cocos2dx引擎开发的趣味游戏,它将娱乐与学习巧妙结合,为玩家提供了一种新颖的游戏体验。Cocos2dx是一个开源的游戏开发框架,使用C++语言编写,支持多平台,包括iOS、...
小班健康活动我会擦屁股PPT学习教案 本PPT学习教案旨在教授小班幼儿正确擦屁股的方法和洗手的重要性。该教案通过借助巧虎这个形象化的角色,引导幼儿参与互动,了解到擦屁股的正确步骤和洗手的必要性。 知识点一:...
标题中的“大屁股10.1dll.rar”很可能是指一个包含特定版本(10.1)的DLL(动态链接库)文件的压缩包,而这个文件可能与编程语言Delphi有关。DLL是Windows操作系统中的一种共享库,它包含了可被多个程序同时调用的...
【标题】"小游戏源码-摸老虎屁股.rar"揭示了这是一个关于小游戏开发的源代码包,其中包含了"摸老虎屁股"这个游戏的相关编程代码。在IT领域,源码是程序员用编程语言编写的原始代码,它是软件或游戏的核心部分,允许...
AddressSanitizer是一个由Google开发的高效内存错误检测工具,包括检测堆、栈、全局变量以及未初始化的内存使用情况。ASan通过在运行时插入额外的检查代码来检测内存错误,例如缓冲区溢出、使用已释放的内存、未...
打屁股作文范文一描述了作者第一次挨打的经历,作者因为考了低分而受到母亲的责骂和打骂。这篇作文展示了作者的挨打经历和感受,同时也表达了作者的自责和委屈。 打屁股作文范文二讲述了作者小时候玩火的经历,作者...
本文总结了三个作文,分别是《打屁股的作文》、《偷偷翻越那座东墙》和《第一次撒谎》。这三个作文的主要内容是关于小华和小丽之间的赌约,小丽输了赌约后,小华处置小丽的方式,以及小丽的妈妈对小丽的惩罚。接着是...
源码是开发者研究游戏内部逻辑、优化性能或进行二次开发的重要参考。在这个"摸老虎屁股"的源码中,我们可以看到如何使用JavaScript来控制游戏流程,包括角色的移动、碰撞检测、分数计算等核心功能。同时,CSS3可能...
被哥哥打屁股作文.doc
打屁股三篇小学作文范文.pdf
《打屁股》初中优秀作文精选以打屁股为话题的作文5篇..doc
被打屁股的作文-最新范文.doc
成都石室中学第二次诊断性考试模拟测试理科综合.pdf
JavaScript代码处理游戏逻辑,如用户输入响应、游戏规则、计分系统等。在"敢摸老虎屁股吗"中,JavaScript可能包含了游戏对象的创建、碰撞检测、游戏循环等功能。 4. **数据存储**:HTML5的Web Storage...
书中的源代码是学习过程中非常重要的一部分,通过分析和实践这些代码,读者可以更深入地理解C#语言的特性和应用。 C#是一种由微软公司开发的面向对象的编程语言,广泛应用于Windows应用程序、游戏开发、Web服务等多...
3. **源码**:提供的是游戏的源代码,意味着可以查看和修改游戏的内部逻辑,对于开发者来说,这是一个学习和定制游戏的好资源。 4. **安装部署教程**:这个源码还附带了安装和部署的教程,这对于初学者或者不熟悉...
【Laravel开发-moteo】是一个专为WordPress设计的入门主题,名为Tagmeo,它融合了现代开发工作流程,旨在提升网站构建的效率和体验。这个项目是针对那些熟悉Laravel框架并希望将其应用于WordPress开发的开发者所设计...
被哥哥打屁股作文-最新范文.doc