大家写程序前会先设计好所有的类,考虑系统或应用的灵活性和可扩展性,刻意去使用设计模式吗?

2012-11-26 16:59:51 +08:00
 bupo
自己写的代码只考虑功能的实现,就开始写代码,没有一个全局的考虑。到最后,功能都实现了,发现自己写的代码就是垃圾,很苦恼。
4126 次点击
所在节点    程序员
12 条回复
picasso250
2012-11-26 17:19:38 +08:00
我会写一下UML(虽然非常简单)
bupo
2012-11-26 17:46:24 +08:00
@picasso250 看到别人写的开源代码,设计非常优雅,自己就是做不到,要怎么锻炼这种能力呢?重构自己的代码?
wayn3h0
2012-11-26 17:54:45 +08:00
必须先设计好类,层次划分,功能模块划分,各种调用关系,统一调用入口...用的最多的像是酱子的:
model -> 公共数据结构定义
data -> provider模式 怕以后数据库切换问题
business -> 业务逻辑 定义一个统一入口管理data provider, cache 等 由business object调用,便于以后切换cache, data provider等(一般从配置文件读入然后caching)
view -> 前端各种模板
conis
2012-11-26 17:59:37 +08:00
1.事前考虑好,对业务有足够的了解很重要
2.重构,貌似不存在不需要重构的代码,模块化组件化很重要
最后,不建议刻意去使用设计模式,设计模式是为了解决问题的方案抽象。某些设计模式很常用,比如说工厂模式。
bupo
2012-11-26 18:40:03 +08:00
@conis
@wayn3h0
学习
picasso250
2012-11-26 18:48:05 +08:00
@bupo 其实,我就是想求一下优雅的开源代码。能给个地址或者名称吗?
reus
2012-11-26 18:51:58 +08:00
不会刻意设计,因为写着写着就会发现需要重构的了,而且重构要尽快不要留下负债
bupo
2012-11-26 19:09:52 +08:00
@picasso250 Nutch
bupo
2012-11-26 19:14:27 +08:00
@picasso250 以前为了在nutch基础上做二次开发,看过源代码,他的插件机制特别灵活,所有的扩展都不用修改原本的代码,真正做到了对扩展开放,对修改封闭
imcj
2012-11-27 10:00:22 +08:00
设计模式也需要练习,模式是前人总结的经验,唯有多练习才能得心应手。
自上而下还是自下而上的问题,Google吧,相当多的讨论。
dudong0726
2012-11-27 10:02:55 +08:00
设计模式是用出来的,技术积累到一定程度,设计模式自然出来,所以还是先完成功能
vilic
2012-11-27 13:47:36 +08:00
我觉得说 "使用设计模式" 是不恰当的, 至少不是最好的情况. 根据项目的大小, 周期, 性质等方面综合考虑, 做适当的规划即可. 当然这个规划的话, 可能就需要长时间的积累了?

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

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

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

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

© 2021 V2EX