编程人员需要遵守哪些原则?

27 sec read

程序员拥有一个较好的编程原则能使他的编程能力有大幅的提升,可以使其开发出维护性高、缺陷更少的代码。以下内容梳理自StactOverflow的一个问题:What do you consider the 1st principle(s) of programming?

KISS(Keep It Simple Stupid)

保持简单(避免复杂)永远是你应该做的第一件事,简单的代码不仅写起来简单、不容易出Bug,还易于维护。当然KISS也可以理解为Keep It Simple, Stupid!

参考链接:

有两种软件设计方法,一种是尽可能的简单并保证没有什么缺陷。另外一种方式是尽可能的复杂并保障没有什么缺陷。而第一种方式相比第二种更加困难。

简单规则下,还包括:

  • Don’t Make Me Think:如果一段程序对于阅读者来说需要花费太多的努力才能理解,那它很可能需要进一步简化。
  • 最少意外原则:程序代码应尽可能的不要让阅读者感到意外。也就是说应该遵循编码规范和常见习惯,按照公认的习惯方式进行组织和命名,不符常规的编程动作应该尽可能的避免。

DRY(Don’t Repeat Yourself)

不要重复,编程中的很多方法可以帮助你来消除重复的(比如循环、函数、类),代码的世界里不要复制粘贴。

参考链接:http://en.wikipedia.org/wiki/Don%27t_repeat_yourself

相关规则有:代码复用

YAGNI – You ain’t gonna need it

不要开发你目前用不到的功能, 除非你真正需要用到它。

参考链接:http://en.wikipedia.org/wiki/YAGNI

Code For The Maintainer

为维护者编写程序。比如让代码有自解释的功能。在你编写代码的时候永远记得将来需要维护他。除了你,也有可能是一个有严重暴力倾向的同事。

参考链接:http://wiki.c2.com/?CodeForTheMaintainer

Be as lazy as possible.

尽可能的懒。这一点和上面的KISS类似。

参考链接:http://c2.com/xp/DoTheSimplestThingThatCouldPossiblyWork.html

偷懒还包括:

Programming is only the road, not the way.

编码只是一种实现方式,而不是解决方案。编码只是告诉电脑应该如何去做。要编写高效、可靠的软件需要精通算法、最佳实践等其他与变成相关的内容。

编程前需要先了解你要解决的问题是什么。编程只是手段并不是目的。能实现并不代表需要实现。知道什么时候不需要编程或没有必须要去编程。

If you are in a hurry, stroll along slowly. If you really are in a hurry, make a detour.

如果你很忙,那就放慢速度。如果你真的很忙,那就先放一放。这听起来很愚蠢,但是千万不要让自己陷入会导致后期问题的妥协。如果你正在编写程序的核心部分,尽可能保证精确。如果你在编写离核心代码较远的方法,可以尽可能的加快速度。

Know your path, Neo.

知道你的实现路径,你需要了解你每天使用的环境、工具及其他依赖的内容,并且把它调试到适合自己的配置。如果你的编程环境真的很好,那么你编程中的基本不需要关心他。如果你需要完成一项任务,最好的方式是不要引进“新的内容”,只有当你完全掌握“新的内容”的时候再去考虑引入。

If it wasn’t tested, it is broken.

如果没有经过测试的代码都是不能运行的。

与程序沟通时分辨原因和结果,与人交流时要分辨事实和观点

相关的准则,包括:

  • 最小化耦合关系:代码片段(代码块,函数,类等)应该最小化它对其它代码的依赖。这个目标通过尽可能少的使用共享变量来实现。
  • 最大化内聚性:具有相似功能的代码应该放在同一个代码组件里。
  • 开放/封闭原则 :程序里的实体项(类,模块,函数等)应该对扩展行为开放,对修改行为关闭。换句话说,不要写允许别人修改的类,应该写能让人们扩展的类。
  • 单一职责原则:一个代码组件(例如类或函数)应该只执行单一的预设的任务。
  • 隐藏实现细节:隐藏实现细节能最小化你在修改程序组件时产生的对那些使用这个组件的其它程序模块的影响。
  • 笛米特法则(Law of Demeter)— 程序组件应该只跟它的直系亲属有关系(例如继承类,内包含的对象,通过参数入口传入的对象等。)
打赏作者
微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

PySpider框架简介及安装

PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI。采用Python语言编写,分布式架构,支持多种数据库后端,强大的WebUI支持脚本编辑器,任务监视器,项目管理器以及结果查看器。
1 min read

Windows安装Docker记录

Docker是一种容器技术,可以将应用和环境等进行打包,形成一个独立的、类似于iOS的APP形式的应用。这个应用可以直接分发到任意一个支持Docker的环境中,通过简单的命令即可启动运行。Docker是一种最流行的容器化实现方案,和虚拟化技术类似,它极大的方便 ...
22 sec read

Windows下安装Tesserocr

在爬虫过程中,经常会遇到各种验证码,大多数验证码是图形验证码,先前的文章中有介绍到破解图形验证码的原理。最简单的破击验证码的方式是使用OCR。
1 min read

Leave a Reply

Your email address will not be published. Required fields are marked *