开发前的设计要怎么保证扩展性呢,感觉怎么设计都赶不上突然的变化

2021-04-28 10:56:44 +08:00
 Renco

每次设计时,都要求要考虑好未来的扩展性。结局就是要么没有未来,要么未来也全部推翻

3730 次点击
所在节点    程序员
33 条回复
SaltyLeo
2021-04-28 11:08:49 +08:00
一开始就模块化,未来扩展就扩展组件横向扩展,会很方便。
shyangs
2021-04-28 11:18:33 +08:00
問問 PM 未來的展望. PM 和老闆不給力. 你就兼職 PM, 看看競品. 反正 PM 也會看競品, 包裝成需求提出.
golangLover
2021-04-28 11:24:32 +08:00
这是人的问题,不是技术问题。
Mohanson
2021-04-28 11:34:26 +08:00
没有设计就是最好的设计
SteinsGate
2021-04-28 12:02:18 +08:00
将有可能变化的模块(类)依赖接口
kop1989
2021-04-28 12:11:11 +08:00
能做到的也就是功能解耦、性能冗余了。

因为你不管用什么精妙设计,都会有刁钻角度的需求一击既溃的。
no1xsyzy
2021-04-28 12:47:26 +08:00
没有银弹

除非你允许插件替换你的二进制码(参考 Minecraft 的 mod
abcbuzhiming
2021-04-28 13:22:20 +08:00
别想了,你保证不了的,就现在互联网项目那种动不动推了重来的模式,你怎么弄都没有用,所谓扩展,是保证原有模块基本不变的情况下,新增功能,可现在的开发需求动不动玩的是“推翻”,还扯淡什么“拥抱变化”。这种换神仙也没用,推了重来是唯一方式
baiyi
2021-04-28 13:33:32 +08:00
可以看看这本书作者提供的书单,虽然这本书讲的是重构,但重构和设计是分不开的
https://github.com/phodal/migration
PainAndLove
2021-04-28 13:38:34 +08:00
这个问题我之前也想过,如果基于目前我们项目的组织,让我自己提需求。 我可以变着花样让当前的扩展性=0
312ybj
2021-04-28 14:03:48 +08:00
找到变化,封装变化。 在完成这一期需求的同时, 尽量地使用设计模式动态地抽象结构设计; 如果是增加功能,可以多加个节点就完事, 如果是改之前的需求, 那就得改之前的代码了。
watcher
2021-04-28 14:09:11 +08:00
重构 - 有效改善之前装过的逼
zhengxiaowai
2021-04-28 14:09:19 +08:00
keep to refactor
kooze
2021-04-28 14:12:32 +08:00
这就是他们要的“经验”
domodomo
2021-04-28 14:23:23 +08:00
向你推荐面向接口 /协议编程设计,用过的同学都说好,再也不怕产品经理拍脑袋的需求了。
v2lhr
2021-04-28 14:27:48 +08:00
计划赶不上变化
charten
2021-04-28 14:30:04 +08:00
既然计划赶不上变化,那就以不变应万变
IvanLi127
2021-04-28 16:18:38 +08:00
微服务?让重构的时候负担小点?
libook
2021-04-28 16:32:27 +08:00
https://www.v2ex.com/t/767139?p=1#r_10391487

先让产品设计人员做好未来的规划,在可预见的需求中进行扩展性的设计,有余力可以在不提高成本的条件下考虑一些未计划但可能大概率会有的需求。

然后就是要时刻意识到,你的代码是有生命周期的,一旦需求发生变化,生命周期结束,让项目经理在评估项目 ROI 的时候把这个生命周期考虑进去。
s0nnse
2021-04-28 16:35:25 +08:00
DDD 领域驱动设计模式

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

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

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

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

© 2021 V2EX