这篇博客就从我的一个同事说起。
阿广:一个很有经验的程序员,我很佩服他,大概半个月前离开研发中心,去产品中心做需求。在做需求期间应该对领域知识感触比较深,一次聊天聊到了我们感兴趣的知识。
回头看我们的聊天记录的时候,感到自己在这段时间进步了不少,故以此文鼓励自己继续前进。
一、部分聊天记录如下:
阿广 10:22:03
不断修改原型,感觉画界面 总是要有模型来主导
阿广 10:22:19
最后的界面原型一定是建立在模型上
管宇 10:22:41
界面 是展示 模型(model)的
阿广 10:22:42
有了领域模型,最后才能画出最合理的原型
阿广 10:23:03
我说的不是 model
管宇 10:23:16
什么是模型
阿广 10:23:34
领域模型啊
管宇 10:23:43
什么事 领域模型
管宇 10:24:02
是你从 复杂的领域知识中 抽取出来的
阿广 10:24:37
画界面原型时,脑子里有模型的影子
(图一:这是需求画的原型)
管宇 10:25:10
我不太清楚界面原型
管宇 10:26:24
领域模型需要来自,熟悉领域知识的人, 比如 你们的吕明同学、 还有在一线的员工(比如银行的收银员、工厂的劳动者)
阿广 10:26:55
对
阿广 10:27:15
这个图,背后是有模型的
管宇 10:27:42
然后根据这些模型,催出 界面原型。
管宇 10:28:31
对,你这个肯定会有领域模型。
不应该 先出界面原型, 应该先有 领域模型。

(图二)
管宇 10:29:08
我更喜欢这个图
阿广 10:29:14
我用word粗略画出的
管宇 10:29:34
工具只是次要的,关键说明了 关系!
阿广 10:29:46
没有这个模型,最后使用一定会出问题
管宇 10:30:11
是啊,以后会更复杂的。
阿广 10:30:40
开始我的原型就画偏的,最后逐渐向这个图演进
管宇 10:31:28
呵呵 还是建议你先画这样的图
阿广 10:31:35
嗯
阿广 10:31:47
重构得到模式的道理
管宇 10:33:51
这个我也比较认同,有同感。早期的模式都是重构出来的。跟甚至我们在实际开发中可以重构出自己的模式。
阿广 10:34:12
嗯
阿广 10:34:25
管宇我看好你啊
阿广 10:34:32
管仔
管宇 10:34:52
我也更高兴,我们有共同语言!哈哈
阿广 10:35:32
我在你这个年龄的时候,这方面一无所知
管宇 10:35:46
我还需要练习 基本功,
管宇 10:36:36
呵呵 你对重构、领域知识的认识很高,去产品中心可以展示你的长处。
阿广 10:36:37
最后能不能实现,还是靠基本功
阿广 10:36:55
找到感觉了
阿广 10:37:08
以前也是受高人指点
二、关于领域模型:是有生命的,比如在图二中的 申请单他就需要依赖课程、费用、参训人员等等。课程、费用、参训人员不能单独存在。就像胳膊、腿一样单独存在。
三、对于重构: 我很希望大家在平时的工作中就去做这件事。有什么好处那?
1. 整理自己的思路。
2. 代码比较易读。
3. 降低代码后期修改的成本,如果你坚持重构,你懂得....... 呵呵!
4. 编写功能单一的函数(方法)。
.......
四、 学习设计模式:这个需要基本功,如果单独的看模式,没有面向对象的知识和项目的经验,即使理解了,也不能驾驭他。这只是我的感觉。
就像李小龙每天都练习扎马步一样。同时在开发的过程中,如遇到问题多思考一下,如果这时候你把一个模式用到项目中,我相信在以后的生涯中你都不会忘记这个模式。
五、我心中的规范: 先推荐一本书籍吧《.Net 设计规范》译:葛子昂。
程序员作为代码的编写者、阅读者、使用者都应该把这本书籍作为一个工具,时常翻阅。他会告诉你.net framework的设计,以及为什么这么设计。比如Stream为什么设计为抽象类,而不是接口、枚举的设计......等等
关于注释:函数名称就是一个很好的注释,而且函数的职责必须单一,如果发现有另外的一个业务逻辑,那么vs提供了很好的功能,选中代码,右键重构,即可!所以我不太喜欢写太长的汉字注释。但是我喜欢#region把功能相同的代码包起来.
五、 目前工作的状况,项目就要上线,意味着加班就要结束,我也即将加入到新的项目组。想出去玩一下。
六、 未来的发展:希望在不久的将来做架构设计。我喜欢领域驱动的知识,因为他可以指导我们的开发思想,交我做事的方法。
......还有很多想说的,只是现在知识体系还不够系统和成熟。
最后祝福阿广同学取得更好的进步。也祝福我自己进步的更快!

作者: 管宇 发表于 2011-07-06 09:00 原文链接