今天,复习C++基础知识友元这一节的内容,考证C++为什么定义了这一看似矛盾的机制:C++提倡以类为单位编程,注重对类的封装与信息隐蔽,但友元的出现破坏了这一原则,相当于在一堵墙上开了一个小洞.C++为什么要左右手互搏呢?其实,看似矛盾的这一点体现C++的博大精深,分析如下:作为一..
分类:
编程语言 时间:
2014-10-07 06:08:13
阅读次数:
209
人们在创新和完善系统的过程可以遵循一定的规律(或者叫法则),从而减少创新和完善系统过程中的试错成本,下面就TRIZ的八大进化原则来进行说明(这个八大法则是前人们的总结,我这里当然会加入我的理解)。我们首先来看看一个技术系统(这里的定义是:为实现某种功能(或者职能)而存在的相互联系和作用的元件与运作事物集合)的构成,技术系统当然是分层次的,元件越少,能耗越小当然越好,一个理想的系统就是没有元件和成本...
分类:
其他好文 时间:
2014-10-07 01:08:52
阅读次数:
633
Hello world -- OS
我找到了华科绍志远博士的相关代码,发现他根据MIT的JOS的boot.S 稍作修改,然后单独剥离出来,可以很好玩~
资料下载地址:
http://download.csdn.net/detail/u011368821/8006465
原则上只需要两个文件(boot.S ...
分类:
其他好文 时间:
2014-10-06 17:48:50
阅读次数:
242
就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化产生时,设计会遭受到意向不到的破坏。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。
分类:
其他好文 时间:
2014-10-06 16:04:00
阅读次数:
118
抽象不应该依赖细节,细节应该依赖抽象。针对接口编程,不要针对实现编程。A:高层模块不应该依赖低层模块。两个都应该依赖抽象。B:抽象不应该依赖细节。细节应该依赖抽象。为什么要叫倒转?面向过程的开发是,为了使得代码可以复用,一般都会把这些常用代码写成许许多多函数的程序库,这样我们在做新项目是,去调用这些...
分类:
其他好文 时间:
2014-10-06 16:02:20
阅读次数:
134
C++赋值兼容原则:派生类的对象可以被赋值给基类对象。派生类的对象可以初始化基类的引用(指针也一样)C++多态性是通过虚函数来实现的,虚函数允许子类重新定义成员函数,而子类重新定义父类的做法称为覆盖(override),或者称为重写。(这里我觉得要补充,重写的话可以有两种,直接重写成员函数和重写虚函...
分类:
编程语言 时间:
2014-10-06 16:00:30
阅读次数:
161
软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。对于扩展时开放的,对于更改时封闭的。无论模块式多么的“封闭”,都会存在一些无法对之封闭的变化。既然不可能完全封闭,设计人员必须对于他设计的模块应该对哪种变化封闭做出选择。他必须先猜测出最有可能发生变化的种类,然后构造抽象来隔离那些变化。在我们...
分类:
其他好文 时间:
2014-10-06 15:46:30
阅读次数:
117
ReactOS是一个基于 Windows NT 架构(Windows XP, Windows 7, Windows Server 2012 等均基于 Windows NT 架构)设计原则的开源操作系统。由于所有的代码都经过重新编写,ReactOS 并不是一个基于 Linux 的操作系统,而且不包含任何 UNIX 架构。...
英文原文:Top 6 Refactoring Patterns to Help You Score 80% in Code Quality 在过去做了不少代码走读,发现了一些代码质量上比较普遍的问题,以下是其中的前五名:臃肿的类:类之所以会臃肿,是因为开发者缺乏对最基本的编码原则,即“单一职责原则....
分类:
其他好文 时间:
2014-10-06 13:58:10
阅读次数:
224
#优化策略#3个原则"""1a:寻找其他原因:确定第三方服务器或资源不是问题所在2a:度量硬件:确定资源足够用3a:编写速度测试:创建带有速度要求的场景"""#看标题#1a"""往往,性能问题都会出现实际过程中,客户会提醒软件在运行和测试环境中不一样,性能问题可能是因为应用程序没有考虑到现实世界中用...
分类:
编程语言 时间:
2014-10-05 19:31:48
阅读次数:
210