好多人都认为,设计程序就应该按照计算机的那一套思维方法去组织代码,因为这样的话 才能够真正的理解代码运行的真正意图,才能真正的去组织好代码,真的是这样吗?我们有必要按照面对过程的那一套方式来写面对对象的代码吗?为什么面对对象编程会成为高级语言的新宠,期间有啥奥妙或者玄机吗?今天这个文章就来扯扯怎么样组织代码的一些道道。
做为程序员,我们天天都在和代码打交道,知道程序员最害怕什么?该需求?代码出现BUG?读晦涩难懂的代码?不对,程序要最怕的是一边读者晦涩难懂的代码,一边应付着需求的变更,然后最要命的是 这个该死的代码特么出现了BUG!!苦逼吧!!
代码是写给人看的,让晦涩难懂的二进制交给底层去做吧!切记啊少年,假如你不想被骂成猪一样的队友的话!!
在高级的编程语言出现之前,计算机的历史上出现过很多各种各样的编程语言,然后他们慢慢的进化,进化,进化 然后编程了现在我们能够看到的各种各样的语言。大概分析一下 一共有如下中类型。
1、机器语言,这种主要是给计算机看的,基本上没有任何一个人能够看明白,并且都是0和1的字符序列,
2、汇编语言,这个早期主要用于写在一个写汇编芯片里面,用来操作硬件和早期的一些游戏的,有N多个助记符,什么MOV,DPTR,JUMP这些个指令 学过计算机接口与原理的骚年们应该不陌生,这个语言基本没有经过一定时间的学习以后 也是不可能完全看明白的
3、普通编程语言 这里说的普通编程语言是那些C等面对过程的编程语言,他比起汇编来,更加符合人的思维,不过还是普遍的按照计算机的执行顺序来编程,所以又被成为面对对过程的编程语言,什么叫面对过程的编程,就是我刚刚提到的 将所有解决问题的方法按照计算机的执行顺序来编写的语言 我们都可以把它归到面对过程编程里来。
4、高级语言 这个不多少,就是面对对象的编程,这个更加会符合人的思维习惯,这个没有任何异议吧
我为什么要把这几种阶段的语言来比较 其实就是想和大家说明白一个道理就是,计算机编程,发展的过程就是越来越按照人都思维去编程,是为了让代码给人看明白而摒弃晦涩难懂的部分。也就是说
“代码是写给人看的,而且是写给人能看懂的”这个是我们写代码的指导原则或者说是哲学,或者是理论基础,否则任何的一个程序员都会被折腾疯掉的,业界良心啊。
那么 既然我们的计算机语言慢慢的发展,到了现在的这个地步,那么 这个过程告诉了我们什么样的道理了?
“计算机语言到了现在这个地步,摒弃了晦涩难得的细节,为的是让你尽量简单的完成任务,编写出符合人类思维的具有可读性的代码,人生就那么短暂的3亿多秒,不要浪费在写晦涩难懂的代码上,你的代码然你一看就明白,这样编码才有意义!”
那么我们如何才能组织好我们的代码了?
有很多的编程理论来支持我们去编写高质量的代码。话说最值得借鉴的就是所谓的极限编程,反正这样的书有很多,大家不懂可以直接百度,我现在只想说明一个原则
不管你使用任何方式的编程方法去组织代码,你的目的就只有一个,那就是完成任务,而你所看到的是一系列的方法论而已,他只是告诉你 ,你如果按照这样的做法能够有什么样的效果而已,只是辅助完成你的任务而已,所以 方法论不要太看得重了,否则就会是你的绊脚石而已.
在你明白了方法论的真正意义之后,你就应该明白,那些个方法论只是一些些个辅助的东西。不要看得太重,假如以后有人再在你面前说这个理论,那个理论,你只需要呵呵一笑就行了,因为那些个方法论不一定适合你!!
说完了第一个话题,写出人能够看明白的话题以后,我们看看第二个话题 代码如何组织才最有效?
很多人写代码有这么个习惯,一上来就喜欢拿着键盘一顿胡敲海写,不能说这样不好 也行有些人心里早就知道我们的代码应该怎么写了。不过很多人和我一样,是一个菜鸟,可能没有那么多的经验,那么此时应该如何去构思我们的代码结构了?我不直接说,给大家举个例子吧?
画画,大家都知道吧,特别是素描的时候,你看过那个人在素描的时候是先把对象的某一个部位话的非常的细致以后再去画其他部位的?没有吧,很多人都是先用笔随便勾画一个轮廓,再去慢慢的细画的,其实我们组织代码也是一样的。话说我们可以用文本编辑器去勾画我们的伪代码(这个过程就和勾画轮廓是一个道理),然后再慢慢的完成这个轮廓里面的任何东西。那么就还有一个问题了,关于边界的问题,这个自己把握,我只是告诉你,你要先写伪代码,然后就和你上学的时候做填空题一样 把代码填写进去就行了,所以 接下来,你一定要生生的印在你的骨子里:
1、勾画你的程序轮廓,多写伪代码,最好是以这样的形式来“student.learn(math);student.answerQuestionFrom(MathTeacher);student.goBackTo(Home)”这样的代码,一看就知道是干什么的,然后你就这样写,不做具体实现。然后直到你满意为止,那么伪代码的过程就算完成了。
2、填充伪代码,这个就是做具体的实现,就是根据你的伪代码去填充一些个代码块,该有异常的抛异常,该判断的就判断,该怎么的就怎么样弄
3、提炼和抽象封装,这个不解释,不明白的看我前一篇文章,这样的目的就是为了完成复用 没有别的意思
有了以上三个步骤,基本能写出人能看明白的代码了,假如你看不明白,只有一种结果,那就是,你想坑你的队友!!
好了 其实码代码,只要你骚味有点人文关怀,我觉得都能写出一些有良心的代码,无良程序员不在我的讨论方位之内。
如果有你什么好的博文方向,你也可以给我留言,反正我最近都是在看关于代码组结构方面的数据,我认为,假如还按照以前的那样呃编程方式,已经完全不符合我们现代编程的方向了。最后给大家推荐一本书,叫《实现模式》我觉得作者写出来的很多的观点基本上好的代码里面也都有体现,不行你找几个开源框架的代码看看,那种国内的所谓的开源代码(当然也有好的,我博客里的那个就不错,开源的项目您就别看的,坑爹的很)。好了就这么多。下期的博客我们再扯关于面对对像过程中,代码运行的不二法门,绝对精彩 不容错过啊!!