章节. 编程习惯
 
 
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. linux centos中添加删除修改环境变量,设置java环境变量

    前言 安装完软件必要添加环境变量.指令很少,然而长时间不写就会不自信:我写的对吗?于是百度开始,于是发现又是各有千秋.好吧,好记星不如烂笔头.当然,最重要的是,百度出来的都他妈的是如何添加环境变量,只 ...

  2. MATLAB中绘制质点轨迹动图并保存成GIF

    工作需要在MATLAB中绘制质点轨迹并保存成GIF以便展示. 绘制质点轨迹动图可用comet和comet3命令,使用例子如下: t = 0:.01:2*pi;x = cos(2*t).*(cos(t) ...

  3. H5 canvas的 width、height 与style中宽高的区别

    Canvas 的width height属性 1.当使用width height属性时,显示正常不会被拉伸:如下 <canvas id="mycanvas" width=&q ...

  4. BPM配置故事之案例5-必填与水印文本

    物资申请表改好了,但是没过两天老李又找来了. 老李:这个表格每次都是各个部门发给我们,再由我们采购部来填,太影响效率了,以后要让他们自己填. 小明:那就让他们填呗,他们有权限啊. 老李:可是他们说不会 ...

  5. BPM始终服务于人,落脚于人

    数字经济时代下,云计算.大数据.移动互联已经成为当下企业必须采取的武装力量.随着互联网+.中国制造2025.工业4.0等国家战略的引导与支持,无数的企业在这场数字化浪潮中使尽浑身解数,想要抓住机遇奋力 ...

  6. Android 指纹认证

    安卓指纹认证使用智能手机触摸传感器对用户进行身份验证.Android Marshmallow(棉花糖)提供了一套API,使用户很容易使用触摸传感器.在Android Marshmallow之前访问触摸 ...

  7. myrocks复制中断问题排查

    背景 mysql可以支持多种不同的存储引擎,innodb由于其高效的读写性能,并且支持事务特性,使得它成为mysql存储引擎的代名词,使用非常广泛.随着SSD逐渐普及,硬件存储成本越来越高,面向写优化 ...

  8. Struts2数据校验

    Struts2数据校验 1.常见数据校验方法 表单数据的校验方式: 表单中的数据必须被效验以后才能够被使用,常用的效验方式分为两种: 前台校验:也称之为客户端效验,主要是通过JS编程的方式进行表单数据 ...

  9. 理解Storm并发

    作者:Jack47 PS:如果喜欢我写的文章,欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 注:本文主要内容翻译自understanding-the-parall ...

  10. 从零开始,DIY一个jQuery(3)

    在前两章,为了方便调试,我们写了一个非常简单的 jQuery.fn.init 方法: jQuery.fn.init = function (selector, context, root) { if ...