论如何才能提高软件的开发效率及写代码效率
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《论如何才能提高软件的开发效率及写代码效率》--程序员的成长
首先让我们看一看刚入软件公司会出现的情况:
1.你可能会常常发现,写了一段代码后,编译程序时是一大堆的出错(原因:语法不熟)
──别担心,这是每个程序员必须经历的事,这时候你就需要更大的耐心及细心,
对每一行代码进行仔细人阅读并改正,这个很重要,这可以培养你的理解代码能力,所以要常读程序,不要等到程序运行以后才知道你的程序的结果。
──如何避免:在写代码以前,要认真的学习计算机语言的语法,如关键点,易错点,易忘点。同时要自已动手写自已的测试代码,而尽量不要抄别人的代码示例。即使抄,在学习阶段也尽量不要每一行一模一样的对着抄。而应对着代码示例写有所不同的例子。
比如:在学java 知识点时,你最好建一个工程把所有的代码都写到这个工程中,以便对照分析学习.
2. 你可能会常常发现,写完一段码后,编译通过,可是运行起来却出来很多逻辑上的错误。(原因:理解错误或逻辑上想错了)
──
──提高逻辑思维和理解能力
3.拿到一个需求却不知从那里开始(对系统不太了解)
4.常常为了一个小小的错误用了很长的时间,不知从那里查,也查不出结果
5.常常做出来的东西是有了东却少了西(考虑不全)
6.有时为了一个特殊功能模块的实现查了很工时间却没有查出结果来(备查的资料不全)
7.有时是否要项目经理叫你做东,你做了完全没有必要的西?(沟通不及时)
8.有时为了能提前完成某一个任务,加班到深夜,可是到了明天却效率低下,还不如不加班(要注意休息)
9.有时自已认为已测好了好多次,可以保证不会出错,可是经测试人员一测试却很多错误(不够细心或测试方法有问题)
10.有时为了避免出错,常常全比写代码的时间超出两倍用于测试(方法有误)
11. 有时写好了一段代码给质量管理人员时却因为代码不够规范而导致重写?(代码不够规范)
为了写好代码(包括,代码没有问题,需求符合,健壮性好,总用时小),那我们应该怎么做呢,有没有什么方法没有.
回答是肯定的!!
可以总结为两大关键点:一是养成好的编程习惯,二是针对自已的工作提高自已的知识含量.
一.好的编程习惯
1. 写程序前打个草稿可以在心里,最好在纸上:目的要从整体上考虑程序的实现。
如果公司采用建模的方式,有建模工具(rose ,visio )那是最好不过的了。
2.注意休息,不要浪费自已的休息时间,用去了自已的时间不但会写出的代码因为注意力不集中而会常常出现代码的质量有问题,逻辑常出错
3.要善于收集相关的专业开发上的资料,以便以后能更快更好的解决问题目。提倡公司能提供内部知识勾通的工具(如知识论坛,内部即时聊天器);提倡公司内部有技术资料的共享库,提高解决问题的能力.
4.提高对所写的模块的相关全局把握能力,在写程序中要最好先详细设计后再发布.
5.要学会与他人沟通如非工程师,学会沟通的不同方式,提高沟通的效率。
二.不同的目标不同的知识重点
(一)目标:程序员
职责:根据详细设计文档,或根据高级程序员的设计进行相关的开发。
1.要学会看相关的需求文档及详细设计文档。
注意:你必须要通过阅读这些文档把握住其中的重点,关键点,相关易漏点
2.如果公司里会用UML来相互的沟通,这时你必须要深刻理解UML 的相关知识,一定要注意千万不要对UML图一知半解的情况下,就着写代码,那样会错的很惨。
3.学好对应的计算机语言的基础知识,如:程序的语法,关键点,易错点,对应的出错如何出理,如何才能把对就的程序写的键壮一些
4.如果用到数据库的内容,在学会sql的前提下,尽量学会数据库原理中的相关sql内容, 当然为了提高查询的能力也可以增加一点
5.如果用到面向对像的语言那最好学点相关的设计模式,这样的可以增加代码的扩展性,及可维护性等,能够理解详细设计中的模块间的设计原则这个也可以提高对模块的内容编写的正确性.
6.你一定要学会公司内部的通用的编码规范。
7.学习如何做单元测试比较好.必须要熟悉相关的单元测试工具.
8.要不断的对相关知识进行总结,同时也要必须把相关的资料进行整理和学习,在学习过后的资料中你可以在遇到问题时更快的找到问题的答题。
9.在开发你必须记录下大家常出错的地方及大家的解决方法,这个对你以后错误的避免有很大的作用.
10.在写代码中时必须把上面写过代码记在心里,这样就可以养成习惯,提高代码的速度
11.对数据库操作时,要尽量共用Connection,并小用以减少Connection的数量
(二)目标:高级程序员
职责:对需求文档进行系统相关模块的详细设计,并负责对程序员的支持及指导和相关核心模块的编写
所以不但要学会相关程序员要的知识,同时还要学会难度比较大的知识。
1.程序员的知识,如设计模式你一定要不是简单的看要懂,你还要应用设计模式对相应的模块进行相关的详细设计。
2.要学好相关详细设计的工具做的有的放矢,这样可以更好提高对自已的设计的表达
3.为了提高系统的运行效率会运用到
a. 数据库的表结构如何建才能使应用的要查询sql 更快。这时可要认真认真的学习一样数据库原理,千万不要以为采用数据库的范式越高系统的运行效率会越好,有时候适当的表冗余可以大幅度的提高系统的查询效率. 同时适当的建索引,视图,存储过程也是提高系统对数据库的查询的效率之一。
b. 学习多线程的编程,不过千万不要以为线程数越多运行的速度会越快,一般线程的数量超过一定的数量后,系统的运行速度反而会变慢。为了应用好多线程,操作系统这本书也要关于同步及相关进程和线程的知识必不可少。
c. 设计好的一程序的好的算法,可要比起解一道同一复杂的数学题,要难的多,所以要在学好的相关数学的知识上(如线性代数,离散数学,概率论,数理统计)。更要深入计算方法,及数据结构,让数学问题用计算机来解决。
4.为了让系统设计的更加的可扩展性,稳定性,设计模式和软件工程可是不能少的东西。所以必须把设计模式用于模式级的设计.