章节. 编程习惯
 
 
why 函数<<为了>>便于提升软件开发效率和维护效率)
开发角度:
1)隐藏实现细节,这也是API质量最重要的品质
2)复用:通过使用函数来代码复用,提高了软件开发效率
3)可维护性:软件更易维护:函数内的代码修改,能够一次改动<<从而>>多处地方自动改动,便于根据需求改动功能或改变算法来提高效率。

4)可读性&可维护性(如果函数可读性差,则会导致因为代码理解困难,进而影响到了可维护性):代码可读性提高:良好命名的函数能通过函数名了解该代码块的功能职责,比起代码块显而易见这样更容易理解。由于这个原因,有时只有一次使用的代码块也应该写成函数。

客户角度:
1)性能:提升程序运行效率。如果函数所包含的代码块体积比较大时也提升了软件运行效率,如果代码块体积比较小智能的编译器也会根据情况选择是否内联。

how 函数:

1)。1)保证传入的参数正确,确保能应对垃圾输入&非法输入。根据情况处理,比如可以抛出异常。
     。2)并写明pre,post。
 

2)。1)如果函数有返回值,确认每条分支都有返回值

     。2)保证post可控
 
3)。1)对类数据成员是否修改
     。2)函数中调用了哪些函数use
      
4)让函数功能单一。比如根据输入执行操作返回输出,这时一般不应再修改输入or执行其他功能。
 
why 类的访问控制,来确定边界(《c++编程思想》p139)
1)可维护:将具体实现接口分离开。这样更易维护,不需要修改客户代码,只需在该类中改动。(《API Design for C++》:那些最有可能修改的部分,不应作为客户端的api
2)安全:防止客户端程序员错把内部数据当接口,隐藏实现细节
3)可读性:类的客户程序员可以一目了然地知道哪些是接口可以用,哪些不可以用
 
which API质量:
.)复用性&可维护性(隐藏实现)&可读性&性能
.)信息隐藏&一致性&低耦合(《api design for c++》p32)
..........
 
how阅读代码:
 .)一般顺序:类,类的对外接口方法,方法
 
.)先直观了解软件的各个功能:
1)有哪些类类之间的相互关系,类之间的数据是如何传递的
2)类有哪些public方法
3)每个类的内部实现,包括数据成员和私有函数,以及函数间的调用关系
4)函数或者方法,功能,pre,post,use哪些function
 
.)部分算法函数阅读,特别是循环
先搞清楚执行了几次循环,循环内的自变量是什么,因变量是什么,不变量是什么
..........
 
 
 
以上,版权归作者所有,任何形式转载请联系作者。
--------------------------------------------------------------------------
再发两张截屏的jpg版本:
 
 
 --------------------------------------------------------------------------
备注:这里的内容全部都是我的原创,本文的版权归EverSteins所有,转载请联系作者授权,抄袭必究。
 

enote笔记法使用范例(1)——自己总结的一些编写代码的常识 (a)的更多相关文章

  1. enote笔记法使用范例(2)——指针(1)智能指针

    要知道什么是智能指针,首先了解什么称为 “资源分配即初始化” what RAII:RAII—Resource Acquisition Is Initialization,即“资源分配即初始化” 在&l ...

  2. enote笔记法的思考(ver0.2)

    章节:enote笔记法的思考   enote笔记法,它是一种独特的文本标记方式与呈现方式.这一整套系统的记笔记的方法,它能够帮助我们对文本内容(例如,其中的概念.观点.思想等)更加直观和条理地进行理性 ...

  3. enote笔记法的思考

    章节:enote笔记法的思考   why enote笔记法: key1)大脑喜欢颜色. 我们的大脑天生就喜欢颜色.对颜色很敏感,这是由我们人类过去的演化历程决定的. 你可以理解为,文字有了颜色,让这个 ...

  4. enote笔记法(2)——why的使用

    章节:why的使用 用法: why 概念|词汇(比概念更一般的形式的keyword)|短语|句子 用法1: why 概念|why keyword([比概念更一般的形式的keyword]) “why 概 ...

  5. 番茄工作法和Bullet Journal笔记法

    番茄工作法是一套时间管理方法,Bullet journal是一套笔记记录的方法,最近通过学习这2个方法来管理自己的时间,让自己战胜拖延症. 番茄工作法 番茄工作法的整体思路就是将时间分割成一个个小时间 ...

  6. Tips 14:思维导图读书笔记法

    Tips 14:思维导图读书笔记法作读书笔记不仅能提高阅读书.文的效率,而且能提高科学研究和写作能力.读书笔记一般分为摘录.提纲.批注.心得几种,这里特别推荐思维导图式的读书笔记. 通过思维导图先大概 ...

  7. less 经典范例 bootstrap 的 less 版本 常用 less 代码

    1. bootstrap 的 less 版本 2.less 文件分布 /*! * Bootstrap v3.3.7 (http://getbootstrap.com) * Copyright 2011 ...

  8. 电子笔记本的思考(1)(ver0.3)

    章节:电子笔记本的思考(1)   陶哲轩在<解题·成长·快乐——陶哲轩教你学数学>中着重强调,用纸笔来“缓存”思维对于数学解题的重要性: 用选定的符号表达你所知道的信息,并画一个示意图.把 ...

  9. 【原创精品】程序员最强大的利器——电子笔记本的思考(1)(ver0.3)

    [原创精品]程序员最强大的利器,本文以下内容全都是作者EverStenis(胡佳吉)的原创,未经授权不得转载,抄袭必究. 我想问大家一个问题,对于我们程序员来说,在我们的武器工具库中,最强大的一件利器 ...

随机推荐

  1. 【用户交互】APP没有退出前台但改变系统属性如何实时更新UI?监听系统广播,让用户交互更舒心~

    前日,一小伙伴问我一个问题,说它解决了半天都没解决这个问题,截图如下: 大概楼主理解如下: 如果在应用中有一个判断wifi的开关和一个当前音量大小的seekbar以及一个获取当前电量多少的按钮,想知道 ...

  2. 【云知道】LoadRunner 录制问题集锦

    关键词:各路录制小白汇集于此 虽然知道君对录制不感冒,但总是看到扎堆的人说这些问题,忍不住要站出来了. 百度虽好,帮助了很多小白,但关键是百度并没有排除错误内容,经过历史的几年传播,错的都快变对的了, ...

  3. 代码的坏味道(16)——纯稚的数据类(Data Class)

    坏味道--纯稚的数据类(Data Class) 特征 纯稚的数据类(Data Class) 指的是只包含字段和访问它们的getter和setter函数的类.这些仅仅是供其他类使用的数据容器.这些类不包 ...

  4. H3 BPM让天下没有难用的流程之功能介绍

    H3 BPM10.0功能地图如下:  图:H3 BPM 功能地图 一.流程引擎 H3  BPM 流程引擎遵循WFMC 标准的工作流引擎技术,设计可运行的流程和表单,实现工作任务在人与人.人与系统.系统 ...

  5. 拦截UIViewController的popViewController事件

    实现拦截UIViewController的pop操作有两种方式: 自定义实现返回按钮,即设置UIBarButtonItem来实现自定义的返回操作. 创建UINavigatonController的Ca ...

  6. IIS8 使用FastCGI配置PHP环境支持 过程详解

    平时帮朋友们配置过一些PHP环境的服务器,但是一直使用的都是Apache HTTP+PHP,今天呢,我吧IIS+PHP配置方式给大家发一下下~呵呵. 在这里,我使用的是FastCGI模块映射的方式配置 ...

  7. CentOS 6.3下 安装 Mono 3.2 和Jexus 5.4

    最新更新参看: Centos 7.0 安装Mono 3.4 和 Jexus 5.6 2012年初写过一篇<32和64位的CentOS 6.0下 安装 Mono 2.10.8 和Jexus 5.0 ...

  8. Android(4)—Mono For Android 第一个App应用程序

    0.前言 年前就计划着写这篇博客,总结一下自己做的第一个App,却一直被新项目所累,今天抽空把它写完,记录并回顾一下相关知识点,也为刚学习Mono的同学提供佐证->C#也是开发Android的! ...

  9. Lesson 21 Mad or not?

    Text Aeroplanes are slowly driving me mad. I live near an airport and passing planes can be heard ni ...

  10. ABP框架 - 模块系统

    文档目录 本节内容: 简介 模块定义 生命周期方法 PreInitialize(预初始化) Initialize(初始化) PostInitialize(提交初始化) Shutdown(关闭) 模块依 ...