当前位置: 首页 > news >正文

编码规范之美.佛语释道

1、相由心生

“相由心生”源自一个典故:据说唐朝裴度少时贫困后又潦倒。一天,在路上巧遇一行禅师。大师看了裴度的脸相后,发现裴度嘴角纵纹延伸入口,恐怕有饿死的横祸,因而劝勉裴度要努力修善。裴度依教奉行,日遇一行禅师,大师看裴度目光澄澈,脸相完全改变,告诉他以后一定可以贵为宰相。依大师之意,裴度前后脸相有如此不同的变化差别是因为其不断修善、断恶,耕耘心田,相随心转。

世间有相,所以论美丑,代码亦是。好的编码规范给人以赏心悦目,反之则面目可憎,不想再看下去。好的代码如一首诗是高尚者的化身,代码艺术应该就是近乎完美而具有艺术气息,达到艺术审美的高度。而糟糕的代码,就像是一个不修边幅的乞丐,从上至下,从左至右没一处可圈可点之处。相由心生,就需要知美丑。只有知道什么是美什么是丑才知道向美的方向发展,而绝大多数的人在没有认识到这点之前基本上是在向丑的一面发展的。知美丑所以知荣辱,没有完美的代码,那就不要试图保留下糟糕的代码。去恶从美,这是大势所趋。我们不能预期糟糕的事情会不会发生,但求在此之前未雨绸缪。把握自己代码的相,如果是美那就保持继续提高的姿态,如果是丑那就果断抛弃寻求变革。规范的东西看起来有一种整齐美,不要让代码再像杂草一般疯长了,要知道如果没有除草剂杂草是很难抑制的。

美丑皆由心生,大众审美基本上标准是一致的。符合大家的审美才容易被接受,否则即使再高效的代码也是不受人待见的,因为没人愿意花太多的时间去研究一段令人头疼的代码。简单就是美,赏心悦目是美,易于理解是美,见名知意、一览无余是大美。

2、普度众生

制定规范,推行代码制度。谷歌的代码风格本人甚是钦佩,我认为其有三个特点:规范大方、凝练优美、注释得体


大家都知道这不过是一个接口类而已,虽然很详细很简洁,且许多人都是可以做得到的,但是却不能作为代码优美的铁证。一个项目中不能有多种编码风格存在,否者参差不齐的代码会让人头疼不已。甚有人者,不按套路出牌,行走异径,以此称奇。如何普度众生?最好的方法就是行规范之道。

3、众生平等

如何平等,那就是减小代码质量的差距。提出代码检查机制,同事之间宜多多借鉴好的代码,对于有问题的地方可以大胆地质疑,并提出自己更好的解决方法才是代码提高的捷径。找出别人代码中不严密的地方,进行提醒或修正,使引起别人的注意,也使得自己得以提升,减小团队中犯错的几率,避免上司或同事间不必要的指责。

相关文章:

  • 小智慧63
  • 自己写Lucene分词器原理篇——CJKAnalyzer简单讲解
  • 如何建立基于CocoaPods的ReactiveCocoa工程
  • Webservice-XML与Java(五)
  • Java中SimpleDateFormat用法详解
  • Parcelable protocol requires a Parcelable.Creator object called。。。。。
  • MOTOROLA MC40 android系统扫描开发
  • cocos2d-x开启IOS多点触控
  • android友盟注意事项
  • Android编程之Intent源码详解
  • Android编程之LocalBroadcastManager源码详解
  • Android编程之DialogFragment源码详解(一)
  • Android编程之DialogFragment源码详解(二)
  • 在Mac上配置cocos2d-x 3.0,xcode5资源无法刷新的问题
  • 在Mac上配置cocos2d-x 3.0的Android开发环境
  • 【5+】跨webview多页面 触发事件(二)
  • Asm.js的简单介绍
  • Java 最常见的 200+ 面试题:面试必备
  • Javascript设计模式学习之Observer(观察者)模式
  • Java应用性能调优
  • React-生命周期杂记
  • SpringBoot几种定时任务的实现方式
  • V4L2视频输入框架概述
  • Vue UI框架库开发介绍
  • 汉诺塔算法
  • 探索 JS 中的模块化
  • 正则学习笔记
  • 第二十章:异步和文件I/O.(二十三)
  • ​TypeScript都不会用,也敢说会前端?
  • ​第20课 在Android Native开发中加入新的C++类
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • #Linux(权限管理)
  • (70min)字节暑假实习二面(已挂)
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (算法)前K大的和
  • (一)基于IDEA的JAVA基础1
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (转)mysql使用Navicat 导出和导入数据库
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .gitignore文件设置了忽略但不生效
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET MVC第五章、模型绑定获取表单数据
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • @软考考生,这份软考高分攻略你须知道
  • [⑧ADRV902x]: Digital Pre-Distortion (DPD)学习笔记
  • [AutoSar]BSW_Memory_Stack_003 NVM与APP的显式和隐式同步
  • [BZOJ]4817: [Sdoi2017]树点涂色
  • [C#小技巧]如何捕捉上升沿和下降沿
  • [c++] 单例模式 + cyberrt TimingWheel 单例分析
  • [cocos2d-x]关于CC_CALLBACK
  • [CSS]文字旁边的竖线以及布局知识