断舍离——《代码整洁之道》读书笔记小蒋不素小蒋

注1:只看了书的前十章注2:原书使用的语言为Java,我改成了JavaScript

代码就是衔接人脑理解需求的含糊性和机器指令的精确性的桥梁。哪怕未来会有对现在高级编程语言的再一次抽象——但这个抽象规范自身仍旧是代码。

所以既然代码会一直存在下去,且自己都干了程序员这一行了,就好好的对待它吧。

糟糕的代码会导致项目的难以维护。而当你正在写糟糕的代码的时候,心里却圣洁的想:“有朝一日再回来整理”。但现实是残酷的,正如勒布朗(LeBlanc)法则:稍后等于永不(Laterequalsnever)

大师级程序员把系统当作故事来讲,而不是当作程序来写。

(×)图表:mapTable

(√)图表:chart

constvar=0;

XYZControllerForEfficientKeepingOfStrings

XYZControllerForEfficientHoldingOfStrings

如果是一个数组类型,就没必要叫ProductArray

如果返回值就是数据,就没必要叫ProductData

(×)

if(team.length===3)(√)

constMAX_NUM_OF_TEAM=3;……if(team.length===MAX_NUM_OF_TEAM)MAX_NUM_OF_TEAM比3好检索

早期流行一种匈牙利语标记法:

如arru8NumberList的前缀"arru8"表示变量是一个无符号8位整型数组;

类名、参数名用名词:

memberleader

方法名用动词:

getTeam

根据Javabean的标准,方法名可以加上getsetis前缀

getfetch选一个,不要混着用

如果你要记录member的详细住址,会设置了如下几个变量:

addrStreetaddrHouseNumberaddrCityaddrState(√)

newAddress{street,houseNumber,city,state}第三章函数尽量短小函数的缩进层级尽量控制在1-3层

例如要依次读取A、B、C三个文件:

functiontest(){readFileA(function(err,data){//todoreadFileB(function(err,data){//todoreadFileC(function(err,data){//todo//……});});});}(√)

functiontest(){try{letre_a=awaitreadFileA();letre_b=awaitreadFileB();letre_c=awaitreadFileC();}catch(err){}}只做一件事判断标准:是否可以再拆出一个函数

functiontest(){//......Session.save();//......}(√)

functiontest(){//......saveSession();//......}functionsaveSession(){Session.save();}每个函数即是一个抽象层,如上面的例子,Session跟test函数不是一个抽象层,所以抽离出来。

长且具有描述性的名字比描述性的长注释好

//取出所有满员的团getSpecialGroup()(√)

getGroupOfFullMember()参数顺序太多记不住怎么办?方法一:体现在函数名上(×)assertEqual(expected,actual)

(√)assertExpectedEqualsActual(expected,actual)

现代IDE已经具有鼠标移在调用函数名上可以浮窗显示形参列表了。

functiongetMember({isNew=false,isActivate=false}){console.log("isNew:"+isNew,",isActivate:"+isActivate)}getMember({isNew:true,isActivate:false})//isNew:true,isActivate:false//不会因为传参的顺序记错而出错getMember({isActivate:false,isNew:true})//isNew:true,isActivate:false//也支持默认参数getMember({})//isNew:false,isActivate:false这里用到了ES6的新特性:解构赋值

letobj={a:1,b:2};let{a,b}=obj; //a=1,b=2方法三:减少参数最理想的参数数量<3,最好不用输入参数。

A、布尔值参数一拆二

(×)getMember(isNew)

(√)getNewMember()getOldMember()

这里的前提是获取新、老会员的方法体代码不一样,不然还是共用在一个方法通过布尔值比较好。

B、二元函数变一元

否则得修改多处地方

(1)每个函数都应该有一个入口和一个出口

关于(只能有一个return语句,在结尾处/尽快return,即有多个return语句)的争论:

《结构化编程》的建议:

functiontest(is){letresult;if(is){result=true;}else{result=false;}returnresult;}《重构》的建议:

(2)循环中尽量避免有break或continue,而且决不能出现goto语句。

就像上文提到的用详尽的函数名代替注释,或者:

//代码过于追求简洁而导致这里要加详细的注释if(smodule.getDependSubsystems().contains(subSysMod.getSubSytem()))//还不如这里做拆分,取易懂的变量名方便理解,就可以不用加注释或者少加ArrayListmoduleDependees=smodule.getDependSubsystems();StringourSubSystem=subSysMod.getSubSystem();if(moduleDependees.contains(ourSubSystem))原因是:注释存在的越久,随着代码的不断迭代,会离代码的距离越来越远,这个时候好的做法是同时维护代码+注释,而注释越多越复杂,维护的成本自然就上升了。

注释不能美化糟糕的代码,尽量去优化代码

(2)对意图的解释

(3)警示

(4)TODO注释

(1)只有自己看得懂

(2)多余的注释

a、不能提供比代码更多的信息

(3)歧义性

(4)循规蹈矩的注释

例如用第三方工具生成的注释,很多都是累赘的废话

(5)日志式、署名式注释

//writebycolin//fix#201bug(√)交给git记录

(6)慎用位置标记

//**********************及时清理不需要的注释(1)越堆越多

(2)导致以后因看不懂而不敢删

(1)从上往下读,从左往右读

(2)源文件在最顶端给出高层次的概念和算法,细节往下逐次展开,直到最底层的函数和细节。

(1)善用空白行:人会更容易将目光聚焦到空白行之后的那一行

(2)函数:调用者放在被调用者上面

(1)缩进

(2)IDE中不会出现横向滚动条

数据结构和对象的区别

数据结构暴露其数据,没有提供有意义的函数。

对象把数据隐藏在抽象之后,暴露操作数据的函数。

(上文有述)

如引用了一个第三方库,它会throw自己的几种异常值,但我们可以定义一个异常类,封装好它的几种异常值为一种专门异常,然后再二次throw交给上层捕获。

null值会造成很多不必要的if判断

functiongetCurrentMember(){leta=DB.getCurrentMember();if(a){returna;}else{returnnull;}}方法一:抛异常

functiongetCurrentMember(){leta=DB.getCurrentMember();if(a){returna;}else{throwError("nomember")}}

THE END
1.英语词汇point怎么读,是什么意思,单词翻译读音固定搭配用法和...释义 point n 1 [C] (often in compounds 常用以构成复合词) sharp or tapered end of sth; tip (物体的)尖端; 尖儿 the point of a pin, knife, pencil, etc 大头针、 刀子、 铅笔等的尖儿 a pin-point, knife-point, pencil point, etc 针尖儿、 刀尖儿、 铅笔尖儿 The stake had been sharpen...http://ec.newdu.com/25950.html
2.point是什么意思point的翻译记忆用法托福例句雅思例句...记忆法 添加记忆法 1.【记】point- 表示点,变尖【威学】 0 0 真题例句 1.Late-lying snow reduces the effective growing season to the point where seedlings cannot establish themselves. (阅读 托福-11) 长时间积雪缩短了有效生长季节的时间,树苗无法生长 2.The iron eventually heats to the point ...https://t.weixue100.com/word/point
3.point是什么意思,point的词根是什么,point怎么记,法语point的中文...point是什么意思,point的词根是什么,point怎么记,法语point的中文翻译,词组,变位,中文释义,法语词典 pniot参数设置: mode: 随机顺序 部分隐藏 词根 style: 书写 拼图point n.m. 观点,句号 包含point 前缀 后缀 任意 例句 point的词组 point 相似:point, ponct, pug(n) 打,击,刺,点 样例...https://fr.tooldog.cn/lang/word/5407
4.point是什么意思point的用法point的单词速记point怎么读point...(用手指或细的物体)指,指向;对准 速记技巧 谐音联想法 拆 谐音:碰点 记 大家一起来碰一碰观点,再引申为要点和指着(某个点)的意思。 ** 知识扩展 短语辨析 point of view观点;见地;立场point out指出,指明at this point这时候,此时此刻point in有意义;在…有作用 精选例句 高考 四级 六级 考研 1、 A lin...http://m.beiyuwangxiao.com/ZhongXueJiaoYu/yw1/jianan/137937.html
5.英语四级单词天天记:pointofview大学英语单词大学英语英语四级单词天天记:point of view,供各位考生参考。 小刚,我在这里啊! 我在这里! point of view 观点;见地;立场查看全部上一篇:英语四级单词天天记:nonuniform 下一篇:英语四级考试必备短语词组(6) 推荐文章 猜你喜欢 附近的人在看 推荐阅读 拓展阅读 ...https://m.yingyu.chazidian.com/show-156808/
6.巧记单词词语点击(turnpointcatchcarry等)英语词汇point 【短语搭配】 point out 指出 point at 指着 point to 指向、说明很可能会(有) 【考题回放】 ( )2. Mr. Wang ___ the danger of doing so. A. came out B. pointed out C. worked out D. gave out catch 【短语搭配】 catch fire 着火 catch hold of 抓住、抓牢 catch sight of 望见 ca...http://www.zhongkao.com/e/20110301/4d6c8baa54eeb.shtml
7.记忆超人英语单词妙记手册(李峻)P24:point可敬的英语学习者:您目前正在学习的英语教程记忆超人英语单词妙记手册(李峻)P-24:point---poll暂时没有对照文本。如果您恰好有该课文本,请帮助我们添加,谢谢!上一篇:记忆超人英语单词妙记手册(李峻)P-23:plummet---poignant 下一篇:记忆超人英语单词妙记手册(李峻)P-25:pollute---pop 本...https://m.tingclass.net/show-6592-107300-1.html
8.理解记忆每日一词‖pinpoint再仔细观察下拼写,易知这个是之前讲过的合成词,由两个熟悉的单词:pin(针;把……钉住)和point(要点,观点,指向,意义)组成。 下面总结下词义: 1.做动词:①准确说出/查明 ;②精准定位 (形容词:准确的,详尽的) 例: A.It’s difficult to pinpoint the cause of the accident. ...https://www.jianshu.com/p/a3fe43393d39
9.point是什么意思point怎么读point英译汉同义词:compass point a linear unit used to measure the size of type; approximately 1/72 inch a punctuation mark (.) placed at the end of a declarative sentence to indicate a full stop or after abbreviations 同义词:period, full stop, stop, full point a V-shaped mark at one end of an...https://www.dancihu.com/yinghan/p/point307073.htm
10.易图记声力英语单词个性化学练系统在线记单词pocket['p?k?t]n. 衣袋 podcast['p?dkɑ?st]n. 播客 poem['p?m]n. 诗,韵文 poet['p?t]n. 诗人 poetic[p'et?k]a. 诗歌的,诗的 poetry['p?tri]n. 诗歌,诗集 point[pnt]v. 指向,指点,瞄准 ...http://www.yituji.cn/word/m/zym.php?class=fou&page=38&factor=all
1.point是什么意思That’s a very interestingpoint..那个观点很有趣。 She made some extremely goodpoints..她提出了一些很不错的观点。 There are three importantpoints we must bear in mind..有三个要点我们必须记住。 This brings me to my nextpoint..这样我就要讲到下一点了。 https://danci.3gifs.com/point/
2.point是什么意思point怎么读中文意思用法point point是什么意思、point怎么读 读音:英[pnt] 美[pnt] point 基本解释 n. 点;要点;得分;标点 vt. (意思上)指向;削尖;加标点于;指路 vi. 表明;指向 point 网络释义 n. 要点;得分;标点;[机] 尖端 vt. 指向;弄尖;加标点于 vi. 表明;指向 n. (Point)人名;(法)普安...https://danci.gjcha.com/point.html
3.points是什麼字體?眾識社區識字體網Helvetica Neue for Target Uni Bold 93% 商用须授权 Helvetica for Target Bold 93% 商用须授权 HelveticaNeue for Target Bold 92.9% 商用须授权 RTGravi-Soft 92.3% 商用须授权 Jio Type Bold 92.2% 商用须授权 NimbusSansNovusDOT-Bol 92% 商用须授权 NimbusSanNovD-Bol 92% 商用须授权 Cabrion...https://hant.m.likefont.com/community/111642881/
4.PPT如何高效记重点笔记(ppt如何记重点笔记)在如今的信息化时代,PPT演示成为了工作中不可或缺的一部分。如何在众多的PPT内容中快速捕捉并记录重点信息,成为了提高工作效率的关键。以下是一些高效记重点笔记的方法: 1. 预览PPT结构 在正式开始记录之前,先快速浏览整个PPT的结构,了解每个幻灯片的主题和大致内容。这样可以在听讲的过程中,对即将出现的信息有一个...https://ppt666.zaixianjisuan.com/question/pptru-he-gao-xiao-ji-zhong-dian-bi-ji.html
5.高考重点英语单词速记,高效学习的秘诀高考重点英语单词速记结合语境记忆单词也是非常有效的方法,单纯地死记硬背单词往往容易遗忘,而在具体的语境中记忆单词则能够加深印象,提高记忆的持久性,我们可以通过阅读英语文章、做英语练习题等方式来创造语境,让单词在实际的语言环境中呈现出来,在阅读一篇关于旅游的文章时,遇到“sightseeing”(观光)、“accommodation”(住宿)等单词,通过理...http://iz.252.gzc.jdzol.com/i9t976/j0r0d03f.html
6.point怎么读英语音标英语的学习一直被认为是非常重要的一门学科,既是学术研究的重要工具,也是国际交流的通用语言。下文中为大家整理了point怎么读英语音标,一起来学习吧。 点英文怎么拼? “点” 的英文有下面哪些:point: 读作 [pnt],可谐音为 “坡奥艾特” spot: 读作 [sp?t],可谐音为 “斯坡奥特” ...https://www.yswxk.com/qa-detail/ce4fbffad72211eea8fdfa163e176f5c
7.干货我们来看TED第二种:子弹式 这种方式非常随性,一次到底,不需要什么格式的限制,最大的特色就是使用bullet point. 记录的时候用bullet point引导一个大的话题,在换行写下平行的小点。 和康奈尔笔记法相比,子弹式笔记的缺点在于没有专门的总结板块,可能不是那么便于复习。 其实大家可以在笔记的最后再写上自己的总结,也可以弥补...https://www.douban.com/group/topic/110328727/?type=like
8.pointto什么意思怎么读?单词用法记忆法发音音标反义词...单词:point to发音、音标、怎么读? point to 音标:['p?int t?] 你的浏览器不支持播放 单词:point to的单词意思解释释义 指向 point to单词用法语法 point to/ point atpoint to 与point at 都有用手指着某人或某物的意思。但后者还可表“对准;瞄准”之意。如:① She pointed to a boy and ...https://english.downyuan.com/index.php?m=home&c=View&a=index&aid=r7012
9.真香预警!科学笔记法让你的学习事半功倍!第二种:埃森哲公司“point sheet” 埃森哲公司是全球最大外资咨询管理公司 他们使用的是一种名为“Point Sheet”的格式 OMG!真的好用 在工作领域团队协作时给我锁定它! 左侧部分记录重点,提取工作的关键点,化整为零 右侧的部分则用来书写基于重点应采取的行动 ...https://www.eurasia.edu/info/1821/16821.htm
10.point是什么意思雅思词汇point用法例句读音音标翻译单词助记鼠标悬停查看成分解释 point 英 [pnt] 考点解读 托福 雅思 剑雅词频:138 核心词 point 常考释义 n.要点;要旨;关键点 变形词 过去式 pointed 过去分词 pointed 现在分词 pointing 第三人称单数 points 复数 points 雅思常考例句 My point is that the task wasn't really suited to team...https://top.zhan.com/cihui/ielts-point.html
11.记忆点英文怎么写记忆点英语怎么说及英语单词沪江词库精选记忆点英文怎么写及英语单词、英语单词怎么写、例句等信息 memory point 相似短语 to the memory of 献给...(作者书前纪念性题词) in memory of 为纪念…,在怀念…时 by memory phr. 凭记性,凭记忆 memory to memory transfer 存储器间转移 cache memory n.[计]高速缓冲存储器 faculty...https://www.hujiang.com/ciku/670522_1441352941/
12.shp文件白皮书shp白皮书Shape 类型为0 表示一个没有几何类据的空的(Null)shape。每个要素类型(point、line、polygon 等等)都支持“空状态”-在同一个shape 文件中“有点”(have point)和“无点”(null point)都是合法的。空shape 经常作为位置标志符来使用,在创建shape 文件时使用它,稍后就会被填充为几何数据。 https://blog.csdn.net/weixin_42727069/article/details/110490684