- 浏览: 117763 次
- 来自: ...
文章分类
最新评论
网上有很多关于简单设计的争论. 观察了一下发现大家其实在说两个问题:一个是作为结果的简单设计,一个是作为过程的简单设计. 说一下我的理解.
做为结果的简单设计是这么一种设计,它能被几乎所有人理解, 但只有极少数人能做出. 或者反过来说也可以. 简单设计是一种只有极少数人能做出的设计,但设计一旦做出后,<wbr></wbr>能被所有人理解. 宏观物理世界这么复杂,但牛顿用三个定律就描述清楚. 质能方程E=MC2是另外一个例子. 如果这个定义是成立的, 那么可以有一个推论:
如果team得到了一个大多数人都理解的“简单”设计, 它是经验较少的人和经验较多的都会做出的, 那么要么是问题域本身很简单, 要么是所有人都没有真正理解问题域; 当然也有可能是team应用了后面将要说的作为过程的简单设计.
做为结果的简单设计是很稀少的, 否则乔布斯, 牛顿和爱因斯坦也不会这么经典. 很多项目直到结束都未必得到一个简单的设计. 但所有项目都可以尝试的是作为过程的简单设计.
做为过程的简单设计是这么一种过程: 因为清楚的知道做为结果的简单设计是如此难以获得并深刻的理解难<wbr>以获得的原因,<wbr>从而以一种谦虚谨慎敬畏不妄加猜测的态度来做设计的一种过程, 同时又因为清楚的知道糟糕的设计是多么容易把项目引入复杂性的深<wbr>渊从而始终保持一种警惕审慎以及艰苦卓绝的思考来时刻注视影响设<wbr>计的因素是否发生变化以及时调整设计的过程.</wbr></wbr></wbr></wbr>
一点都不简单.
发表评论
-
Architecture is layered
2004-12-11 11:57 374那天被问道软件架构师需要了解编程语言的细节吗? 呵呵,架构是 ... -
Thinking Everyday
2004-12-11 12:01 4351,编程语言的发展趋势 ... -
糟糕命名集锦
2004-12-11 16:50 5661,公交支线,如375和375 ... -
古代的软件开发 (一)
2005-02-19 16:45 6721,额外的中间层鞋子:人类发明鞋子的意义无论如何评价都不过分, ... -
访问控制 : 语言和平台
2005-03-15 19:27 608程序逻辑上的组织方式(如名称空间,包等)可以和部署时的分发 ... -
Thinking Everyday II
2005-03-17 15:11 6151, 是业务,不是技术,傻瓜 是集成,不是编程 是使用,不 ... -
内容与标准为王:下一代互联网与下一代搜索
2005-07-25 14:53 697第一代互联网混淆了真正的数据和它的表现形式,第一代搜索无法 ... -
个性与定制为王:下一代互联网和下一代门户
2005-07-28 11:28 593看一下现在我与互联网有关的生活:我有两三个常用的Web邮箱 ... -
泛型编程 vs. 面向对象
2005-08-10 14:30 804面向对象:封装(数据抽象)是基础,继承是手段,多态是目的 ... -
函数式编程 vs. 对象式编程
2005-08-10 14:44 646<<我爱我家>>有一集和平摔成了脑 ... -
用手机从ATM取钱
2005-11-21 22:49 690手机的以下两个特性,使它潜在的可能成为统一的支付和信用平 ... -
Web 3.0 : Unified Human-like Interaction
2006-01-14 16:31 696你还在到搜索引擎的主页上去搜索吗?你还登录新闻网站查询最新比赛 ... -
软件生物学
2006-01-14 16:59 644长久以来,软件的建筑学隐喻已经深入人心,可始终无法达到建筑 ... -
广义对象论
2006-01-25 15:31 681前几天本想接着以前的思维中对“3.2 Programming ... -
Thinking Everyday III
2006-03-26 14:17 7821, RAII让我告别了delete,IoC让我告别了ne ... -
简单至及的AOP和IOC
2006-03-26 14:21 654I. AOP的例子 1, Google To ... -
TDD: Tricky Driven Development
2007-05-10 07:07 587命名 测试用例的名字应该描述需求, 不要描述实现. ... -
Thinking Everyday IV
2007-05-15 04:36 5131, 实际上 C# 2.0 已经部 ... -
迭代本质论
2008-02-14 13:58 624新年伊始, 可能你又要制定一些计划了, 实际上, 你的生活在开 ... -
建筑的永恒之道
2004-08-10 18:31 6442,质 这种特质是任 ...
相关推荐
ROS开发者大会2020 Lightning Talk:gazebo升级版Ignition教程介绍
ROS开发者大会2020 Lightning Talk:扫地机器人结合简单机械臂仿真视频
ROS开发者大会2020 Lightning Talk:webots与ROS的结合
ROS开发者大会2020 Lightning Talk:matlab和ROS结合能够干些什么
XML Attack Lightning Talk
在“phaser-lightning-talk”这个项目中,我们看到的是一场关于 Phaser 的“闪电谈话”(Lightning Talk)的代码示例。 闪电谈话通常是一种简短而激烈的演讲形式,演讲者要在短时间内向观众介绍一个主题,通常不...
### iSniff_GPS_Lightning Talk:无线网络嗅探与定位技术详解 #### 概述 在本篇文章中,我们将深入探讨一个名为“iSniff_GPS”的工具,它是一款专门用于无线网络嗅探和位置追踪的技术解决方案。通过该工具,用户...
总的来说,PyTorch Lightning 是一个强大的工具,它增强了PyTorch的可维护性和可扩展性,让开发者可以更专注于模型设计而非底层实现。无论你是初学者还是经验丰富的研究者,PyTorch Lightning 都能帮助你更高效地...
在压缩包文件"electron-lightning-talk-master"中,我们可以预期找到的是这次闪电谈话的源代码、笔记、幻灯片或者其他相关资源。通过研究这些材料,你能够深入了解Electron的实践应用,包括项目的结构、配置文件、...
"Lightning - Procedural Lightning 2.5.2"就是一款专为Unity设计的闪电生成工具,它允许开发者通过程序化的方式创造出逼真的闪电效果,大大提升了游戏或应用的视觉体验。 一、Lightning - Procedural Lightning ...
**标题解析:** "ona15-lightning-talk" 指的是在ONA15(Online News Association的2015年会议)上进行的一场闪电演讲,主题是关于Slack僵尸程序和集成。"Slack" 是一个流行的团队协作工具,而"僵尸程序"通常指的是...
闪电谈话NLTK和自然语言处理这些文件是自然语言工具包的简介。 演示文件:nltk-test.py从requirements.txt安装了所需的库之后,可以运行该文件来演示nltk中的基本文本和标记化方法,包括COLLOCATIONS,CONCORDANCE和...
- **高性能**:PyTorch Lightning 在设计上考虑了性能优化,能够充分利用 GPU 加速,支持分布式训练等多种高级特性。 总的来说,PyTorch Lightning 是一个非常有用的工具,它不仅能够帮助开发者简化深度学习模型的...
**PyData EDA Lightning Talk: 探索数据的利器** PyData EDA Lightning Talk 是一个专注于数据探索与分析(EDA)的快速分享讨论,旨在介绍如何利用Python中的库和工具来提升数据分析的效率和质量。在现代数据分析...
Shapely_PyOhio 这是一个包含ipython笔记本和相关图像的软件包,这些图像描述了为python编写的匀称二维空间数据软件包的功能。 要使此笔记本正常运行,有几个依赖项: 匀称的 有关shapely的更多信息: : ...
ng-lightning 该库包含本机组件和使用 CSS框架从头开始在TypeScript中编写的指令。 我们正在寻找社区帮助,以查找和修复错误,改进演示站点并创建新组件。安装通过npm安装: npm install --save ng-lightning依存...
发电机-es6-闪电 :high_voltage: 使用babel在NPM上为ES6项目制作的...入门# if you have not already installed `yo`npm install -g yonpm install -g generator-es6-lightning 最后,启动生成器: yo es6-lightning
Lightning Terminal(LiT)是基于浏览器的界面,用于管理渠道流动性。 特征 可视化您的渠道和余额 通过服务执行潜艇交换 根据节点的操作模式对通道进行分类 运行单个二进制,集成 , 和守护进程都在同一个 访问Pool...
Python 用户柏林聚会 2015 年 6 月使用 Essentia、Python 和 Sonic Visualiser 提取音频特征Thomas Walther 的闪电演讲 - 目标使用 Sonic Visualiser 探索、使用和选择音频特征提取算法使用 Essentia 和 Python 快速...
implementation 'com.github.ydstar:lightning:1.0.0' } 三,使用方法 具体的使用方法可以参考Demo,以下的是在Application中的调用 TaskDispatcher.init(this); TaskDispatcher dispatcher = TaskDispatcher....