代码质量优化
LL596214569
一个有点强迫症的编程学习者。
展开
-
C++函数指针在回调函数中的使用
一、函数指针的定义函数指针是指向函数的指针变量。 因此“函数指针”本身首先应是指针变量,只不过该指针指向的是函数,其实与用指针指向变量一样。在代码编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向这个函数地址的指针变量后,可用该指针变量找到函数的地址进而调用函数。代码实例:需要注意的数定义函数指针时的括号不可以省略,例如://pfadd 是一个指向函...原创 2020-04-21 20:47:26 · 1062 阅读 · 0 评论 -
性能测试工具VTune的功能和用法介绍
原文地址:https://blog.csdn.net/WY_stutdy/article/details/791065011.VTune介绍VTune可视化性能分析器(Intel VTune Performance Analyzer)是一个用于分析和优化程序性能的工具,作为Intel为开发者提供的专门针对寻找软硬件性能瓶颈的一款分析工具,它能确定程序的热点(hotspot),找...转载 2019-07-19 17:03:06 · 1025 阅读 · 0 评论 -
《重构——改善既有代码的设计》读书笔记(八)
大型重构:①建立正确而清晰的继承体系要建立合适的继承体系,包括但不仅限于在合理的抽象处使用继承,为每次继承建立有意义的子类等等②过程化转为对象化设计面向过程的编程相比面向对象更为繁琐也更容易出问题③逻辑与界面分离④精炼每一部分每一部分是指类、函数、变量等,每一个小部分都只负责做一件事 全书总结:如果你发现当前程序的某一部分代码令人难以理解以及难以有所发展和改...原创 2018-12-18 21:12:15 · 435 阅读 · 0 评论 -
《重构——改善既有代码的设计》读书笔记(七)
一、简化函数调用首先是一些优化函数的原则:①函数名、参数名要能表达出其所代表的作用;②函数的参数个数应尽量的少;③对函数的参数表明是否值可变(const);④修改值与查询值的操作应当分开;⑤函数内的一切应对外不可见;简化函数的方法:1. 为函数取一个正确的名字;函数名一定要能表达出这个函数的功能,因为之前就一直在提“一个函数应该只做一件事”,如果这一条能尽可能的...原创 2018-12-16 12:31:06 · 247 阅读 · 0 评论 -
《重构——改善既有代码的设计》读书笔记(六)
一、重新组织数据1.数据封装:例如使用某个数据集,应该添加为其加入和删除元素的函数,而不是直接对数据集进行修改2.当有一个数据项与其他数据一起使用才能体现其意义时,用对象来取代数据值;3.正确区分使用值对象与引用对象;4.数组容纳的内容并非是一系列相似的值时,5.以对象取代数组;6.复制被监视数据7.两个类都需要使用彼此的特性,考虑使用反向指针实现双向关联8.两个类...原创 2018-12-15 19:57:32 · 296 阅读 · 0 评论 -
《重构——改善既有代码的设计》读书笔记(五)
一、明确一个对象的作用1.不同类之间函数的耦合一个类A的某个函数在另一个类B中常被调用而自己几乎不用,那么这个函数就该被转移到另一个类B中;或是将类似的功能代码转移到另一个类B中,只是将A上的原本调用这些代码的函数改为一个委托函数。这种情况我在实际中遇到的多是在某个类中声明了一个静态函数,然而这个类本身对这个静态函数可能不用或是用的很少,只不过这个类的作者在写这个类的时候顺手加在了这个类中...原创 2018-12-15 12:01:12 · 697 阅读 · 0 评论 -
《重构——改善既有代码的设计》读书笔记(四)
重构之函数部分1.提炼函数。对于过长的、需要添加注释的、同样的代码被多次调用的,这种代码都应该被整理成为一个单独的函数。函数不怕多,只怕功能混乱,尽量将每一个功能都提炼为一个单独的函数并通过名字以及注释表达清楚其作用。2.处理局部变量。局部变量的处理主要有三种,第一种是作为存值的局部变量,这种局部变量应观察其赋值的代码段是否可以被单独提炼为函数,然后以函数的返回值来替换局部变量...原创 2018-12-13 21:07:40 · 252 阅读 · 0 评论 -
教你彻底学会动态规划——入门篇
原文地址: https://blog.csdn.net/baidu_28312631/article/details/47418773#commentBox动态规划相信大家都知道,动态规划算法也是新手在刚接触算法设计时很苦恼的问题,有时候觉得难以理解,但是真正理解之后,就会觉得动态规划其实并没有想象中那么难。网上也有很多关于讲解动态规划的文章,大多都是叙述概念,讲解原理,让人觉得晦涩难懂,...转载 2018-12-13 18:59:22 · 613 阅读 · 0 评论 -
《重构——改善既有代码的设计》读书笔记(一)
重构——在不改变软件可观察行为的前提下,改善其内部结构。1. 如果发现你需要为程序添加一个特性,而代码结构使你无法很方便的达成目的,那就先重构那个程序,使特性的添加比较容易进行,然后再添加特性。2. 测试是很重要的一部分,我们应试着让测试结果可以进行自我检验,这样我们可以节约大量的时间,大大提高开发速度。3. 代码块愈小,代码的功能就愈容易管理,代码的处理和移动也就愈轻松,希望你每次看...原创 2018-12-03 22:25:25 · 314 阅读 · 0 评论 -
《重构——改善既有代码的设计》读书笔记(三)
一、构筑测试体系在一个程序员的日常工作中,大概只有两件事:思考如何写新的代码,改旧代码中的bug。其中在做改bug时,我相信大多数人和我一样,时间更多的是花在找到这个bug上,其实该bug大多时候都是很快的。而为建立测试体系可以帮助你更快的找到bug。建立测试体系时可以为每个类都建立其单独的测试出口,就是一个main函数一样的东西,也可以给每个类留一个测试调用的接口,然后再为整个工程建立一个单...原创 2018-12-05 21:01:25 · 242 阅读 · 0 评论 -
《重构——改善既有代码的设计》读书笔记(二)
代码的 “坏味道”1. 重复代码重复代码大致分为以下几种:a. 同一个类中不同函数含有相同的表达式。解决办法就是将两个函数相同的部分提炼为另一个函数接口,通过新增加的接口来实现之前的功能。b. 两个互为兄弟的子类含有相同的部分。解决办法是将相同的部分提炼出来向上推,将这一部分推送至其共同的父类中。c.两个无关的类中有相似的方法。解决办法是将这个方法单独提取成一个单独的函数,但需...原创 2018-12-04 22:18:34 · 312 阅读 · 0 评论 -
C/C++ 内存对齐原则及作用
原文地址:https://blog.csdn.net/chy19911123/article/details/48894579struct/class/union内存对齐原则有四个:1).数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小或者成员的子成员大小(只要该成员有子成员,比...转载 2018-10-06 21:42:28 · 566 阅读 · 0 评论 -
策略模式
策略模式一、定义是对算法的包装,把使用算法的责任和算法本身分割开,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类型的子类型。就是:“准备一组算法,并将每一个算法封装起来,使得他们可以互换。”二、类图意图:针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得他们可以相互替换。策略模式使得算法可以在...原创 2017-10-09 16:45:35 · 246 阅读 · 0 评论 -
提高C++代码质量学习(二)
这次写一点非技术性的东西,我是一个今年刚毕业的学生,在如今的公司算上实习试用什么的有七个多月了,在来到公司之后,我首先学习的不是什么高深的技术,也不是什么超简便的算法,而是代码规范。很多人在大学或是学习的过程中会养成自己的代码风格,世界上没有哪一种代码风格是完美的,但是每一家公司肯定都有自己的代码规范,作为一个打工者当然只能选择遵守领导定下的规矩,不能随心所欲的来。。。。自从上班以来整天看...原创 2018-07-12 21:29:27 · 318 阅读 · 0 评论 -
提高C++代码质量学习(一)
1.不要让main函数返回void关于main函数,在最新的 C99 标准中,只有以下两种定义方式是正确的: int main( void ) int main( int argc, char *argv[] ) 当然,在有些编译器下,void main() 也是可以通过编译的,但 C99 和 C++98 规定编译器要自动在生成的目标文件中加入”return 0;”, 表示程序正常退出.写程序好的...原创 2018-07-02 21:04:54 · 833 阅读 · 0 评论