不是凭着字句,乃是凭着精意。因为那字句是叫人死,精意是叫人活。

《哥林多后书》 3:6

这是一个充满规则的世界。有形的和无形的规则,看得见的和看不见的规则,几乎渗透了这个世界的每一个角落,甚至人内心深处的每个角落。人与人之间相处有规则。不管是孔子的“以德报德,以直报怨”,还是老子的“以德报德,以德报怨”,抑或基督里面的“爱你的仇敌,为逼迫你的人祷告”,无不都在阐述着群居在一起的人,该如何处理人与人之间的“德怨”规则。国有国法,家有家规。不管是国家领土神圣不可侵犯,国家主权神圣不可侵犯,还是男主内,女主外,“男人是女人的头”,夫唱妇随,也无不在彰显着由人组成的团体之间,和团队内部之间的规则。再拓而言之,人外在的沟通工具,语言或文字,也都有他们自己的规则。同样的,软件系统不管是外在的使用,还是内在的开发,几乎每一个过程,也都被规则引导着。

对于程序开发来说,这些规则粗到一门编程语言的语法,一种协议,细到一个框架的配置,一个开发工具的使用等。正是掌握了这些众多的规则,程序员才能完成一个项目,一个系统,才能胜任所在的岗位。常言道,无规矩不成方圆。从这个角度来看,规则是个好东西。然而规则虽然是死的,但人是活的。当死一般的规则为活人所用,结果是死是活,恐怕难以定论。正如钱本来也是个好东西,但到了不同的人手里,却并成不同的样。众所周知,钱可以被人所用,也可以把人带进坟墓。或许,规则到了某些人的手里,并不会把他带进显而易见的坟墓,但也不排除被带进一个被禁锢的笼子里,全身心的被困于其中。这笼子,其实和坟墓又有什么区别呢?对于程序员来说,这规则诸如行业规范,或系统配置等。如果程序员只注重了外在的配置,而不深入配置背后的原理,那么就如套上了枷锁,被别人牵着鼻子走。当深入理解了内部的原理,面对换汤不换药的新技术,即不会轻易随波逐流,也能很快上手。

“命令的总归就是爱(《提摩太前书》1:5)”。父母对小孩子有很多诫命,诸如不要学别人抽烟、喝酒,不要玩火等,其背后真正的动机是出于对孩子的爱。社会有诸多法律,但不管是那此法律,还是彼法律,其起初的本意都在于尽可能的保障每个人,或者每个团体、或机构的权利和义务,能够维持社会的良好秩序。不同的行业里面又有不同的规范,甚至同一个行业里不同的领域也有不同的规范。在软件开发中,更是如此。通讯协议有通讯协议的规范,编写代码有编写代码的规范。“日有日的荣光,月有月的荣光,星有星的荣光;这星和那星的荣光也有分别。(《哥林多前书》 15:41)”不同的协议规范又不一样,不同的编程语言规范也不一样。可不管是这规范,还是那规范,终极最终目的是为了统一规范软件开发这个行业。有了统一的规范,就有了标准,电脑和电脑之间,系统和系统之间,团队和团队之间,程序员和程序员之间都有了共同的语言。有了共同的语言才能更好的对话,交流和沟通,协作。有了良好的对话、交流和沟通,才能便于做好一个项目,开发好一个系统。简而言之,如果说父母对孩子的“命令总归就是爱”,那么软件开发中这诸多的规范,其“总归就是尽力做到统一。”

然而,不要忘了,法律是人制定的,各个行业的标准也是人制定的,软件开发行业自然也不例外。可是,人是有限的,是不完美的,不完美的人制定出的法律也难以做到完美。这如有限加有限,其结果还是有限,不可能因为两个或多个有限相加,就变成无限的。因此,哪怕是再多的人,再权威的组织制定的法律、或规范,也不可能至善至美,毫无破口。爱因斯坦说过,他不相信权威,结果上帝在他身上似乎开了个玩笑,最终他也被人列入权威。

我们不是爱因斯坦,但我们每个人都有怀疑权威的自由和权利。我们也没有爱因斯坦般的天赋,即便对权威有所怀疑,也难以在怀疑权威中最终成为权威,但我们每个人都可以设身处地般,假设自己是制定权威的参与人之一。当我们真若设身处地的去想了,久而久之,明白了权威的来龙去脉,明白了权威的本质,就不会被权威所左右。同样的,作为程序员,如果能时常站在制定行业规范者的角度去思考问题,思考规范的作用,表现形式等,久而久之,你就在死气沉沉的规范里面做出活生生的设计和系统来。不仅如此,甚者,你可以在僵硬的代码里、有机械般的程序世界里享受一个充满快乐的程序人生。

第十诫:在规则中理解精意相关推荐

  1. 对makefile中:单冒号普通规则和::双冒号规则的理解 -转

    原文地址:对makefile中:单冒号普通规则和::双冒号规则的理解 作者:gliethttp luther: /gliethttp/a.c /gliethttp/b.c /gliethttp2/c. ...

  2. firewalld中理解直接规则和富语言

    firewalld 中理解直接规则 firewalld提供了'direct interface" (直接接口), 它允许管理员手动编写的iptables. ip6tables 和ebtabl ...

  3. Spring中的packagesToScan的方式配置hibernate的class文件映射规则的理解

    Spring中的packagesToScan的方式配置hibernate的class文件映射规则的理解            1.持久化实体,使用自动扫描class的形式进行配置时,规则如下 (1)& ...

  4. 站长在线Python精讲:在Python函数中理解形式参数和实际参数

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python函数中理解形式参数和实际参数>.本文的主要内容有:Python中形式参数的概念和特点,Python中实际参数的 ...

  5. 解读“Google十诫”

    解读"Google十诫" (2009-04-22 22:52:10) 转载▼ 标签: it评论 it解读 google 谷歌 google十诫 it 分类: 凡人心语 版权声明:未 ...

  6. 波利亚对教师日常工作的看法:〈教师十诫〉

    本文由何耿旭.陈彦宏翻译,洪志阳校订,原刊于<HPM通讯>.兹将该文略加修饰,转载于此(http://highscope.ch.ntu.edu.tw/wordpress/?p=18386) ...

  7. 十诫诗串词_持续交付的十诫

    十诫诗串词 每个人都希望实现持续交付. 毕竟,好处太大了,不容忽视. 提高交付速度,提高质量,降低成本,使人们有更多时间来投入带来价值的事情,等等. 对于任何决策者而言,这些改进就像音乐. 特别是如果 ...

  8. 程序员父亲的遗产——编程十诫

    我的父亲在和我彻谈编程两个星期之后就去世了. 那个时候我22岁,一个刚刚完成美学学士毕业设计的大四学生.而我的父亲62岁,比大多数我同龄人的父亲都要老.早在60年代,他就已经在田纳西理工大学开始编程了 ...

  9. 程序员父亲的遗产——编程十诫 转载

    我的父亲在和我彻谈编程两个星期之后就去世了. 那个时候我22岁,一个刚刚完成美学学士毕业设计的大四学生.而我的父亲62岁,比大多数我同龄人的父亲都要老.早在60年代,他就已经在田纳西理工大学开始编程了 ...

最新文章

  1. 2020 年度最佳的23个机器学习项目!(附源代码)
  2. 前辈说先学会了这些Python知识点,再谈学习人工智能、机器学习
  3. Makefile for OpenCV
  4. 具体数学第二版第三章习题(2)
  5. P2685 [TJOI2012]桥
  6. php隐藏api,PHP 在 Laravel 中动态隐藏 API 字段
  7. java 集成 v8_J2V8首页、文档和下载 - V8 的 Java 封装版本
  8. MySQL读写分离介绍及搭建
  9. Backbone事件管理——Backbone.Events模块API结构
  10. eclipse-中如何显示工程树形结构
  11. 通过微信查找SAP TCODE代码
  12. plt.show()没有图片
  13. 时间序列之平稳时间序列预测、趋势型序列预测、复合型序列预测
  14. 计算机cpu 显卡的作用是什么,显卡的作用是什么 显卡简介【图文详解】
  15. jQuery和纯js实现addClass、removeClass方法
  16. 条信息流oCPC调研报告
  17. sqlite数据库连接方法
  18. Django框架之视图函数views
  19. Web3 是什么?为何应该关注?
  20. 机器学习3决策树算法模型

热门文章

  1. 大二《web课程设计》网页制作HTML个人主题青春网站(带psd)
  2. 第三章 集合的基本概念和运算 3.2集合的基本运算
  3. 基于java与sqlserver2008的班级信息管理系统源代码,图书管理系统课程设计报告(基于JAVA和SQL.Server).doc...
  4. L2-026. 小字辈
  5. Google 早期三驾马车之 GFS 论文学习与研读
  6. AutoCAD 2007中文版机械设计视频教程
  7. 计算机有哪些应用领域,计算机的应用领域有哪些
  8. 软件测试必备技能:抓包(一)
  9. 功夫是下在平时的 2020.12.20日记
  10. 计算机系统结构的分类方法,计算机系统的分类