自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (2)
  • 收藏
  • 关注

原创 restful接口

Roy Fielding博士在2000年他的博士论文中提出REST(Representational State Transfer)风格的软件架构模式后,REST就基本上迅速取代了复杂而笨重的SOAP,成为Web API的标准了。REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。http://localhost:9999/products/...

2019-10-07 13:06:14 165

转载 cmake笔记

参考:https://gearyyoung.gitbooks.io/cmake-api/content/cmake/CMake%E8%AF%AD%E6%B3%95.html罗列几个我自己会用到的:add_definitions  为源文件的编译添加由-D引入的define flag。add_definitions(-DFOO -DBAR ...)  在编译器的命令行上,为当...

2019-08-14 00:23:45 134

原创 selenium+firefox爬虫运行失败

一开始是可以的,后来某一天运行时报错:    driver = webdriver.Firefox()  File "F:\Python27\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 80, in __init__    self.binary, timeout)  File "F:\Python27\lib\...

2018-03-04 16:34:52 517

原创 面向服务的体系结构(SOA)应用的总体技术要求-笔记

服务描述能力:提供标准的信息模型和访问接口来描述服务和资源的相关属性服务注册与发现能力:提供服务注册及访问接口,用以对服务和资源进行注册、检索和发现服务开发能力:提供构件新服务所需的开发、配置、调试、测试及运行的环境;支持已有应用系统或数据资源的服务化封装服务编制能力:按逻辑顺序调用一系列服务形成更大粒度的服务SOA应用的质量要求:一般性要求:可靠性、易用性、性能、可维

2015-08-15 15:45:45 484

原创 Effective C++笔记3

【条款19】分清成员函数,非成员函数和友元函数1.operator*运算符class rational {public:  ...  const rational operator*(const rational& rhs) const;};rational oneeighth(1, 8);rational onehalf(1, 2);rational result = onehalf * o

2010-05-16 23:43:00 257

原创 Effective C++笔记2

【条款11】为需要动态分配内存的类声明一个拷贝构造函数和一个赋值操作符默认的拷贝构造函数和赋值运算符,是浅拷贝的。如果有指针成员变量,默认只会拷贝指针值,而不会为指针分配新的内存。这会带来两个问题:1.内存泄露。拷贝指针时,并没有释放原来指向的内存,导致这部分内存泄露;2.两个指针指向同一块内存。如果一个对象的生命周期结束,释放了这部分内存,另一个指针就会指向已经释放的内存。这个对象生命周期也结束

2010-05-16 23:36:00 232

原创 Effective C++笔记1

【条款1】尽量用const和inline,而不用#define换言之,尽量用编译器而不用预处理。1.尽量用const,而不用#define#define ASPECT_RATIO 1.653预处理后,编译器只知道1.653而不知道ASPECT_RATIO,编译出错时报错信息只显示1.653而不显示ASPECT_RATIO,这可能很令人费解。可以用常量实现:const double ASPECT_R

2010-05-15 23:16:00 275

原创 第11章 依赖倒置原则

1. 什么是DIPDependency Inversion Principle。定义:高层不依赖于低层。两者依赖于抽象。抽象不依赖于细节,细节依赖于抽象。 2. 为什么要用DIP    传统的设计,都是高层依赖于低层。低层的接口是由低层提供的,在提供接口时,低层作者只是站在自己的角度,怎样方便就怎样提供。这样的接口是跟具体实现密切相关的。如果低层实现发生了变化,就会引起接口的变化,进而...

2010-01-30 00:33:02 76

原创 第10章 Liskov 替换原则

1. 目的OCP原则背后的主要机制是抽象和多态。支持抽象和多态的关键机制之一是继承。只有良好的继承,才能使设计符合OCP。那么,什么才是良好的继承?LSP原则提供了一个判断标准。 2. 什么是LSPLiskov Substitution Principle。Liskov是提出这个原则的人的名字。 LSP的定义是这样的:子类型必须能够替换掉它们的基类型。 替换性质是这样的:若...

2010-01-30 00:28:18 173

原创 第9章 开放-封闭原则(OCP)

9.1 为什么要用OCP     在系统的生命周期中,需求变化是难免的。我们的系统怎样才能适应这些变化,贴切的符合需求呢?如果系统不能适应这些变化,每次进行一个小的改动,都不得不去修改很多地方,这就说明我们的系统具有僵化性了。使用OCP重构,会使你的系统具有可扩展性,当类似的变化再次发生时,可以很容易通过扩展满足变化。 9.2 什么是OCP    O:Open for ex...

2010-01-29 23:34:21 89

原创 第8章 单一职责原则(Single Responsibility Principle)

    OOD中,经常会提到内聚性,但没有给出判断是否有内聚性的标准。SRP对内聚性进行了扩展,给出了内聚性的判断标准。 8.1 单一职责原则(SRP)    一个类,应该只有一个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会导致脆弱的设计。当一个职责发生变化时,可能会影响其它的职责。另外,多个职责耦合在一起,会影响复用性。我们可能只需要复...

2010-01-29 23:22:03 68

原创 第7章 什么是敏捷设计

7.1 软件出了什么错     在软件开发过程中,我们经常发现代码越来越难以维护。需求变化时,很难去修改代码,修改后很容易引起意想不到的bug。在开发初期,程序员尚能清楚地掌握代码,能轻松的进行维护。随着项目地进行,设计越来越复杂,代码越来越混乱,程序员自己也不清楚修改某处代码,是否会引起别的问题。 7.2 设计的臭味——腐化软件的气味     出现下面任何一种现象,都说明软件正在腐化。 僵化性:...

2010-01-29 23:17:15 107

原创 第9章 开放-封闭原则(OCP)

9.1 为什么要用OCP    在系统的生命周期中,需求变化是难免的。我们的系统怎样才能适应这些变化,贴切的符合需求呢?如果系统不能适应这些变化,每次进行一个小的改动,都不得不去修改很多地方,这就说明我们的系统具有僵化性了。使用OCP重构,会使你的系统具有可扩展性,当类似的变化再次发生时,可以很容易通过扩展满足变化。9.2 什么是OCP    O:Open for extentio

2009-12-17 22:58:00 1236 1

原创 第8章 单一职责原则(Single Responsibility Principle)

  OOD中,经常会提到内聚性,但没有给出判断是否有内聚性的标准。SRP对内聚性进行了扩展,给出了内聚性的判断标准。8.1 单一职责原则(SRP)    一个类,应该只有一个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会导致脆弱的设计。当一个职责发生变化时,可能会影响其它的职责。另外,多个职责耦合在一起,会影响复用性。我们可能只需要复用该类的某

2009-12-10 21:36:00 395

原创 第7章 什么是敏捷设计

7.1 软件出了什么错    在软件开发过程中,我们经常发现代码越来越难以维护。需求变化时,很难去修改代码,修改后很容易引起意想不到的bug。在开发初期,程序员尚能清楚地掌握代码,能轻松的进行维护。随着项目地进行,设计越来越复杂,代码越来越混乱,程序员自己也不清楚修改某处代码,是否会引起别的问题。7.2 设计的臭味——腐化软件的气味    出现下面任何一种现象,都说明软件正在腐化。

2009-12-10 00:45:00 1118 1

原创 Const总结

最低权限原则是良好软件工程的最基本原则之一。使用const的好处:1. 使用const,可以避免因为疏忽而错误地修改变量。2. 使用const,能提高性能。编译器能够对const变量进行某些优化。总之,use it whenever you need it。 const的使用情况,分三种:1. const变量(1) const变量      例1:const int i = 5;     

2009-12-10 00:21:00 401 1

转载 malloc & new & VirtualAlloc

在windows系统中, 用户层, 分配内存系统最终会去调用VirtualAlloc.但是malloc, free却不是直接调用他。malloc, free是调用 API: HeapCreate, HeapAlloc, HeapFree这3个api又会去调用 VirtualAlloc, VirtualFree, VirtualProtect.一般流程是这样,一个pe被加载的时候, 他一定有一个已经

2009-06-23 11:36:00 1383

敏捷软件开发:原则、模式与实践

如果说设计模式是招式,则设计原则就是心诀,是面向对象中最最基本也是最最重要的思想。在学习设计模式前,先读这本书吧!

2014-10-12

Effective C++

Effective C++,让你的C++水平上一个新台阶!

2014-10-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除