提升程序员项目设计水平相关建议

1.分析清楚你要面对的项目。
 
这是进行全部工做的第一步,若是你在这个地方都犯错了,那么后续所作的一切努力都是白费。好比,你要完成图书管理系统,那么你就应该明白这个系统主要是用于解决图书管理的问题。
 
2.考虑项目设计的方法。
 
在这个阶段,你要根据这个项目的特色考虑设计的工具和语言。好比,对于图书管理系统,它须要封装性好,这样有利于管理和维护。而这个系统开发周期较短,功能较简单。因此,根据其特色,选择Java做为开发语言会是一个不错的选择。
 
3.收集完整的需求。
 
花时间整理清楚你的用户群的基本需求有哪些,而你的产品最终功能有哪些。清晰的思惟可以为你节省大量的时间。
 
4.编写全面的实施计划(或模型)。
 
对于小型独立的项目,这可能只是一个基本的流程图或一个简单的函数模型。
 
对于较大的项目,它有助于将工做分解成模块,并做以下考虑:
 
* 每一个模块的功能是什么
 
* 模块之间的数据如何传递
 
* 每一个模块如何调用这些数据
 
虽然收集需求和编写计划比起写代码来得枯燥,甚至乐趣性比起花费几小时进行Bug调试还不如。可是,花时间对程序的正确流程和结构进行预先计划却能确保后续的程序设计的高效率。
 
5.为代码添加注释。
 
在你认为须要为代码进行解释说明的地方添加注释。最多见的注释会出如今函数说明,变量声明和返回值上,它告诉人们这个东西有什么用处以及为何会这么作。
 
6.采用统一的命名规则来为变量命名。
 
它将帮助你跟踪每种类型的变量,并弄清楚每种变量的表明的是什么。比起简单的x = a + b * c,使用命名规则的命名的变量可以使代码更加易于维护和调试。最多见的命名规则为匈牙利命名法,变量名的前缀包含了它的函数型。好比,为整数变量命名的intRowCounter,以及为字符串型命名的strUserName。无论你采用的命名规则是什么,你必须确保命名规则的一致性,而且该规则可以对你的变量具备简单描述性。
 
7.对代码进行组织化编辑。
 
使用可视化的结构来表现代码结构。好比,在条件语句(if,else)或者循环语句(for,while)的代码块进行代码缩进。再好比,在变量和操做符中间加入空格。这样作可以使代码更直观优雅,程序流程一目了然。
 
8.进行全面的测试。
 
首先,在每一个模块中测试常见的数据值,看是否和预期结果同样;再而后测试那些很是规的数据类型,用于排除隐藏的错误。测试是一门艺术,你可以在实践中丰富本身的技巧和见地。编写的测试用例一般会包含如下几种情形:
 
极端值:包含极小值和超出预期的极大值,空字符串的文本值,每一个参数都为空的情形等。
 
无心义的值:假定用户会输入一些与输出要求无关的东西,看程序会对此有何反应。
 
不正确的值:好比把零做为除数,把负数做为平方根,或者是在输入字符串的时候输入了一个数字。
 
9.实践,实践,再实践。
 
编程的工做是与时俱进的,你可以在实践中学到不少新的知识,同时之前学过的旧知识也可以被从新温习。
 
10.减少需求改变的风险。
 
在现实的工做环境中,需求的变化一直是一个使人头痛但又不得不去面对的问题。可是,假如你可以在项目开始阶段将需求和项目计划愈加清楚地表现出来,那么在后续由于沟通的误解或理解力不够而致使设计的结果与需求产生误差的问题就会获得有效的改善。 因此,在项目设计的阶段,请在编写代码以前清楚的展现你的需求文档和工做说明:系统须要什么东西,你正打算作什么,工做开展到了什么地步。
 
11.学会由简入繁。
 
假如你须要编程的东西很复杂,这样作可以帮助你更加顺利地开展工做。例如,有这样一个项目,窗口上有一个任意形状的图形,须要设计一个程序可以根据按住鼠标滑动的方向和速度而改变它的形状。
 
首先,你能够设计完成一个正方形在按住鼠标滑动而产生形变的情形。换句话说,这一步主要是解决鼠标运动跟踪的问题。
 
接着,将这个正方形的大小与鼠标的速度相关联起来。换句话说,这一步是解决鼠标速度与自身的形状的关联问题。
 
最后,建立你想要的实际形状,并把这三个组件链接在一块儿。
 
这种方法有助于模块化项目的代码编写,其中每一个组件都有它本身的独立的块。这对代码重用是很是有用的(例如你想使用鼠标跟踪新项目)并使得程序更容易调试和维护。
相关文章
相关标签/搜索