五千年(敝帚自珍)

主题:【原创】编程心得 -- 荆棘探兴

共:💬198 🌺258
全看分页树展 · 主题 跟帖
家园 编程需要理解设计模式

就我的心得,所谓模式编程,就是先设计好数据结构,然后围绕着数据结构去构建程序。做一个任务实际上就分析处理流程,按处理流程的工序分出功能块。然后针对功能块设计数据结构,再围绕数据结构编写一组函数。最后完成的系统就是功能函数簇的串接。按照这样的思维,C语言也可以写出面向对象的程序。面向对象的语言,其实就是从编程机制上固化上述的设计模式。

而与此对应的,是很多人的编程,其实就停留在处理流程分解上,函数就是不停的分解流程,越来越细,虽然可以将相同或相似的功能合成同一个函数,但是因为没有数据结构这个基础,这种合并往往没有条理性,甚至合并的函数内再通过代入的参数来用switch分出很多的分支。这样的程序,没有统一的数据结构基础,因此可能公用变量到处乱飞,写一段程序,要记住n多的变量,因此很多程序员经常会说:“别急,让我编完这段再去吃饭,要不然就忘了”。如果能够理解设计模式的真谛,就绝对不会出现上面的那些现象,可以在任何时候合上电脑去干别的事情,然后回来接着编。

设计模式编程,不单是干活轻松,而且会给自己积累一堆的工具库,工作时间越长积累就越多。一个10年的程序员绝对不单比年轻人的编程速度快好几倍,更厉害的是,通过这些积累,更可以编写那些年轻人根本编不出来的程序。

还有,我很奇怪,编C程序,能有错误找不出来这一说。只有干不出来的任务,没有调不出来的程序。任务只要变成了程序,下面就是体力活,C语言的错误,说起来复杂,其实也就那么几种,而最主要的就是内存溢出。其实如果大学时学好了计算机原理和数据结构,脑子中有一个数据空间的概念,还真没有什么不能调出来的。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河