1. 引言

古语云:道为术之灵,术为道之体;以道统术,以术得道。

其中:“道”指“规律、道理、理论”,“术”指“方法、技巧、技术”。意思是:“道”是“术”的灵魂,“术”是“道”的肉体;可以用“道”来统管“术”,也可以从“术”中获得“道”。工匠追求“术”到极致,其实就是在寻“道”,且离悟“道”也就不远了,亦或是已经得道,这就是“工匠精神”——一种追求“以术得道”的精神。如果一个工匠只满足于“术”,不能追求“术”到极致去悟“道”,那只是一个靠“术”养家糊口的工匠而已。

作为《工程师实战方法论核心 12 讲》专栏的最后一篇文章,笔者不打算介绍一个具体的案例(术),而将介绍一些从实践中总结而来的设计理念,勉强算是“道”吧。如果你已经阅读至此,那么不妨继续阅读,有始有终,相信定会有所收获。

2. 设计理念

2.1 自上而下设计,自下而上验证

提到软件设计,很多工程师可能会想到一幅幅结构清晰的架构图,以为关于软件架构的所有奥秘都隐藏在图里,但经历过一些项目后发现,这往往是不够的。Jack Reeves 在《源代码即设计》一文中提出一个观点,笔者深以为然,在此引用如下:

高层结构的设计不是完整的软件设计,它只是细节设计的一个结构框架。在严格地验证高层设计方面,我们的能力是非常有限的。详细设计最终会对高层设计造成的影响至少和其它的因素一样多(或者应该允许这种影响)。对设计的各个方面进行改进,是一个应该贯穿整个设计周期的过程。

主题 12:实践案例集锦之设计理念相关推荐

  1. 主题 12:实践案例集锦之兜底方案设计

    1. 引言 惟事事,乃其有备,有备无患--<尚书·说命中> 在<主题 02:如何设计系统预案?>一文中,笔者以三个 W(什么是预案?为什么要做预案?如何设计预案?)为主线展开, ...

  2. 主题 12:实践案例集锦之接口设计

    1. 引言 API 是模块或者子系统之间交互的桥梁,好的系统架构离不开好的 API 设计.在<主题 1:如何设计一个好的 API>一文中,笔者解读了什么样的 API 设计是好的设计,本文作 ...

  3. 【视频课】如何真正系统性地夯实CV基础,近50小时视频+12大Pytorch CV实践案例助你攻略CV三大基础任务...

    计算机视觉中大大小小可以包括至少30个以上的方向,在基于深度学习的计算机视觉研究方向中,图像分类,图像分割,目标检测无疑是最基础最底层的任务,掌握好之后可以很快的迁移到其他方向,比如目标识别,目标跟踪 ...

  4. 超干货 | 一线从业者实践案例大分享:3个tips实现用户增长

    12.21冬至日,网易云信.网易七鱼联合职人社举办线下闭门交流会,一起探讨To B企业如何做增长.活动筛选了来自不同行业的21位嘉宾,要求每人准备5分钟的分享,聊聊自己在过去一年的增长经验. 继最具启 ...

  5. 科大讯飞交通超脑荣获 2019 年大数据应用最佳实践案例 TOP10

    12月5日,由中国计算机学会主办,CCF 大数据专家委员会承办的中国大数据技术大会(BDTC 2019)在北京长城饭店隆重举行.会上揭晓了由CCF大数据专家委员会组织评选的大数据应用最佳实践案例TOP ...

  6. php教育网站设计案例_南广东区优秀网站设计案例集锦第四期

    南广东优秀网站设计案例集锦第四期 第一名:吴嘉文 佛山资深设计师 01 个人介绍 亚里士多德曾经说过:"我们每一个人都是由自己一再重复的行为所铸造的.因而优秀不是一种行为,而是一种习惯.&q ...

  7. 私域增长 | 私域会员:9大连锁行业15个案例集锦

    在见实刚刚发布的"会员×私域"主题白皮书中收录了9大连锁行业26个私域会员案例.这些案例涉及的9大行业分别为:餐饮.美妆.珠宝.鞋服.商超百货.零售.母婴.酒店.茶饮.本篇文章将为 ...

  8. 数据库案例集锦 - 开发者的《如来神掌》

    标签 PostgreSQL , PG DBA cookbook , PG Oracle兼容性 , PG 架构师 cookbook , PG 开发者 cookbook , PG 应用案例 背景 「剑魔独 ...

  9. Java单元测试典型案例集锦

    前言 近期,阿里巴巴CTO线卓越工程小组举办了阿里巴巴第一届单元测试比赛<这!就是单测>并取得了圆满成功.本人有幸作为评委,在仔细地阅读了各个小组的单元测试用例后,发现了两大单元测试问题: ...

最新文章

  1. sql 2005提示未能加载包Microsoft SQL Management Studio Package
  2. 9个必知的 Python 操作文件/文件夹方法
  3. jQuery超炫酷按钮插件及源码
  4. [leetcode-515-Find Largest Value in Each Tree Row]
  5. Ubuntu设置为命令行登录
  6. 第 20 章 观察者模式
  7. Oracle 12C 新特性之扩展数据类型(extended data type)
  8. C++类的成员函数(在类外定义成员函数、inline成员函数)
  9. 相机模型与标定(四)--opencv单目标定例子使用说明
  10. [公告]博客迁移通知
  11. Java entity 映射 Json大写字段方法
  12. 微信扫码登陆(1)---扫码登录流程讲解、获取授权登陆二维码
  13. c#求长方形的面积周长公式_长方形的面积和周长公式是什么?
  14. 学习PLC不可错过的15个基础!
  15. 蓝凌OA系统任意文件读取
  16. Java项目——云R记
  17. 将笔记本打造成遥控器――远程桌面控制台式机
  18. MATLAB下批量修改图片名称
  19. [TC6194]AllWoundUp
  20. eclipse工具的使用

热门文章

  1. 三步走,教你高效管理好团队
  2. catboost 的实例应用附带特征重要度打印
  3. MAC无法挂载移动硬盘
  4. JavaScript今日所学 数组
  5. 【论文阅读30】-《Autocuts: Simultaneous Distortion and Cut Optimization for UV Mapping》
  6. C语音:for循环实现n个数简单求和
  7. 关于Arduino、树莓派和 Pixhawk微处理器对比分析
  8. C# 文字视频生成器
  9. Ubuntu打造家用NAS三——网盘与影视中心
  10. 3D点云的快速分割:自动驾驶汽车应用的LiDAR处理实例