在编程做具体项目的时候, 雕塑 vs. 积木?

2018-10-24 18:20:35 +08:00
 iugo

雕塑:

拿来一块大石头(或者橡皮泥), 然后雕刻(或捏). 当要做许多类似雕塑的时候, 先一起雕刻出大概的通用形状, 然后根据需求(参数)再进一步雕刻为最终形状.

积木:

先找到细化的某一小部分, 将其作为一个积木, 找到许多小部分, 作为一些积木. 然后将这些积木组合, 拼接, 做成最终形状.

我不喜欢雕塑的原因是, 一旦有一个新的但与之前类似的雕塑, 不兼容通用形状, 就要修改通用形状. 而这种通用, 很可能不止一层, 而是一级通用, 二级通用, 三级通用... 要修改哪一层, 对其他具体的最终形状是否有破坏, 随着项目进展, 兼容太多导致最终想要将某些剥离出这类形状.

1418 次点击
所在节点    程序员
10 条回复
owenliang
2018-10-24 18:26:57 +08:00
过早优化是万恶之源。

一开始搭架子考虑太多,的确适得其反。
chinawrj
2018-10-24 18:59:41 +08:00
雕塑雕塑雕塑
iugo
2018-10-24 19:19:33 +08:00
@owenliang 我觉得雕塑是搭架子. 积木就是一点点抽小函数.
iugo
2018-10-24 19:20:10 +08:00
@chinawrj 产品需求变化快啊. 如果是自己做产品, 那就另说.
smeraldo
2018-10-24 20:15:57 +08:00
积木组合拼接..这是 tdd?
PythonAnswer
2018-10-24 20:42:04 +08:00
积木 = linux 原则
daodao
2018-10-24 20:43:36 +08:00
有这思考,不错小伙子
chinawrj
2018-10-25 09:21:48 +08:00
@iugo 仔细看了一下你的原贴。我觉得你的雕塑最初选择的有问题,雕塑的选择应该具有很大的通用性。否则就失去雕塑的意义。
iugo
2018-10-25 09:51:42 +08:00
@chinawrj 对, 最初应该有很大通用性. 但越通用就距离最终形态越远, 如果细分, 前期通用性强, 但造成层级过多; 如果不细分, 就造成通用性差.
flyingghost
2018-10-25 10:51:43 +08:00
自上而下设计 和 自下而上设计。
你会发现,设计阶段还是自上而下比较好,而实现阶段,自下而上实现非常舒适。
至于你纠结的时候,其实也是重构的时机和价值体现。重构一定会影响设计,但不一定影响砖头。
设计的一种思路是大干快上先实现,只有当某个东西重复第三次的时候才开始考虑重构。好处是务实,坏处是不断返工结构糟乱劳心劳力。
另一种思路是前期设计充分考虑变化,架构充分灵活可扩展。好处是红星照耀我方向,坏处是过度设计结构复杂劳心劳力。
总之劳心劳力。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/500768

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX