我有的时候会遇到这样子的问题,这个功能谁来实现,其他类要不要包含这样子类似的功能,这个功能应该作为子函数,还是全局函数?这些东西到底如何来划分呢?有没有什么可以指导的书籍推荐呢?有的时候第二天看自己第一天写的代码就觉得层次划分真是太乱了!
|  |      1tinyproxy      2016-03-30 10:14:52 +08:00 1. 写多了就知道了,现在不知道就按照感觉写,不行重构。 2. 我的做法是,常改的地方遵循设计模式,万年不动的地方随便写。 | 
|  |      2SourceMan      2016-03-30 10:16:57 +08:00  2 代码耦合:你把 360 卸载了,系统就蓝屏后再也进入不了桌面了 | 
|      3mengzhuo      2016-03-30 10:21:23 +08:00 via iPhone 一看就是 unix 系统用得少的思路 所有函数只干一件事。只有一个结果。 | 
|      4ershisi      2016-03-30 10:46:42 +08:00 一个函数最多做两件事情。每个功能尽量保证独立。不要让你的逻辑与你的代码混杂在一起。这是我理解的耦合。 | 
|  |      5hxndg OP @mengzhuo 我还是不太理解,什么叫做函数只有一个结果?比方说我一个命令“探测”,参数可能有-p 表示 ping ,-i 表示 icmp ,那么所谓的一个函数一个结果是不是值一个函数实现 ping 探测,一个函数实现 icmp 探测?当然我的例子觉得可能不是很对毕竟 ping 就是 icmp | 
|      9mengzhuo      2016-03-30 11:08:06 +08:00 @hxndg  理解得不对,一个函数只干一个事情,你的“探测”已经属于上层 API 了。 函数实现 ping 另一个函数实现 tcp port scan 探测调用 ping 和 tcp port scan ,总结果汇总,调用输出函数做数据序列化。 ps 设计模式=设计思路,如果你的本身思路不对,偏偏要用另一种思路来解决,有点拉猪上树的味道了。 | 
|      10ershisi      2016-03-30 11:18:57 +08:00 @hxndg 你去了解一下面向对象编程思想。这个不好跟你解释。对于“过程式编程”这个词语也可以去了解一下。对这些有了概念,应该就明白什么叫做逻辑与代码分开了。 | 
|  |      11cheng4741      2016-03-30 11:27:41 +08:00 @hxndg 这不是杀牛和杀鸡的问题,我觉得设计模式可以改变你解决问题的思考习惯。推荐《 headfirst 设计模式》,简单易懂。四人组的那本《设计模式》是最全面的,但读起来太累了。 | 
|      12znoodl      2016-03-30 12:35:52 +08:00 via iPhone 对象编程就是为了工程而设计,代码设计低耦合高内聚 | 
|  |      13sprite0616      2016-03-30 12:53:36 +08:00 书可以看《代码大全》,代码的话,就找些开源软件看。 | 
|  |      14eliteYang      2016-03-30 16:02:55 +08:00 代码耦合主要表现是代码可维护性差,牵一发而动全身。怕代码耦合,我给你一种建议,就是面向接口编程,这也是我们开源项目的主要设计思路, github 地址: https://github.com/ketoo/NoahGameFrame ,可以参考下我们的代码,希望对你有帮助 | 
|      16JFW      2016-03-30 18:37:25 +08:00 via iPhone 我们现在的架构是,即使换了个表示层,只要数据结构没变化,随便切换.... | 
|  |      17ihuotui      2016-03-31 01:47:38 +08:00 重构即改善代码 thought works 的书 |