《血酬定律》观后感菜鸟勤问(王志鑫)

近期看了《血酬定律》这本书,从书籍里面我学会了一个很重要的道理。

地球上最伟大的哺乳动物提出了一个问题:恐龙为什么突然灭绝了?我们不必理睬这个复杂问题,只管回答一开始就提出的童话般简单的问题:老虎为什么不长翅膀?参考答案是:老虎自己很想长,也长出来过,但是造化容不下这种打破均衡的厉害东西。已经长出来的,地球无力支撑他们的生存和发展,只好绝了种。能够活下去的,都是比较安分守己的,地球和其他物种撑得住的。

【译者注】在本文中,作者从注释,缩进,代码分组,命名方式等方面,介绍了10个提高代码可读性的技巧,供读者学习和借鉴。以下为译文:

如果你的代码很容易阅读,这也会帮助你调试自己的程序,让工作变得更容易。

代码可读性是计算机编程领域的一个普遍课题,这也是作为开发人员首先要学习的东西。本文将详细介绍几个编写可读代码的最佳实践。

IDE(集成开发环境)在过去的几年里取得了很大的提升,也让你的代码比以前更容易进行注释了。注释会遵循一定的标准,这就允许IDE和其他工具以不同的方式来使用它们。考虑一下这个例子:

在函数定义中添加的注释可以在使用该函数时进行查看,即使是在其他文件中使用该函数也同样可以查看注释。

下面是另一个例子,从第三方库调用函数:

你可能已经知道需要对代码进行缩进,然而,同样值得注意的是,保持缩进样式一致也是很重要的。缩进方式不止一种,下面是两个比较常见的例子。

方式1:

functionfoo(){if($maybe){do_it_now();again();}else{abort_mission();}finalize();}12345678910方式2:

functionfoo(){if($maybe){do_it_now();again();}else{abort_mission();}finalize();}123456789我曾经使用方式2来编写代码,但最近切换到方式1。这只是一个偏好的问题,没有一种风格是“最好”的,不需要每个人都来遵循。实际上,最好的风格是一致的风格。如果你是团队的成员,或者你正在为一个项目编写代码,那么你应该遵循该项目中正在使用的样式。

PEARStyle

functionfoo(){//placedonthenextlineif($maybe){//placedonthesamelinedo_it_now();again();}else{abort_mission();}finalize();}1234567891011另外,请注意,这里使用的是四个空格,而不是使用tab键进行缩进。

对你的代码进行注释是很棒的行为,然而,它可能是过量的,或者是冗余的。来看这个例子:

//getthecountrycode$country_code=get_country_code($_SERVER['REMOTE_ADDR']);//ifcountrycodeisUSif($country_code=='US'){//displaytheforminputforstateechoform_input_state();}1234567当内容很显而易见的时候,进行重复的注释是很没有效率的。

如果你必须对该代码进行注释,那你可以简单地将其合并到一行中:

//displaystateselectionforUSusers$country_code=get_country_code($_SERVER['REMOTE_ADDR']);if($country_code=='US'){echoform_input_state();}123454代码分组通常情况下,某些任务需要几行代码,那么把这些任务放在单独的代码块中是一个好主意,这会让它们之间有一些空间。

这里有一个简化的例子:

//getlistofforums$forums=array();$r=mysql_query("SELECTid,name,descriptionFROMforums");while($d=mysql_fetch_assoc($r)){$forums[]=$d;}//loadthetemplatesload_template('header');load_template('forum_list',$forums);load_template('footer');1234567891011在每个代码块的开头添加注释,视觉上看起来就是分离的代码块了。

PHP有时会犯不遵循一致命名方案的错误:

strpos()vs.str_split()imagetypes()vs.image_type_to_extension()

首先,命名应该有单词边界。有两种比较流行的选择:

camelCase(骆驼拼写法):除了第一个单词,每个单词的第一个字母都大写。underscores(下划线):在单词之间加下划线,例如:mysql_real_escape_string()。

类似于前面提到的缩进方式,命名方式也会有不同的选择。如果现有的项目遵循一定的方案,那么你应该使用它。此外,一些语言倾向于使用一种命名方案。例如,在Java中,大多数代码都使用camelCase方式来命名,而在PHP中,大部分代码都使用underscores命名方式。

当然这些方式也可以混合,一些开发人员倾向于使用underscores方式来处理过程函数和类名,但却使用camelCase方式来对类方法命名:

classFoo_Bar{publicfunctionsomeDummyMethod(){}123因此,没有所谓的“最佳”风格,仅仅是需要一致的风格。

“每一条知识都必须在一个系统中有一个单一的、明确的、权威的表示。”

大多数应用程序(或一般计算机)的目的是使重复的任务自动化,所以这项原则应该在所有代码中体现出来,甚至是web应用程序。同样的代码不应该一次又一次地重复。

例如,大多数web应用程序由许多页面组成,很有可能这些页面包含公共元素,就比如页眉和页脚。然而,将这些页眉和页脚粘贴到每个页面并不是一个好方法。下面是JeffreyWay解释如何在CodeIgniter中创建模板。

$this->load->view('includes/header');$this->load->view($main_content);$this->load->view('includes/footer');1237避免嵌套太深嵌套过多会使代码更难读取和跟踪。

functiondo_stuff(){//...if(is_writable($folder)){if($fp=fopen($file_path,'w')){if($stuff=get_some_stuff()){if(fwrite($fp,$stuff)){//...}else{returnfalse;}}else{123456789101112131415为了便于阅读,通常可以修改代码以减少嵌套级别:

避免编写太长的代码行是一个很好的做法。

从技术上讲,可以在一个文件中编写整个应用程序的代码,但这一定是阅读和维护代码的噩梦。

在我的第一个编程项目中,我有创建“includefiles”的想法,然而还没有完全构建起来。我创建了一个“inc”文件夹,其中有两个文件db.php和functions.php。但随着应用程序的增加,函数文件也变得非常庞大,越来越不可维护。

最好的方法之一是使用框架或模仿文件夹结构。这就是CodeIgniter的样子:

通常,变量应该是描述性的,并且包含一个或多个单词。但是,这并不一定适用于临时变量,它们可以像一个字符一样短。

对于相同类型的临时变量,使用一致的命名是很好的做法。下面是我在代码中使用的一些例子:

THE END
1.公鸡小鸟鸭子山羊哪个不是同类公鸡小鸟鸭子山羊哪个不是同类 公鸡、小鸟、鸭子,属于鸟类,无论其具备不具备飞翔能力,都具有翅膀、羽毛的特征,不过是有的保持飞翔能力,有的飞翔能力退化,转而进化其它身体技能。同时,它们都是卵生动物,胚胎以卵的形式降生,需要成体孵化。这是鸟类的一大特征。山羊http://m.qicaisi.com/bk-2192478.shtml
2.boat改一个字母变成一种动物cold改一个字母变成一种饮料为你推荐 查看更多 将boat改一个字母变成动物名词;用ipkn组成一个颜色.急!3分钟之内的有分! boar 野猪 35623 cap变换一个字母,让他变成一个动物的名词. cat 猫! 24523 PEN,HOW,PEAR怎么改变一个字母变成动物单词 pen---hen母鸡how---cow牛pear---bear熊 19940 ...https://qb.zuoyebang.com/xfe-question/question/f5f8dd00e55cedff5a836fdcb3e3006c.html
3.考研词根(词源)AZ19.astro前缀星星 来源于:star 的颠倒,并外加字母o,起衔接作用,如geo-土地。这个词根也是加个o起衔接作用 20.av-词根 鸟 来自于本意撒 21.aud--=audit听 来自于于aural 听力的而aural 又来自oral 而oral是口头的含义,所以二者是利用反义同源来造词的: ...https://www.jianshu.com/p/9c0043adb5fa
4.[题目]变换一个字母写动物单词.[1]car[2]how[3]pen[4]pear[5...【题目】比一比,再组词。 清(___) 在(___) 牛(___) 进(___) 青(___) 再(___) 午(___) 近(___)【题目】—Do you like pears? ( ) —___. A.Yes, I don’tB.No, I don’tC.No, I do【题目】—What's the weather like in Harbin? ( ) —___ A.It's a big city....https://m.1010jiajiao.com/xxyy/shiti_id_2fc4eb08641ac34526358f9ae4943304
5.英语三年级一定能用到的100个语法知识点,为孩子收藏下。26个字母: 大写一律上两格,上不顶线为准则。 小写有头上两格b d h k l i t;有尾下面两格托g q y p 莫写错。 无头无尾中间格,十三个字母勿漏写a c e m n o r s u v w x z ,还有 f j 占三格。所有字母略右斜,笔顺笔画须记得; ...https://www.meipian.cn/1tp0wyvb
6.每一种动物一生下来的时候命运都是注定了的的翻译是:正在翻译,请...abien agiter avant emploi lotion hiphasce din un seul gete nettnie 在就业化妆水之前很好鼓动仅一hiphasce DIN gete nettnie [translate] aYesterday is not easy to realize. 正在翻译,请等待... [translate] a打水板 Fetches water the board [translate] a每一种动物一生下来的时候命运都是注定了的...http://eyu.zaixian-fanyi.com/fan_yi_8426786
1.人马畜禽CROPROATION:奇特的组合想象一下,一个拥有人类上身和马的下身的生物,在草原上驰骋,那是多么令人震撼的场景。它可以凭借人类的思维进行战略规划,又能利用马的强壮肢体跨越艰难险阻。人马代表着一种力量与智慧的完美结合,是我们对于超越现实界限的幻想。 畜禽,这是我们日常生活中常见的动物类别,包括了鸡、鸭、牛、羊等各种家养动物。它们为...http://m.jingchengwuliu.cn/jinwd/4690.html
2.PEACHMOVERS是什麼字體?眾識社區識字體網Oregon LDO UltraBlack 77.5% 商用须授权 Futura PT Web Demi 77.1% 商用须授权 Tetraktys-SmBd 77.1% 商用须授权 CronosPro-SemiboldCapt 77% 商用须授权 Oregon LDO Extended Black 76.9% 商用须授权 Oregon LDO ExtraBlack 76.7% 商用须授权 ?Pragma ND SCOsF Heavy 76.7% 商用须授权 ?Futura ...https://hant.m.likefont.com/community/111392225/
3.英语谜语大全哪个字母是一个问题? 英语谜语答案:Y(why) 5. what letter is your eye? key:I 哪个字母是你的眼睛? 答案:I(eye) 6. what letter is a vegetable? key:P 哪个字母是一种蔬菜 答案:P(pea)豌豆 7. what stays hot even if put it in a fridge? key:pepper ...https://mip.ruiwen.com/miyu/1514858.html
4.幼儿园小班英语教案(15篇)1、通过多种游戏形式学习字母Y,知道Y,Y,拉链Y; Y for yellow,学习短语:Good night.复习Good morning. 2、引导幼儿读准字母单词的发音,培养对英语活动的热情和兴趣。 活动准备: 字母Y卡片、带有拉链的.衣服、饮料瓶三个(瓶盖涂上黄色颜料)、小扇子(正反面各有太阳和月亮) ...https://www.oh100.com/kaoshi/jiaoan/642086.html
5....水果的英文以i开头的水果单词Imbe -Garcinia livingstonei- 一种非洲山竹 有关于水果的英语单词? 水果类的英文有apple苹果,grape葡萄 ,peach桃 ,pear梨 ,apricot杏等。 1、apple 英[pl]美[p?l] n. 苹果; 苹果公司; 苹果树; [例句]I want an apple. 我想要一个苹果。 https://www.xdyy8.com/juzi/49569.html
6.英文谜语和答案及翻译哪个字母是一个问题? 英语谜语答案:Y(why) 5. what letter is your eye? key:I 哪个字母是你的眼睛? 答案:I(eye) 6. what letter is a vegetable? key:P 哪个字母是一种蔬菜 答案:P(pea)豌豆 7. what stays hot even if put it in a fridge? key:pepper ...https://www.cnfla.com/miyu/772367.html
7.幼儿园小班英语教案15篇一、活动内容:Morning. Good morning 二、活动目标:掌握Morning、Good morning的读音,能正确运用 Good morning. 三、活动准备: 太阳教具一个、动物图片若干、小红花、小五星、美人痣若干。 四、活动过程: 1、打招呼: T:Hello!Hello!I'm your teacher,Mrs wang. ...https://www.fwsir.com/jiaoan/html/jiaoan_20210820212859_1273790.html
8.幼儿园小班英语教案(通用15篇)一、活动内容:字母Y,短语Good night 二、活动目标: 1、通过多种游戏形式学习字母Y,知道Y,Y,拉链Y; Y for yellow,学习短语:Good night.复习Good morning. 2、引导幼儿读准字母单词的发音,培养对英语活动的热情和兴趣。 三、活动准备: 字母Y卡片、带有拉链的衣服、饮料瓶三个(瓶盖涂上黄色颜料)、小扇子(正反...https://www.jy135.com/jiaoan/1093690.html
9.剑桥少儿英语一级口试6篇(全文)还有一种失分情况是考生自我感觉过于良好,以致在口试时只自顾自一地说一大串,忽视了与搭档之间的交流。BEC口试不是看单个考生口语水平,而是看考生之间的合作交流能力,也就是说,只一个人说,说得再好,分也不会很高的。 三、BEC口试的备考技巧和应试策略https://www.99xueshu.com/w/filejxuy2svi.html
10.雅思词汇真经单词共3674个文章浏览阅读9.5w次,点赞63次,收藏155次。雅思词汇真经 / 雅思词汇真经共3674个单词 / 雅思高频词汇 / 雅思听力词汇 / 雅思词汇表 / Vocabulary for IELTS / 学为贵 赢未来 / 英语真经派学习法 一本书精通雅思词汇 / 刘洪波 编著 / 涵盖:雅思必备核心词汇+刘洪波老师原https://blog.csdn.net/xunpic/article/details/127935309
11.www.jxmzxx.com{$woaini}>www.jxmzxx.com{$woaini}521期的时候,场上来了一个长相帅气的男孩。 他的优秀从影片中可见一斑,他履历丰富,是个留学海归。 回国后在一家国有企业中做高管。 学历突出,工作稳定,这不是妥妥的香饽饽? 而且出场的时候,就有不少女嘉宾小小地惊叹了一下。 不出所料,女方留灯环节,大部分女嘉宾都为他爆灯。 http://www.jxmzxx.com/appnews/472005