文档章节

提高程序员项目设计水平的11条建议

蜀山下的鱼
 蜀山下的鱼
发布于 2015/04/29 00:41
字数 1510
阅读 9
收藏 0

1.分析清楚你要面对的项目。


这是进行所有工作的第一步,如果你在这个地方都犯错了,那么后续所做的一切努力都是白费。比如,你要完成图书管理系统,那么你就应该明白这个系统主要是用于解决图书管理的问题。




2.考虑项目设计的方法。


在这个阶段,你要根据这个项目的特点考虑设计的工具和语言。比如,对于图书管理系统,它需要封装性好,这样有利于管理和维护。而这个系统开发周期较短,功能较简单。所以,根据其特点,选择Java作为开发语言会是一个不错的选择。



3.收集完整的需求。


花时间整理清楚你的用户群的基本需求有哪些,而你的产品最终功能有哪些。清晰的思维能够为你节省大量的时间。



4.编写全面的实施计划(或模型)。


对于小型独立的项目,这可能只是一个基本的流程图或一个简单的函数模型。


对于较大的项目,它有助于将工作分解成模块,并作如下考虑:


* 每个模块的功能是什么


* 模块之间的数据如何传递


* 每个模块如何调用这些数据


虽然收集需求和编写计划比起写代码来得枯燥,甚至乐趣性比起花费几小时进行Bug调试还不如。但是,花时间对程序的正确流程和结构进行预先计划却能确保后续的程序设计的高效率。




5.为代码添加注释。


在你认为需要为代码进行解释说明的地方添加注释。最常见的注释会出现在函数说明,变量声明和返回值上,它告诉人们这个东西有什么用处以及为什么会这么做。



6.采用统一的命名规则来为变量命名。


它将帮助你跟踪每种类型的变量,并弄清楚每种变量的代表的是什么。比起简单的x = a + b * c,使用命名规则的命名的变量能够使代码更加易于维护和调试。最常见的命名规则为匈牙利命名法,变量名的前缀包含了它的函数型。比如,为整数变量命名的intRowCounter,以及为字符串型命名的strUserName。不管你采用的命名规则是什么,你必须确保命名规则的一致性,并且该规则能够对你的变量具有简单描述性。



7.对代码进行组织化编辑。


使用可视化的结构来表现代码结构。比如,在条件语句(if,else)或者循环语句(for,while)的代码块进行代码缩进。再比如,在变量和操作符中间加入空格。这样做能够使代码更直观优雅,程序流程一目了然。



8.进行全面的测试。


首先,在每个模块中测试常见的数据值,看是否和预期结果一样;再然后测试那些非常规的数据类型,用于排除隐藏的错误。测试是一门艺术,你能够在实践中丰富自己的技巧和见地。编写的测试用例通常会包含以下几种情形:


极端值:包含极小值和超出预期的极大值,空字符串的文本值,每个参数都为空的情形等。


无意义的值:假定用户会输入一些与输出要求无关的东西,看程序会对此有何反应。


不正确的值:比如把零作为除数,把负数作为平方根,或者是在输入字符串的时候输入了一个数字。




9.实践,实践,再实践。


编程的工作是与时俱进的,你能够在实践中学到很多新的知识,同时以前学过的旧知识也能够被重新温习。





10.减小需求改变的风险。


在现实的工作环境中,需求的变化一直是一个令人头痛但又不得不去面对的问题。但是,假如你能够在项目开始阶段将需求和项目计划越发清楚地表现出来,那么在后续因为沟通的误解或理解力不够而导致设计的结果与需求产生偏差的问题就会得到有效的改善。 所以,在项目设计的阶段,请在编写代码之前清楚的展示你的需求文档和工作说明:系统需要什么东西,你正打算做什么,工作开展到了什么地步。





11.学会由简入繁。


假如你需要编程的东西很复杂,这样做能够帮助你更加顺利地开展工作。例如,有这样一个项目,窗口上有一个任意形状的图形,需要设计一个程序能够根据按住鼠标滑动的方向和速度而改变它的形状。


首先,你可以设计完成一个正方形在按住鼠标滑动而产生形变的情形。换句话说,这一步主要是解决鼠标运动跟踪的问题。


接着,将这个正方形的大小与鼠标的速度相关联起来。换句话说,这一步是解决鼠标速度与自身的形状的关联问题。


最后,创建你想要的实际形状,并把这三个组件连接在一起。


这种方法有助于模块化项目的代码编写,其中每个组件都有它自己的独立的块。这对代码重用是非常有用的(例如你想使用鼠标跟踪新项目)并使得程序更容易调试和维护。



本文转载自:http://blog.csdn.net/caiwenfeng_for_23/article/details/38147345

蜀山下的鱼
粉丝 9
博文 405
码字总数 0
作品 0
广州
高级程序员
私信 提问
程序员的发展路线

我见证过许多的程序员的成长,他们很多人在进入成熟期之后,技术上相对较高,一般项目开发起来比较自信,没有什么太大的困难,有的职位上也有所提升,成了项目经理、设计师,有的甚至是到了管...

禁区铁铍人
2017/12/06
0
0
单身程序狗解决了一个技术难题后没有妹子可以炫耀或夸一下自己怎么办?

看了这些来自程序员的神回复,你就会明白,程序员是世界上最聪明、最具幽默感的一群人。 工作相关 0. 如果软件正在占领全世界,为什么程序员得不到尊重? 遍身罗绮者,不是养蚕人。 1. 中国大...

我是一个程序猿
2018/06/27
0
0
单身程序狗解决了一个技术难题后,没有妹子可以炫耀,怎么办?

看了这些来自程序员的神回复,你就会明白,程序员是世界上最聪明、最具幽默感的一群人。 工作相关 0. 如果软件正在占领全世界,为什么程序员得不到尊重? 遍身罗绮者,不是养蚕人。 1. 中国大...

uw63zqpkxwlrl1
2018/05/10
0
0
程序员成熟的标志,八个点概括!

程序员在经历了若干年编程工作之后,很想知道自己水平到底如何?自己是否已经成为成熟的程序员?虽然程序员会对自己有一个自我评价,但是,自己的评 价和社会的评价、专业的评价会有差异,所...

欧阳海阳
2018/07/20
0
0
小米Java程序员第一轮面试12个问题,你会几个?

近日,w3cschool app开发者头条上分享了小米java第一轮面经,引来了不少程序员粉丝们的围观。 小米的程序员面试,一面基础知识多一些,二面更加深入,三面手写代码。 三面主要还是看代码风格...

W3Cschool
2017/11/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

texlive安装

Installing to: D:/bin/texlive/texlive/2019Installing [001/307, time/total: ??:??/??:??]: adobemapping [2130k]Installing [002/307, time/total: 00:03/08:57]: ae [84k]Installing......

MtrS
44分钟前
2
0
运维规范

命名规范 发布流程 监控告警 故障定位 状态 日志 监控

以谁为师
今天
2
0
约瑟夫环(报数游戏)java实现

开端 公司组织考试,一拿到考题,就是算法里说的约瑟夫环,仔细想想 以前老师将的都忘了,还是自己琢磨把~ package basic.gzy;import java.util.Iterator;import java.util.LinkedList;...

无极之岚
今天
3
0
Kernel字符设备驱动框架

Linux设备分为三大类:字符设备,块设备和网络设备,这三种设备基于不同的设备框架。相较于块设备和网络设备,字符设备在kernel中是最简单的,也是唯一没有基于设备基础框架(device结构)的...

yepanl
今天
3
0
Jenkins 中文本地化的重大进展

本文首发于:Jenkins 中文社区 我从2017年开始,参与 Jenkins 社区贡献。作为一名新成员,翻译可能是帮助社区项目最简单的方法。 本地化的优化通常是较小的改动,你无需了解项目完整的上下文...

Jenkins中文社区
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部