一切都有一个简单的开始
2008-03-16 17:41
246 查看
现在越来越觉得,似乎一切都有一个简单的开始,而不是我们后来所面对的,复杂、庞大的鲲鹏之背!但是,这种呈现在表面上的复杂,往往掩盖了背后的简单性,让人一时很难理解、掌握,让人很难洞悉出背后的简单,所以一般人遂就偷懒地以为它自初就这么复杂。
但是,就象,机械运动背后的牛顿力学三大定律、电信通讯背后的麦克斯韦方程组、宏观宇宙后面相对论的两条基本假设!我觉得,可能所有复杂的后面,其实都是很简单的概念逻辑,都是由一个简单的开始,但是,后来却发展成为一个幅员辽阔、雄伟辉煌的帝国!
说前面的现象,其实主要是为了自己引出故事,呵呵!
在这里,我主要是反驳普通程序员的一个常见的误解,即“简单就是美”!我们程序设计时,由于受到大牛或大师书籍的影响,经常秉承的一个观点:“认为只要作简单了,我们程序就可以很好”。但,我却认为这种所谓的“简单”,往往是很幼稚的,也是不切实际的。当我们面对纷芜复杂的实体和需求的时候,它要求的功能往往是很多的,我们很难以“简单”的三下五去二,作作一加一等于二等简单的形式,去完全实现它们!而且,一般来说,越简单形式实现,它拥有的功能越少。因为结构决定功能!这种哲学的视角,就更从本质上,决定了形式上、表面上的简单性是无用的,形式上的简单是很难达到的!
当然,我也承认,越简单的东西,越容易被人理解,当简单到极致,简单到不能再简单,那么人,呵呵,更狭隘一点,就是我们可怜的程序员,出错的可能性就很少了。我们将写出无错、无可指责的程序,呵呵,很令人神往吧?!
但是,前边不是说简单是很难达到的么?是不是所谓的“简单就是美”,就是一个虚妄的目标了呢?呵呵,我的答案,很否定的,否定以及确定的否定。就象,我在刚开始就声明的观点,我只是反驳一个误解,并不是反驳“简单就是美”的观点!
但是,为什么这种简单的美,我们却很少能够见到,即使是亲自操刀的的代码,就更不要说由数代的人维护出来代码了!我们常常见到的,总是与模块混乱、逻辑不清、冗余控制、庞大规模代码段,与“丑陋”共生的代码为伍!而且可怜的我们,却不得不,为了生计,每天去“闻”它的臭脚!
我们可以回想、追溯下,我们为什么觉得简单就是美呢?我想,这里面的一个很核心、很重要的心路历程就是:用这么简单的概念、这么简单的假设,就可以铺盖起这么严密、这么辉煌的大厦。这种在,简单性基础上构建起来的伟大,鬼斧神工式的劈里啪啦,让上帝垂青、洞悉最深刻本质的天才,是很令人震撼、心往!!一种的美的享受,就随之而来了,呵呵!
在这里,我将引出我这篇文章的一个核心的看法。
从上面的心理历程,反推来看,“简单就是美”,应该从下面的视角来看,才显得更外合理一点。“简单就是美”,简单的是它的基础,是它最里面的内核,但并不是其向上、向外演化、发展后的结果!!这个简单的基础,可能包括概念、逻辑、假设、流程等,它们往往是简单极致,简单到人不能犯错为止,简单到能够正确地运行;但是,美的产生,却经常是,在这样的简单的基础上,经过“更上层”的设计、组合、过程,或者类比物理世界,就是在一些规律和定理,进行递归、叠加这些简单的基础,构造出一个令人神往的王朝。
这种“简单就是美”,一个例照,就是我们的宇宙,我们也可以想象从很小的原子开始,就“简单地”构造起我们这么庞大的宇宙!我在前面的文章中就有这样的一个说明,我觉得计算机世界实际上是一个仿生、模拟的世界,存在了大量的对现实世界的“照搬”!简单就是美的整个过程反战可能就是如此这般的:)
当然,这种简单的基础,是很难被猜到的,就象现在计算机的体系结构,冯诺伊曼机器结构和Unix操作系统,“一切都是文件”的简单假设,除非你有超绝于世的天才,才能象这些大师们的所做所为。但是,我们却可以通过不断的“重构”的方法,熟悉、摸索出这个简单的基础。
但是,就象,机械运动背后的牛顿力学三大定律、电信通讯背后的麦克斯韦方程组、宏观宇宙后面相对论的两条基本假设!我觉得,可能所有复杂的后面,其实都是很简单的概念逻辑,都是由一个简单的开始,但是,后来却发展成为一个幅员辽阔、雄伟辉煌的帝国!
说前面的现象,其实主要是为了自己引出故事,呵呵!
在这里,我主要是反驳普通程序员的一个常见的误解,即“简单就是美”!我们程序设计时,由于受到大牛或大师书籍的影响,经常秉承的一个观点:“认为只要作简单了,我们程序就可以很好”。但,我却认为这种所谓的“简单”,往往是很幼稚的,也是不切实际的。当我们面对纷芜复杂的实体和需求的时候,它要求的功能往往是很多的,我们很难以“简单”的三下五去二,作作一加一等于二等简单的形式,去完全实现它们!而且,一般来说,越简单形式实现,它拥有的功能越少。因为结构决定功能!这种哲学的视角,就更从本质上,决定了形式上、表面上的简单性是无用的,形式上的简单是很难达到的!
当然,我也承认,越简单的东西,越容易被人理解,当简单到极致,简单到不能再简单,那么人,呵呵,更狭隘一点,就是我们可怜的程序员,出错的可能性就很少了。我们将写出无错、无可指责的程序,呵呵,很令人神往吧?!
但是,前边不是说简单是很难达到的么?是不是所谓的“简单就是美”,就是一个虚妄的目标了呢?呵呵,我的答案,很否定的,否定以及确定的否定。就象,我在刚开始就声明的观点,我只是反驳一个误解,并不是反驳“简单就是美”的观点!
但是,为什么这种简单的美,我们却很少能够见到,即使是亲自操刀的的代码,就更不要说由数代的人维护出来代码了!我们常常见到的,总是与模块混乱、逻辑不清、冗余控制、庞大规模代码段,与“丑陋”共生的代码为伍!而且可怜的我们,却不得不,为了生计,每天去“闻”它的臭脚!
我们可以回想、追溯下,我们为什么觉得简单就是美呢?我想,这里面的一个很核心、很重要的心路历程就是:用这么简单的概念、这么简单的假设,就可以铺盖起这么严密、这么辉煌的大厦。这种在,简单性基础上构建起来的伟大,鬼斧神工式的劈里啪啦,让上帝垂青、洞悉最深刻本质的天才,是很令人震撼、心往!!一种的美的享受,就随之而来了,呵呵!
在这里,我将引出我这篇文章的一个核心的看法。
从上面的心理历程,反推来看,“简单就是美”,应该从下面的视角来看,才显得更外合理一点。“简单就是美”,简单的是它的基础,是它最里面的内核,但并不是其向上、向外演化、发展后的结果!!这个简单的基础,可能包括概念、逻辑、假设、流程等,它们往往是简单极致,简单到人不能犯错为止,简单到能够正确地运行;但是,美的产生,却经常是,在这样的简单的基础上,经过“更上层”的设计、组合、过程,或者类比物理世界,就是在一些规律和定理,进行递归、叠加这些简单的基础,构造出一个令人神往的王朝。
这种“简单就是美”,一个例照,就是我们的宇宙,我们也可以想象从很小的原子开始,就“简单地”构造起我们这么庞大的宇宙!我在前面的文章中就有这样的一个说明,我觉得计算机世界实际上是一个仿生、模拟的世界,存在了大量的对现实世界的“照搬”!简单就是美的整个过程反战可能就是如此这般的:)
当然,这种简单的基础,是很难被猜到的,就象现在计算机的体系结构,冯诺伊曼机器结构和Unix操作系统,“一切都是文件”的简单假设,除非你有超绝于世的天才,才能象这些大师们的所做所为。但是,我们却可以通过不断的“重构”的方法,熟悉、摸索出这个简单的基础。
相关文章推荐
- 我从哪一个开源程序开始我的建站学习的,从最简单、最实用的一个开始
- 从现在开始抛弃一切有碍我们进步的事情,努力打造一个全新的自己
- 自行控制loadrunner的socket协议性能测试 (转) 一前言 二任务的提出 三实现方案讨论 四技术要点讲解 如何开始录制一个最简单的收发数据包脚本 写日志文件 一行一行读数据包文件 字
- 从vue基础开始创建一个简单的增删改查的实例代码(推荐)
- 更抽象还在后头,一切又将是一个开始。我们走到哪了?
- 从头开始学习JSP(1)采用MyEclipse和Tomcat运行一个简单的.jsp程序
- 从明天开始,做一个简单的人
- 深入浅出学习Struts框架(一):一个简单mvc模式代码示例开始
- 一步步开始一个简单裸机编程
- 【内核】:最简单的内核模块编程 -- 一切从这里开始
- C# 创建、部署和调用WebService的简单示例 webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互。 概念性的东西就不说太多,下面开始创建一个简单的webservi
- 只是简单做一个开始
- 深入浅出学习Struts1框架(一):一个简单mvc模式代码示例开始
- jQuery 标记当前函数 开始写一个简单的插件
- 4-《电子入门趣谈》第一章_一切从单片机开始-1.3.1-点亮一个灯
- 从今天开始,做一个简单的自己
- 在浏览器中简单输入一个网址,解密其后发生的一切(http请求的详细过程)
- Vue类重构代码——02 开始:一个简单的类
- [置顶] 【python keras实战】快速开始:训练一个简单的Keras 模型
- 6/27 项目编码开始:一个简单的员工管理程序