文档章节

clean code

kaixin651
 kaixin651
发布于 2016/02/28 21:47
字数 723
阅读 42
收藏 0
点赞 1
评论 0

        我最近正在阅读肯特.贝克的《implementation patterns》的序言。他说:“、、、这本书是建立在一个非常易碎的前提下:好的代码、、、”。一个易碎的地基?我不同意。我认为那个地基是健壮的、被支持的、满载着我技艺中的地基的(我认为肯特也知道)。我认为好的代码很重要,因为过去我们已经因为好的代码的缺少花费了那么多时间。

        我知道一个公司,在80年代,写了一个“杀手级”应用。它非常流行,许多专业人士购买和使用它。但接下来应用发行周期开始变长。bug从上个版本遗留到下个版本。加载时间变长,崩溃次数增多。我记得那一天,我沮丧地关闭了那个应用,并从未再使用过它。很短的一段时间后,那家公司也停业了。

        20年后我遇到了那家公司的前雇员,并问他到底发生了什么。回答证实了我的担心。他们匆忙的把产品推向市场,但是在代码上是一团糟糕。当他们增加越来越多的功能时,代码变得越来越糟糕以至无法再管理。这就是坏的代码,可以把一个公司拖垮。

        你以前被坏的代码妨碍过吗?如果你是一个有些经验的的程序员,那么你应该遇到过几次这种妨碍。事实上,我们给他取了个名字,我们叫他“跋涉”。我们跋涉在坏代码的水中。我们在充满荆棘和隐藏的陷阱的沼泽艰难前行。我们努力寻找以后的道路,希望通过一些提示,一些线索。但是我们所看到的是越来越多的无意识的代码。

        显而易见,你曾经被坏的代码妨碍过。那么,你为什么要写它呢?

        你正在走的更快吗?你正在匆忙前行吗?也许是。也许你也曾经感觉到自己没有时间来做个好的工作。你的老板也许会对你在整洁代码上花时间而恼火。也许你仅仅是对这个软件已经厌倦了,想尽快完结它。或者你看到这些积压的许诺的要完成的工作,意识到必须尽快完成这个模块以便进行下一个。我们曾经也都这样做过。

        我们曾经看着我们写的一团糟的代码,选择放在那一些天。我们也曾经感到欣慰,看着那一团糟的代码,因为一团糟总比没有好。我们总是说,以后会再整理它们的。当然,那时,我们并不知道勒布朗的名言:“以后等于永远”。

© 著作权归作者所有

共有 人打赏支持
kaixin651

kaixin651

粉丝 2
博文 18
码字总数 3305
作品 0
广州
后端工程师
php中这种绕过表单验证的办法是如何实现的

下面这段代码,是表单验证的。 //判断是否提交了 if ($_GET['action'] == 'register') { //为了防止恶意注册,跨站攻击 if (!($POST['yzm'] == $SESSION['code'])) { alertback('验证码不正确...

ziluopao
2015/11/04
510
3
Maven 生命周期阶段及插件

Mave生命周期和插件 在项目里用了快一年的maven了,最近突然发现maven项目在eclipse中build时非常慢,因为经常用clean install命令来build项目,也没有管那么多,但最近实在受不了乌龟一样的...

逝去的回忆
2016/10/09
33
0
Why Do Programmers Fail to Write Good Unit Tests?

We programmers are full of opinions when it comes to unit testing. We don't always agree about the importance of unit testing or what role it should play. There is also a lot of......

Leah Grantz
2017/12/27
0
0
baomidou/mybatisplus-maven-plugin

#mybatisplus-maven-plugin #####一、简介 mybatis-plus 代码生成工具的 maven 插件版本 #####二、使用方法 在项目的pom文件中配置以下内容 false...

baomidou
2016/10/10
0
0
Preventing XSS with JSOUP

JSOUP is XSS prevention tool. Jsoup can detect xss script in html and url also. Now i am giving example with url. Jsoup can validate the url with the help of "isValidate()" meth......

凯文加内特
2015/08/10
0
0
ios自动打包脚本,融合xctool、xcodebuild、xcrun

在少数需求下,需要能够自动打包,将app发布到不同的平台,那么下面给出本人使用的自动打包脚本: # 以下内容到分割线是,需要针对每个项目进行配置的部分 buildDay=$(date +%Y%m%d) buildTi...

HillYoung
2016/01/15
1K
2
Error:Execution failed for task ':app:clean'.

Android Studio升级到了2.0 Gradle也升级到2.1,导入Android Studio1.3 ,Gradle1.2.3 的老项目编译时出这个错 Error:Execution failed for task ':app:clean'. > Unable to delete directo......

yaly
2016/04/14
837
0
maven lifecycle

Maven 3.x 自定义了很多的 开发需要用到的lifeCycle ,下面列举了常用的一些 lifecycle,涵盖了大部分的应用了 validate - validate the project is correct and all necessary information i...

jicui
2012/09/16
0
0
Clean Code第一章:整洁代码 --阅读与讨论

这一章,我觉得主要写的是四个方面: 1, 整洁代码(Clean Code)的动机 2, 整洁代码也是态度问题 3, 整洁代码的标准 4, 简略介绍了怎样才能写出整洁的代码。 一, 整洁代码(Clean Code)的...

徐朝_尼克徐
2016/11/05
0
0
Apache Maven --- [构建生命周期]

构建生命周期基础 Maven基于构建生命周期的核心概念.这意味着一个特定工件(项目)的构建和分布过程是明确定义的.我们只需要学习一些必要的命令集合就可以构建项目,而POM将会保证我们得到我们想...

moonsnake777
2016/05/20
19
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

微信小程序Java登录流程(ssm实现具体功能和加解密隐私信息问题解决方案)

文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源。 一、登录流程图 二、小程序客户端 doLogin:function(callback = () =>{}){let ...

公众号_好好学java
15分钟前
0
0
流利阅读笔记28-20180717待学习

“我不干了!” 英国脱欧大臣递交辞呈 雪梨 2018-07-17 1.今日导读 7 月 6 日,英国政府高官齐聚英国首相的官方乡间别墅——契克斯庄园,讨论起草了一份关于英国政府脱欧立场的白皮书。可是没...

aibinxiao
45分钟前
4
0
OSChina 周二乱弹 —— 理解超算排名这个事,竟然超出了很多人的智商

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @-冰冰棒- :分享Ed Sheeran/Beyoncé的单曲《Perfect Duet (with Beyoncé)》 《Perfect Duet (with Beyoncé)》- Ed Sheeran/Beyoncé 手机...

小小编辑
55分钟前
33
5
Android 获取各大音乐平台的真实下载地址

废话 电脑使用谷歌浏览器或者QQ浏览器的时候。。。。。。。说不清楚,还是看图吧 大概意思就是,只要网页上需要播放,只要能播放并且开始播放,这个过程就肯定会请求到相关的音乐资源,然后就...

她叫我小渝
今天
0
0
shell中的函数、shell中的数组、告警系统需求分析

shell中的函数 格式: 格式: function f_name() { command } 函数必须要放在最前面 示例1(用来打印参数) 示例2(用于定义加法) 示例3(用于显示IP) shell中的数组 shell中的数组1 定义数...

Zhouliang6
今天
2
0
用 Scikit-Learn 和 Pandas 学习线性回归

      对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题     没有...

wangxuwei
今天
1
0
MAC安装MAVEN

一:下载maven压缩包(Zip或tar可选),解压压缩包 二:打开终端输入:vim ~/.bash_profile(如果找不到该文件新建一个:touch ./bash_profile) 三:输入i 四:输入maven环境变量配置 MAVEN_HO...

WALK_MAN
今天
0
0
33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作

10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作 10.19 iptables规则备份和恢复: ~1. 保存和备份iptables规则 ~2...

王鑫linux
今天
2
0
大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
今天
1
1
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部