如何优秀地写代码(二)

第一篇相对来说都是比较纲领性质,或者说概念上的东西。从二开始,准备写一套程序的基本开发。预期上来说是用三篇的幅度把一个程序的编码过程写完。

这一篇,写的是起手,也就是当我开始写一个新的程序,我的开头是如果去做的。大前提,我已经知道了我要实现的客户需求是什么,关于需求方面的课题我都解决或者大概控制了。没有这个前提,程序的开发是不能进行的。

・先让我抄一下。

・先让我写一下。

・先让我跑一下。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

・先让我抄一下。

一个大的项目,由无数个独立的程序所构成,在这里面,肯定有一套程序,是写得非常优秀的。我指代的优秀,主要包括以下几点。

①命名和编写符合项目规范要求。

②逻辑清晰。

③结构合理。

咦,排第一的竟然是。。。。符合项目规范要求?没错,这个是一个项目的重中之重。代码里有重复逻辑没关系,代码里有冗余代码没有关系,但是如果一个项目里的代码没有任何规范,这个绝对是要死人的。至于为什么代码规范如此重要,我觉得我可以另外新开一个课题了。

所以,在我开始进入一个项目开发一个程序的时候,我首先会寻求优秀的代码示例。这样我能比较直观的了解到,这个项目的书写规范是怎么样,架构是怎么样,布局是怎么样。同时,也是程序员的通病,能拷贝的,不会去手动写。

虽然我知道规范手册很重要,但是很多时候,我们并没有时间去琢磨那几十页的东西,只能慢慢的补了。

・先让我写一下。

在知道客户需求了之后,大脑首先会涌现的问题是,我该如何划分我的程序。比如我要实现一个后台从数据库导出数据到csv文件的需求,那我首先需要的是一个入口类,一个逻辑的实现类,我需要一个操作数据库的,我还需要一个文件操作的类库,当然,几个Bean文件也不能少。噢,还需要一些共通的方法或者类和保存常量的类。嗯,看起来不多,那就开始写吧。一个,两个,三个,四个。乐呵呵地把所有需要的类我都做好了。

Stop!这个肯定不是我在做作业。因为,我的起手就做了两件事情。写一个入口函数,然后再做一个只有参数传入和结果输出的逻辑实现类。

数据库操作也好,文件操作也好,如果用人来比较,那么这些可以说是类似于心脏或者肾脏(我觉得还是蛮重要的)的东西,但是没有骨架,这些东西根本无法运作。所以在了解和设计需求的时候,我会重点在这部分上,但是真的开始起手了,就会把核心丢一边(如果你看了我之后的文章,你可能会发现我是最后做这些东西-----前提是我要写了),先把我的整个框架先搭起来,让这个程序,能跑起来,即使他除了和世界打个招呼之外,其他什么事情都不会做。

橱窗里的衣服都很漂亮而且之前,但是没有那些不值钱的塑料模特,他们只能被挂在商店内的一角。

・先让我跑一下。

好了,框架搭起来了,让我们快乐地写下去吧?

等等,不要太心急了。你这么有自信,写好的框架可以跑起来?输出的结果是你预想的结果?是骡子是马,先拉出来遛一下。

可能你觉得我是在开玩笑,但是我并没有。现在的程序已经不是十几年前,随便写一个东西就可以了,可能你光搭建一个骨架,要配置要设计的东西有很多,同时根据项目的不同,你可能需要做得事情也有很多。比如你做一个安卓应用,这个应用预期要被其他应用给调用起来,那你首先要做的不只是一个空白画面的应用,而是一个能被对方调用起来,并且回传一个他需要的结果的,空白画面(修饰词越多身价越高)。又比如,你要做一个后台,这个后台是一个共通的后台常驻处理通过数据库被调用,那除了发布这个后台,你还需要添加数据库里相关操作用的数据。一个程序,已经不是一本程序了,也许他是一个手臂或者大腿,你不能只是做一个有血有肉的四肢,你要先把和躯干链接的主要神经先做好,即使他只是一个假肢。当然,我个人觉得,我肯定跑不过一个装了假肢的刀锋战士。

小结

其实说起来是一套套的,但是一个程序的开头并不复杂,我只是把我觉得正确的姿势给梳理了一下。头开得好与坏,影响到后续的开发的速度问题。

今天的问题来了,

我现在要在一个既有系统里追加一个新的检索网页,我的开头该如何去做?



本文转自:简书

微信号:IdeaofSE

相关文章

相关标签/搜索