笔记2:函数
1.短小、还要更短小
    每个函数都一目了然,每个函数灰依序把你带到下一个函数
    if、else、while语句等,其中的代码块应该只有一行,块内调用的函数名称应该较具有说明性
2.只做一件事
    就是看判断能否再拆出一个函数,该函数不仅只是单纯地重新诠释其实现
3.每个函数一个抽象层级(暂时不懂)
    让代码读起来自顶向下的TO起头段落是保持抽象层级协调一致的有效技巧
4.switch语句
    (保留)
5.使用描述性的名称
    长而具有描述性的名称,要比短而令人费解的名称好,长而具有描述性的名称,要比描述性的长注释好。使用某种命名约定,拒函数名称中的多个单词容易阅读,然后使用这些给函数取个能说清其功能的名称
    命名方式要保持一致使用与模块名一脉相承的短语、名词、与动词给函数命名
6.函数参数
    最理想的参数数量是零,其次是一,再次是二,应该尽量避免三。
    输出参数比输入参数还要难以理解
    向函数传入boolean值就表示函数不只做了一件事,
    应该避免输出参数,如果要修改某种状态,就修改所属对象的状态
7.分隔指令与询问
    函数要么做什么事,要么回答什么事,但二者不可兼得
8.使用异常代替返回错误码
    抽离Try/Catch块
    错误处理只做一件事
9.不要重复
10.每个函数、函数中的每个代码块都应该有一个入口、一个出口
11.大师级的程序员把程序当故事来写,而不是程序来写

Clean Code(二):函数的更多相关文章

  1. Clean code 关于注释、函数、命名的感想

    最近在看代码整洁之道(Clean code)这本书,其实看的有点痛苦,因为越看就会越想自己写的代码是什么鬼?一些不知所云的命名,不整洁的代码格式,本想诠释代码的意思却添加了一段段废话,还有那些被强制加 ...

  2. 《Clean Code》 代码简洁之道

    作者介绍 原文作者: Robert C. Martin, Object Mentor公司总裁,面向对象设计.模式.UML.敏捷方法学和极限编程领域的资深顾问,是<敏捷软件开发:原则.模式.与实践 ...

  3. 【笔记】Clean Code(持续更新)

    这个暑假出来实习,第一次体会到在一个团队中开发的体验,与网上的网站看到的大为不同,以前看网上说什么程序员写了屎山代码,写了一堆模糊的注释或者说垃圾代码不写注释. 但在我的实习体验中,代码虽然看起来很多 ...

  4. Writing Clean Code 读后感

    最近花了一些时间看了这本书,书名是 <Writing Clean Code ── Microsoft Techniques for Developing Bug-free C Programs& ...

  5. 说说怎么写clean code

    前两天参加了公司组织的一个培训,主题是“如何写出好的代码” ,刚看到这个主题,第一反应是又不知道是哪个培训机构来忽悠钱的!老大安排了,就去听听呗. 说实在的,课程内容没有什么新鲜的东西,就是讲讲如何发 ...

  6. 小课堂week13 Clean Code Part2

    Clean Code Part2 对象与数据结构 首先让我们进行一个严肃的思考,对象与数据结构的区别在哪里? 如下两段代码分别用数据结构和对象的方法来描述了一个Point. public class ...

  7. 小课堂Week12 Clean Code Part1

    小课堂Week12 Clean Code Part1 今天的主题是函数,让我们看一个函数,找一找其中的"不整洁". 我们也根据这段代码,讨论下对于整洁代码的两个重要原则. publ ...

  8. 《代码整洁之道》(Clean Code)- 读书笔记

    一.关于Bob大叔的Clean Code <代码整洁之道>主要讲述了一系列行之有效的整洁代码操作实践.软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关.这一点,无论是敏捷开发流派 ...

  9. 聊聊clean code

    clean code,顾名思义就是整洁的代码,或者说清晰.漂亮的代码,相信大多数工程师都希望自己能写出这样的代码. 也许这是个千人千面的话题,每个工程师都有自己的理解.比如我,从一个天天被骂代码写得烂 ...

随机推荐

  1. hdu4734F(x)(dp)

    http://acm.hdu.edu.cn/showproblem.php?pid=4734 各种不细心啊  居然算的所有和最大值会小于1024... 第二次做数位DP  不是太熟 #include ...

  2. bzoj1007

    其实吧,就是一个半平面交,而且不用考虑转回来的情况,所以只要极角排序然后用栈即可给的是点斜式,比极角很方便至于完整版的半平面交还没写过,看到再说吧 ..] of longint; v:..] of b ...

  3. phpMyAdmin 'import.php'跨站脚本漏洞

    漏洞版本: phpMyAdmin phpMyAdmin 3.4.9 phpMyAdmin phpMyAdmin 3.4.8 phpMyAdmin phpMyAdmin 3.4.6 phpMyAdmin ...

  4. Javascript 多线程?

    最近在遇到一个问题:HTML页面中的页面无法刷新,只能在底层全部处理完成后才能进行页面刷新.在里面已经采用SetTimeout进行了处理,但是明显没有达到预期的效果. 主要的原因是对SetTimeou ...

  5. mvc 4 Razor (@html.xx)语法大全以及应用

    Razor语法大全  @Html ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction差别 对这 ...

  6. [九度OJ]1137.浮点数加法

    原题链接:http://ac.jobdu.com/problem.php?pid=1137 题目描述: 求2个浮点数相加的和题目中输入输出中出现浮点数都有如下的形式:P1P2...Pi.Q1Q2... ...

  7. ssh,telnet远程AIX以及数据传输问题

    (1)telnet远程 输入:telnet 目标IP 输入用户名,密码 进入远程机器 (2)AIX默认安装ftp,使用ftp传输数据 ftp 目标IP地址 输入用户名,密码(远程服务器的) 或者输入f ...

  8. 组合数学及其应用——格路径与Schroder数

    格路径问题是探讨在如下所示中的一个格点图上,从(0,0)位置到达(p,q)所有可能的情况数.我们称这样的通路为一条格路径. 格点图: · · · · · · · · · · · · · · · · · ...

  9. CentOS的Redis内存分配策略配置

    安装了一主两从节点,启动之后发现有一个警告: 大概是说overcommit_memory设置成了0,在低内存环境下后台保存可能会失败,设置成1重启可解决. 然后,不太懂这个配置的含义,google一把 ...

  10. PHP class_exists 检查类是否已定义

    (PHP 4, PHP 5)  class_exists — 检查类是否已定义 bool class_exists ( string $class_name [, bool $autoload ] ) ...