如何写模块化的代码?
来源:互联网 发布:淘宝如何不显示会员名 编辑:程序博客网 时间:2024/06/15 19:45
自学CS也有几个月了,既然打算以后靠这个吃饭,就要静下心来学习,走得比一般人更远。
最开始学习时,看到的是语言,语法。后来,就是算法结构之类的技术了。
虽然各种语言,数据结构算法还没有打通关,但自信心是建立起来了。找个工作,养活自己,还是不愁的。
既然不愁,那就好好磨练自己的头脑。从这个学科的发源开始,好好学习。
逻辑、数学,是逃不掉的了。尤其是逻辑,本科阶段就有点点兴趣,却一直没去研究。对数学比较暧昧,一方面不自信,虽然应付各种升学考试,成绩都是偏好,但一直没觉得自己入门了。
OK,既然打算一条路走到黑。就要自觉摆脱混日子的想法,精益求精。
所以,今天,就小结一下,如何写模块化的代码。
之前刷题时,都是一个主函数把代码全写完。比如超级简单的一个数列,找出最大数。
就把循环写在 main()函数里面。
for ( i = 0; i < N; i++){
if ( A[ i ] > max){
max = A[ i ];
}
}
相当不好看。应该提出来,单独作为一个函数,在主函数main()当中,直接引用即可。
这是第一步,既将一段实现一个功能的代码(如找到数列最大元素),以函数的形式调用。这个第一步,就是模块化的一个开端。
走出第一步后,将以前刷过的题,又刷了一遍,凡是能搞成函数的,我都搞成了函数。这就犯了矫枉过正的错误----模块化的原则。
模块化的原则,应该是逻辑上的,而不是形式上的。一个模块,或者相邻的模块,相邻的函数,在抽象程度上,应该保持优雅的一致性。不是只通过调调缩减,空格,把眼球对美的需求满足了就行了。更重要的是,要能够---关掉屏幕后,这段代码的大致结构,还能给人留下一个印象,做了什么事情,还能较为清楚的描述出来。这样的模块化,才是好的,这样的函数,才是我应该写的。
有了对模块化的追求,可能导致敲击代码效率的下降。这就要将编码,与美化,分隔为两个动作了。首先要确保代码完成,能编译铜通过。其次,在测试前后,再完成提炼函数,调整格式这样的工作。
不应该一开始就让格式限制思路。比如说现阶段,堆排序还不熟练,写好伪码,边想变敲,还能写出来。但还要去顾忌美不美,脑子就负担不过来了。还不如先敲对,再求美。
- 如何写模块化的代码?
- 如何模块化的组织AngularJS的代码
- 我的模块化代码
- 如何写健壮的代码
- 如何写健壮的代码
- 如何 动态编译自己写的代码
- 程序员的基本原则 /如何写好代码
- 程序员的基本原则 /如何写好代码
- 好的程序员如何写代码
- 老生常谈之如何写好的代码
- 如何隐藏你自己写的代码
- 看看幽默的程序员如何写代码...
- 转发别人的 如何写好代码
- 如何阅读其他人写的java代码
- 如何快速提高写代码的水平?
- 如何写好的代码注释
- 如何读懂别人写的vc++代码
- 如何隐藏你写的ABAP代码
- logback日志配置
- 常用設計模式
- [Spring实战系列](1)Eclipse下创建Spring-HelloWorld项目
- 解决jboss-eap-6 (jboss7)JCE cannot authenticate the provider BC 的问题
- 日历
- 如何写模块化的代码?
- windows下mongodb的安装
- 进行网络出现问题Error Domain=kCFErrorDomainCFNetwork Code=-1022 "The resource could not be loaded because th
- Android之网络编程(一)WebView 的用法
- Swift基础一
- BZOJ 1061 (费用流,填”坑“ )
- 通信协议:HTTP、TCP、UDP
- 背包问题标准模板
- 一个穿透事件问题的解决