第十诫:在规则中理解精意
不是凭着字句,乃是凭着精意。因为那字句是叫人死,精意是叫人活。
《哥林多后书》 3:6
这是一个充满规则的世界。有形的和无形的规则,看得见的和看不见的规则,几乎渗透了这个世界的每一个角落,甚至人内心深处的每个角落。人与人之间相处有规则。不管是孔子的“以德报德,以直报怨”,还是老子的“以德报德,以德报怨”,抑或基督里面的“爱你的仇敌,为逼迫你的人祷告”,无不都在阐述着群居在一起的人,该如何处理人与人之间的“德怨”规则。国有国法,家有家规。不管是国家领土神圣不可侵犯,国家主权神圣不可侵犯,还是男主内,女主外,“男人是女人的头”,夫唱妇随,也无不在彰显着由人组成的团体之间,和团队内部之间的规则。再拓而言之,人外在的沟通工具,语言或文字,也都有他们自己的规则。同样的,软件系统不管是外在的使用,还是内在的开发,几乎每一个过程,也都被规则引导着。
对于程序开发来说,这些规则粗到一门编程语言的语法,一种协议,细到一个框架的配置,一个开发工具的使用等。正是掌握了这些众多的规则,程序员才能完成一个项目,一个系统,才能胜任所在的岗位。常言道,无规矩不成方圆。从这个角度来看,规则是个好东西。然而规则虽然是死的,但人是活的。当死一般的规则为活人所用,结果是死是活,恐怕难以定论。正如钱本来也是个好东西,但到了不同的人手里,却并成不同的样。众所周知,钱可以被人所用,也可以把人带进坟墓。或许,规则到了某些人的手里,并不会把他带进显而易见的坟墓,但也不排除被带进一个被禁锢的笼子里,全身心的被困于其中。这笼子,其实和坟墓又有什么区别呢?对于程序员来说,这规则诸如行业规范,或系统配置等。如果程序员只注重了外在的配置,而不深入配置背后的原理,那么就如套上了枷锁,被别人牵着鼻子走。当深入理解了内部的原理,面对换汤不换药的新技术,即不会轻易随波逐流,也能很快上手。
“命令的总归就是爱(《提摩太前书》1:5)”。父母对小孩子有很多诫命,诸如不要学别人抽烟、喝酒,不要玩火等,其背后真正的动机是出于对孩子的爱。社会有诸多法律,但不管是那此法律,还是彼法律,其起初的本意都在于尽可能的保障每个人,或者每个团体、或机构的权利和义务,能够维持社会的良好秩序。不同的行业里面又有不同的规范,甚至同一个行业里不同的领域也有不同的规范。在软件开发中,更是如此。通讯协议有通讯协议的规范,编写代码有编写代码的规范。“日有日的荣光,月有月的荣光,星有星的荣光;这星和那星的荣光也有分别。(《哥林多前书》 15:41)”不同的协议规范又不一样,不同的编程语言规范也不一样。可不管是这规范,还是那规范,终极最终目的是为了统一规范软件开发这个行业。有了统一的规范,就有了标准,电脑和电脑之间,系统和系统之间,团队和团队之间,程序员和程序员之间都有了共同的语言。有了共同的语言才能更好的对话,交流和沟通,协作。有了良好的对话、交流和沟通,才能便于做好一个项目,开发好一个系统。简而言之,如果说父母对孩子的“命令总归就是爱”,那么软件开发中这诸多的规范,其“总归就是尽力做到统一。”
然而,不要忘了,法律是人制定的,各个行业的标准也是人制定的,软件开发行业自然也不例外。可是,人是有限的,是不完美的,不完美的人制定出的法律也难以做到完美。这如有限加有限,其结果还是有限,不可能因为两个或多个有限相加,就变成无限的。因此,哪怕是再多的人,再权威的组织制定的法律、或规范,也不可能至善至美,毫无破口。爱因斯坦说过,他不相信权威,结果上帝在他身上似乎开了个玩笑,最终他也被人列入权威。
我们不是爱因斯坦,但我们每个人都有怀疑权威的自由和权利。我们也没有爱因斯坦般的天赋,即便对权威有所怀疑,也难以在怀疑权威中最终成为权威,但我们每个人都可以设身处地般,假设自己是制定权威的参与人之一。当我们真若设身处地的去想了,久而久之,明白了权威的来龙去脉,明白了权威的本质,就不会被权威所左右。同样的,作为程序员,如果能时常站在制定行业规范者的角度去思考问题,思考规范的作用,表现形式等,久而久之,你就在死气沉沉的规范里面做出活生生的设计和系统来。不仅如此,甚者,你可以在僵硬的代码里、有机械般的程序世界里享受一个充满快乐的程序人生。
第十诫:在规则中理解精意相关推荐
- 对makefile中:单冒号普通规则和::双冒号规则的理解 -转
原文地址:对makefile中:单冒号普通规则和::双冒号规则的理解 作者:gliethttp luther: /gliethttp/a.c /gliethttp/b.c /gliethttp2/c. ...
- firewalld中理解直接规则和富语言
firewalld 中理解直接规则 firewalld提供了'direct interface" (直接接口), 它允许管理员手动编写的iptables. ip6tables 和ebtabl ...
- Spring中的packagesToScan的方式配置hibernate的class文件映射规则的理解
Spring中的packagesToScan的方式配置hibernate的class文件映射规则的理解 1.持久化实体,使用自动扫描class的形式进行配置时,规则如下 (1)& ...
- 站长在线Python精讲:在Python函数中理解形式参数和实际参数
欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python函数中理解形式参数和实际参数>.本文的主要内容有:Python中形式参数的概念和特点,Python中实际参数的 ...
- 解读“Google十诫”
解读"Google十诫" (2009-04-22 22:52:10) 转载▼ 标签: it评论 it解读 google 谷歌 google十诫 it 分类: 凡人心语 版权声明:未 ...
- 波利亚对教师日常工作的看法:〈教师十诫〉
本文由何耿旭.陈彦宏翻译,洪志阳校订,原刊于<HPM通讯>.兹将该文略加修饰,转载于此(http://highscope.ch.ntu.edu.tw/wordpress/?p=18386) ...
- 十诫诗串词_持续交付的十诫
十诫诗串词 每个人都希望实现持续交付. 毕竟,好处太大了,不容忽视. 提高交付速度,提高质量,降低成本,使人们有更多时间来投入带来价值的事情,等等. 对于任何决策者而言,这些改进就像音乐. 特别是如果 ...
- 程序员父亲的遗产——编程十诫
我的父亲在和我彻谈编程两个星期之后就去世了. 那个时候我22岁,一个刚刚完成美学学士毕业设计的大四学生.而我的父亲62岁,比大多数我同龄人的父亲都要老.早在60年代,他就已经在田纳西理工大学开始编程了 ...
- 程序员父亲的遗产——编程十诫 转载
我的父亲在和我彻谈编程两个星期之后就去世了. 那个时候我22岁,一个刚刚完成美学学士毕业设计的大四学生.而我的父亲62岁,比大多数我同龄人的父亲都要老.早在60年代,他就已经在田纳西理工大学开始编程了 ...
最新文章
- 2020 年度最佳的23个机器学习项目!(附源代码)
- 前辈说先学会了这些Python知识点,再谈学习人工智能、机器学习
- Makefile for OpenCV
- 具体数学第二版第三章习题(2)
- P2685 [TJOI2012]桥
- php隐藏api,PHP 在 Laravel 中动态隐藏 API 字段
- java 集成 v8_J2V8首页、文档和下载 - V8 的 Java 封装版本
- MySQL读写分离介绍及搭建
- Backbone事件管理——Backbone.Events模块API结构
- eclipse-中如何显示工程树形结构
- 通过微信查找SAP TCODE代码
- plt.show()没有图片
- 时间序列之平稳时间序列预测、趋势型序列预测、复合型序列预测
- 计算机cpu 显卡的作用是什么,显卡的作用是什么 显卡简介【图文详解】
- jQuery和纯js实现addClass、removeClass方法
- 条信息流oCPC调研报告
- sqlite数据库连接方法
- Django框架之视图函数views
- Web3 是什么?为何应该关注?
- 机器学习3决策树算法模型
热门文章
- 大二《web课程设计》网页制作HTML个人主题青春网站(带psd)
- 第三章 集合的基本概念和运算 3.2集合的基本运算
- 基于java与sqlserver2008的班级信息管理系统源代码,图书管理系统课程设计报告(基于JAVA和SQL.Server).doc...
- L2-026. 小字辈
- Google 早期三驾马车之 GFS 论文学习与研读
- AutoCAD 2007中文版机械设计视频教程
- 计算机有哪些应用领域,计算机的应用领域有哪些
- 软件测试必备技能:抓包(一)
- 功夫是下在平时的 2020.12.20日记
- 计算机系统结构的分类方法,计算机系统的分类