章节. 编程习惯
 
 
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. 获取 dhcp IP 过程分析 - 每天5分钟玩转 OpenStack(91)

    前面我们已经讨论了 DHCP agent 的配置以及 namespace 如何隔离 dnsmasq 服务,本节将以 cirros-vm1 为例分析获取 DHCP IP 的详细过程. 在创建 insta ...

  2. maven打包插件:appassembler

    1.打包成bat 打包命令:mvn clean package appassembler:assemble <plugin> <groupId>org.codehaus.moj ...

  3. 简约而不简单的Django新手图文教程

    本文面向:有python基础,刚接触web框架的初学者. 环境:windows7   python3.5.1  pycharm专业版  Django 1.10版 pip3 一.Django简介 百度百 ...

  4. 搞了我一下午竟然是web.config少写了一个点

    Safari手机版居然有个这么愚蠢的bug,浪费了我整个下午,使尽浑身解数,国内国外网站搜索解决方案,每一行代码读了又想想了又读如此不知道多少遍,想破脑袋也想不通到底哪里出了问题,结果竟然是web.c ...

  5. CSharpGL(29)初步封装Texture和Framebuffer

    +BIT祝威+悄悄在此留下版了个权的信息说: CSharpGL(29)初步封装Texture和Framebuffer +BIT祝威+悄悄在此留下版了个权的信息说: Texture和Framebuffe ...

  6. ABP框架 - 依赖注入

    文档目录 本节内容: 什么是依赖注入 传统方式的问题 解决方案 构造器注入模式 属性注入模式 依赖注入框架 ABP 依赖注入基础 注册依赖 约定注入 辅助接口 自定义/直接 注册 使用IocManag ...

  7. Java——搭建自己的RESTful API服务器(SpringBoot、Groovy)

    这又是一篇JavaWeb相关的博客,内容涉及: SpringBoot:微框架,提供快速构建服务的功能 SpringMVC:Struts的替代者 MyBatis:数据库操作库 Groovy:能与Java ...

  8. iOS开发中静态库之".framework静态库"的制作及使用篇

    iOS开发中静态库之".framework静态库"的制作及使用篇 .framework静态库支持OC和swift .a静态库如何制作可参照上一篇: iOS开发中静态库之" ...

  9. UML

    UML:1.继承关系用空心三角形+实线来表示2.实现接口用空心三角形+虚线来表示3.关联关系用实线箭头来表示4.依赖关系用虚线箭头来表示5.聚合关系用空心菱形+实线箭头来表示6.组合关系用实心菱形+实 ...

  10. JavaScript权威设计--jQuery,Ajax.animate,SVG(简要学习笔记二十)[完结篇]

    1.$和jquery在全局命名空间中定义的唯一两个变量.   2.jquery是工厂函数,不是构造函数.他返回一个新创建的对象.   3.jquery的四种调用方式:     <1>传递C ...