前端大本营

HTML5,CSS3,Responsive,资料站
2017 02/22 周三

代码简洁之路

在我们进行项目并进行代码之前,首先我们要了解,作为程序员,应该了解写代码的几个基本问题,

代码简洁

代码简洁换句话说,神在细节之中。我一直推荐代码中的战斗机 5S哲学(参考 代码整洁之道)
  1. 整理(Seiri), 弄清楚项目的目的,想要做什么,怎么做
  2. 整顿(Seiton), 将每段代码都放到它该在的地方。
  3. 清楚(Seiso),将每段代码都做好注释,必要时制作文档
  4. 清洁(SeiKetsu), 制作标准文档,严格执行
  5. 身美(Shitsuke),在实践中贯彻规程,并且要乐于改进。

如何写出简洁的代码?

你可以先要求和问问自己 1. 是否在意你的代码 2. 能否通过所有的测试 3. 尽可能的小,只做一件事 4,.不要重复 5.写出易读的代码

接下来,我们就开始谈谈如何写出简洁的代码

一,有意义的命名

1. 名副其实, 能够体现本意的名称。 2. 避免误导, List, Group完全不同的两个意思。不要混淆 3. 做有意义的区分。Name, NameInfo,就是一个不好的例子 4. 使用读的出来的名称,减少自造词(国人比较苦逼),也可以使用拼音 5. 使用可以搜索的名称,作用在于出问题的时候,便于找到 6. 尽量不使用前缀或后缀 7. 避免思维映射, 避免读者错误的领会你的名称 8. 类名尽量用名词或名词短语,不要使用动词 9. 方法名应当是动词或动词短语,可以使用is, get, set, save等做前缀 10. 给每个概念对应一个词,并使其贯穿始终。 11. 不要使用双关语,即一词多个方法。容易混淆读者 12. 添加适当的语境, 告诉读者此变量属于哪里,也可以使用类 13. 不要添加没有用的语境

二,如何写函数

01. 首先函数要短小, 可能的话,将函数控制在20行以内。 也不要叫一行写的太长。像if, else, while等语句内代码块,我们可以使用函数来代替。减少了缩进层级,更容易理解。 02. 函数应该做一件事, 做好这件事,只做这一件事 03. 没个函数一个抽象层级, 没个函数尽量保持一个层级。 04. 使用描述性的名称。 05. 函数参数,尽可能保持2个参数以下,不得已用3个,4个参数的时候,完全是一场噩梦
  1. △尽量不要使用判断型参数
  2. △给函数起一个好名字,使之便于记忆
06. 分隔指令和询问 07. 使用异常替代返回错误码
  1. △将try/catch代码从主代码中抽离出来,是代码更易于理解和修改
  2. △处理错误就是一件事。
08. 别重复自己,尽量消除代码中的重复,它导致了程序臃肿 09. 以上的内容都属于函数的打磨阶段,没有谁能够一上来就能够按照规则写出代码。我们将代码当作文章一样,反复推敲,打磨才能成为最后简洁的代码

三,注释

先借用原作者的话,“什么也比不上放置良好的注释来的有用,什么也不会比乱七八糟的注释更有本事搞乱一个模块。什么也不会比陈旧,提供错误信息的注释更有破坏性” 代码存在的越久远,就离其所描述的代码越远,越来越变得全然错误,原因很简单,程序员不能坚持维护注释,所以尽可能用代码来代替注释,不过这个很难,所以我们尽量减少注释 01. 注释不能美化糟糕的代码 写注释的常见动机之一就是糟糕的代码的存在, 把注释写好,不如把代码弄干净 02. 用代码阐述,尽量少些注释 03. 写好的注释,不过要记住,唯一真正好的注释是你想办法不去写注释
  1. △法律信息,公司规范等信息注释,完全可以不用写在文件注释内, 转到一个许可或是文档更好
  2. △用注释来提供基本信息
  3. △用注释来说明某个方法的意图
  4. △把难懂的参数或返回值翻译成某种可读形式
  5. △用注释来警示其他程序员
  6. △用注释来放大某些看起来不合理的代码的重要性
  7. △删除注释掉的代码,你很可能永远也不会用他们
  8. △注释不需要太多的信息,简短精悍

四,格式

格式很重要,代码格式不可忽略,必须严肃对待。代码格式关乎沟通,而沟通是专业开发者的头等大事。 01. 垂直格式
  1. △注意垂直方向的区隔,通过区隔来分开两个函数,方法等
  2. △紧密相关的代码需要垂直的靠近,减少中间的注释段
  3. △关系密切的方法函数,尽量放到一个文件内,位置靠近。
  4. △垂直顺序, 将被调用的函数放置在执行函数的后面。建立一个自顶向下贯穿源代码模块的良好信息流
02. 横向格式 程序员们更喜欢短代码(20~60字符)
  1. △在赋值操作符周围加上空格字符,以此达到强调目的。
  2. △不要再函数名和括号之间加空格,函数与其参数密切相关。
  3. △注重运算符优先级,乘除左右不用空格,加减使用
  4. △去掉没有必要的水平对其,它容易使人忽略重点
  5. △利用好缩进,来洞悉文件的结构,代码的结构
  6. △删除没有用的空范围,所谓的空范围就是if, while里面不存在任何内容
03. 制定一套完善的团队代码规则 一组开发者应当认同一种风格的代码,每个成员都应该采用那种风格。

五,对象和数据结构

过程式代码(使用数据结构的代码)便于在不改动既有数据结构的前提下添加新函数。面向对象代码便于在不改动既有函数的前提下添加新类。 得墨忒尔律 认为,模块不应该了解它所操作对象的内部情形。方法不应该调用有任何函数返回的对象的方法。换言之,只跟朋友说话,不与陌生人谈话。

五. 错误处理

代码整洁需要错误处理,错误处理要从主体中分离出去。 尽量减少Null的输出和判断。

六. 类

类可以说是所有面向对象编程的高层次结构,编写代码简洁的类,应该注意什么? 01. 类应该短小
  1. △单一权责原则, 系统应该由许多短小的类而不是少量巨大的类组成。没个小类封装一个权责,只有一个修改的原因,并与少数其他类一起协同达到期望的系统行为。
  2. △内聚,如果一个类中的每一个变量都被每个方法所使用,则该类具有最大的内聚性。
  3. △保持内聚性就会得到许多短小的类
Tags: , ,
Posted in 本站原创 | 代码简洁之路已关闭评论
Ubuntu系统
vim /etc/my.cnf  或是 /etc/mysql/my.cnf 或是 /etc/mysql.conf.d/mysqld.cnf #版本不同位置不一样,请自行确认
在[mysqld]下面添加如下列:
sql_mode    = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
即可永久解决此问题。
更多技术问题,可以访问我的技术论坛
Posted in 精彩内容 | 升级 MySql 5 之后数据库导入时出现 ERROR1067 (42000): Invalid default value for 错误的解决办法已关闭评论