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