小菜和大鸟的编程故事之四:抛弃复制 选择复用
2013-05-14 16:33
399 查看
小菜:“我明白了,他说用任意一种面向对象语言实现,那意思就是要用面向对象的编程方法去实现,对吗?OK,这个我学过,只不过当时我没想到而已。”
大鸟:“所有编程初学者都会有这样的问题,就是碰到问题就直觉的用计算机能够理解的逻辑来描述和表达待解决的问题及具体的求解过程。这其实是用计算机的方式去思考,比如计算器这个程序,先要求输入两个数和运算符号,然后根据运算符号判断选择如何运算,得到结果,这本身没有错,但这样的思维却使得我们的程序只为满足实现当前的需求,程序不容易维护,不容易扩展,更不容易复用。从而达不到高质量代码的要求。”
小菜:“鸟哥呀,我有点糊涂了,如何才能容易维护,容易扩展,又容易复用呢,能不能具体点?”
大鸟:“比如说,我现在要求你再写一个windows的计算器,你现在的代码能不能复用呢?”
小菜:“那还不简单,把代码复制过去不就行了吗?改动又不大,不算麻烦。”
大鸟:“小菜看来还是小菜呀,有人说初级程序员的工作就是Ctrl+C和Ctrl+V,这其实是非常不好的编码习惯,因为当你的代码中重复的代码多到一定程度,维护的时候,可能就是一场灾难。越大的系统,这种方式带来的问题越严重,编程有一原则,就是用尽可能的办法去避免重复。想想看,你写的这段代码,有哪些是和控制台无关的,而只是和计算器有关的?”
大鸟:“所有编程初学者都会有这样的问题,就是碰到问题就直觉的用计算机能够理解的逻辑来描述和表达待解决的问题及具体的求解过程。这其实是用计算机的方式去思考,比如计算器这个程序,先要求输入两个数和运算符号,然后根据运算符号判断选择如何运算,得到结果,这本身没有错,但这样的思维却使得我们的程序只为满足实现当前的需求,程序不容易维护,不容易扩展,更不容易复用。从而达不到高质量代码的要求。”
小菜:“鸟哥呀,我有点糊涂了,如何才能容易维护,容易扩展,又容易复用呢,能不能具体点?”
大鸟:“比如说,我现在要求你再写一个windows的计算器,你现在的代码能不能复用呢?”
小菜:“那还不简单,把代码复制过去不就行了吗?改动又不大,不算麻烦。”
大鸟:“小菜看来还是小菜呀,有人说初级程序员的工作就是Ctrl+C和Ctrl+V,这其实是非常不好的编码习惯,因为当你的代码中重复的代码多到一定程度,维护的时候,可能就是一场灾难。越大的系统,这种方式带来的问题越严重,编程有一原则,就是用尽可能的办法去避免重复。想想看,你写的这段代码,有哪些是和控制台无关的,而只是和计算器有关的?”
相关文章推荐
- 小菜和大鸟的编程故事之十二:无熟人难办事?--聊设计模式之迪米特法则
- [导入]小菜编程成长记(三 复制VS复用)
- 小菜和大鸟的编程故事之五:业务和界面分离
- 小菜和大鸟的编程故事之三:代码规范和重构意识
- 小菜和大鸟的编程故事之八:初识"策略模式"
- 小菜和大鸟的编程故事之十四:设计模式不能戏说!设计模式怎就不能戏说?
- 小菜和大鸟的编程故事之十:会修电脑不会修收音机?--谈设计模式原则
- 小菜和大鸟的编程故事之六:简单工厂模式之体验
- 小菜和大鸟的编程故事之二:面试中代码无错就够了吗?
- 小菜和大鸟的编程故事之七:工厂模式不好用了?
- 小菜和大鸟的编程故事之十三:门面让程序员的程序更加体面
- 小菜和大鸟的编程故事之九:反射--程序员的快乐
- 小菜和大鸟的编程故事之一:活字印刷-面向对象思想的先驱
- 小菜和大鸟的编程故事之十一:三层架构 分层开发
- Linux网络编程服务器模型选择之IO复用循环并发服务器
- Linux网络编程服务器模型选择之IO复用循环并发服务器
- 第三章 AOP 编程选择
- 第三章 AOP 编程选择
- 网页禁止复制,鼠标右键,鼠标左键,选择等
- JAVA练习题选择编程