昨下午看了DTR的分析模型和设计模型之后,我总结了一些对它们的改进建议:

l         要明确化所有方法的返回类型,及如何消费返回对象!<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

l         要明确化类与类间的关联类型及关联维度。

l         要明确化设计元素的属性定义。

l         在分析模型中应该有分析类的关联类图。

l         在分析模型、设计模型中包含(ChannelProcessor)的配置信息的对象模型。

l         修正模型,在模型中添加“直接编码”新增的类。

l         类、属性等的命名要一致、统一。

l         方法参数的命名要一致、统一,类型要明确。

l         在设计模型中要表达Processor Chain的设计。

今天来公司时,想了想,昨天跟王振骞聊了一会,我在想,有一种正确的态度叫做认真设计,事实上,做设计从来不等于是“闲”。平台产品更要要求按规范的软件过程来开发,我们越是在设计上下功夫,我们的工作产品才越是设计良好和架构良好的。

我们最先要的不是一打又一打的代码,而是思路,清晰的思路和有条理的模型,当然,表达这思路和条理也有多种方式,这跟项目规范直接相关。

同样也是在跟王振骞聊的过程中,我想到了“自己知道”和“能表达(绘制有条理的模型或者其它方式)清楚”的区别,就象是“学生自己懂”和“老师要把别人讲懂”之间的区别一样。试想,当我们是学生时,我们知道“平衡树”的概念,以为自己懂了“平衡树”,假如我们要做老师,单是“知道”的水平是不能让学生真正懂得“平衡树”的。所以,在软件研发过程中,类似的情况是,我们单是“自己知道”还远远不够,除非你能非常清楚规范的表达出来。

避免让代码出现臭味,(自认为)有经验的程序员常常越过设计直接编码,当有这一想法的一刹那,他(她)先前写的代码就已经出现了臭味。

如果说软件开发是艺术的话,分析、设计和编码的工作产品就是“雅俗共赏”的艺术品。“雅”就是“设计之美和架构之美”,“俗”就是“浅显易懂”,假使我们分析、设计和编码的工作产品变成了“印象派”作品,就只能让人去随意想象作品的内涵了,或者也要等到多年之后才能想明白,可是,对于要求严谨和浅显的软件开发来说,“印象派”作品绝对不受欢迎!

我在想,倘若我们在主张和(或)首倡“什么过程流程(XP、RUP)”、“什么方法论(OOP、SOA、AOP)”的问题上煞费苦心,我们常常有些劳民伤财,因为,当你在软件研发领域耕耘多年以后,你“渐行渐远”的回头去看,它们(不论是过程流程,还是方法论)都是一脉相承的。

比较理想的情况是,我们对分析、设计、编码的细心程度要求得就象是跟心仪已久的女孩初次约会前整理衣装、修理边幅时那般在意,我们端庄或潇洒、靓丽或帅气,我们(分析、设计、编码)的工作产品也会美不胜收(请参考《软件涅槃》之软件之美)。我们对“工作”的重视也恰似对那女孩的重视一样,跟那女孩相处是极乐,看我们优美的工作成果也是快乐!

我觉得,在工作中,如果可能,就面对面去交流吧,因为面对面时传递的不仅仅是声音!

希望大家指正,欢迎反馈!

转载于:https://www.cnblogs.com/edgard/archive/2005/11/29/286917.html

读《DTS分析模型、设计模型》有感相关推荐

  1. 读《豆瓣的基础架构》有感

    豆瓣整个基础架构可以粗略的分为在线和离线两大块.在线的部分和大部分网站类似:前面用LVS做HA,用Nginx做反向代理,形成负载均衡的一 层:应用层主要是做运算,将运算结果返回给前面的用户,DAE平台 ...

  2. 15读《算法基础》有感——决策树

    15读<算法基础>有感--决策树 学完本学期的<算法设计与分析基础>,想对"决策树"做进一步的了解,于是读了Rod Stephens<算法基础> ...

  3. simplify逆向_Simplify-SDK-一种以代码形式管理基础架构的框架。

    simplify逆向 When working with AWS services, you've got several choices to build and deploy your lambd ...

  4. View 5.1 重装上阵(4—基础架构篇)

    从底层架构方面来看,VIEW 5.1最大的改进在于引入了Content-Based Read Cache(CBRC) 技术,大大降低了部署桌面虚拟化所带来的IOPS风暴,同时大大降低了对于存储的压力和 ...

  5. 聊聊 Kafka: Kafka 的基础架构

    一.我与快递小哥的故事 一个很正常的一个工作日,老周正在忙着啪啪啪的敲代码,办公司好像安静的只剩敲代码的声音.突然,我的电话铃声响起了,顿时打破了这种安静. 我:喂,哪位? 快递小哥:我是顺丰快递的, ...

  6. 机器学习的中流砥柱:用于模型构建的基础架构工具有哪些?

    本文转载自公众号"读芯术"(ID:AI_Discovery) 人工智能(AI)和机器学习(ML)已然"渗透"到了各行各业,企业们期待通过机器学习基础架构平台,以 ...

  7. 数据中心基础架构 22 年演进

    01 前言 当今世界正处在信息技术(IT)创新的黄金时代.由机器学习.物联网和大规模可扩展应用支持的云计算.移动应用.大数据分析的巨大力量正在重塑商业和社会的方方面面.而这场IT复兴的中心,则是超大规 ...

  8. k86跟mysql_MySQL【基础架构】

    一.前言 平时我们使用数据库,看到的通常都是一个整体. select * from T where ID=10: 对于上述语句,我们看到的只是输入一条语句,返回一个结果,却没有关注这条语句在 MySQ ...

  9. 译 | .NET Core 基础架构进化之路(一)

    原文:Matt Mitchell 翻译:Edi Wang 随着 .NET Core 3.0 Preview 6 的推出,我们认为简要了解一下我们基础设施系统的历史以及过去一年左右所做的重大改进会很有用 ...

  10. 【mysql技术内幕1】mysql基础架构-一条SQL查询语句是如何执行的

    文章目录 1 一条SQL查询语句是如何执行的 2 mysql体系结构 3 InnoDB存储引擎 4 总结 1 一条SQL查询语句是如何执行的 ​ 通常我们使用数据库,都是将数据库看成一个整体,我们的应 ...

最新文章

  1. Yum在线升级之网络(本地)服务器的搭建!
  2. 数据中心架构有哪些组件?
  3. C++ Primer 5th笔记(chap 14 重载运算和类型转换)重载运算概述
  4. WCF绑定细节(2)——绑定,绑定元素
  5. ICS—CERT官网公示匡恩网络新发现四工控漏洞
  6. 三数之和—leetcode15
  7. NLP事件抽取综述(上中下):中文事件抽取、开放域事件抽取、事件数据生成、跨语言事件抽取、小样本事件抽取、零样本事件抽取等类型
  8. myeclipse2019左侧工程目录字体的大小调整
  9. CSS3边框图片、边框阴影、文本阴影
  10. unix文件描述符——socket
  11. 《设计模式沉思录》—第2章2.4节访问权限
  12. 两台windows笔记本创建家庭组实现文件共享
  13. 7-5 BCD解密 (10 分)
  14. UGUI的image
  15. Archlinux GRUB2 配置
  16. 调用operator+=来定义operator+比其他方法更有效?
  17. 如何有效管理项目进度?管控关键里程碑?
  18. 百度地图API(WEB端/JavaScript API)--实际运用与扩展
  19. c语言 不同的io口组成数组,本章内容并行IO口电路结构认识C语言C语言基本语句C语.ppt...
  20. 解决!只有IE64位浏览器能上网,其他软件都上不了网

热门文章

  1. JAVA中CLASS.FORNAME的含义
  2. PHP中cURL错误号对照[转]
  3. java避免空指针异常
  4. 诗与远方:无题(八十三)- 雪国冷天,心死随魂
  5. Linux shell脚本调试
  6. JS身份证合法性校验完全版
  7. Java JDBC工具类
  8. 坚果云 operationnotallowed webdav_妙用 NAS 服务,将你的知识库和音乐库搬上「云」...
  9. 快速排序思路(挖坑版),代码实现
  10. Python学习笔记——控制语句