软件开发中,总有无穷无尽的新的功能要不断添加进来。添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。现在,你终于接到了一个新任务:开发代号为Vulcan的新功能,该功...
分类:
其他好文 时间:
2014-07-08 22:11:43
阅读次数:
190
软件开发中,bug就像家常便饭一样。有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue -101来修复它,但是,等等,当前...
分类:
其他好文 时间:
2014-07-08 21:49:34
阅读次数:
284
什么是设计模式?
每一类编程语言都具有其自身的特性,就像是面向对象的语言,其特性就是封装,继承,多态,抽象. 同时,使用每一类编程语言开发软件时也都有一些设计准则,这些准则保证了软件的质量,即具有良好的设计. 而设计模式则是广大软件开发人员总结出的开发经验技巧,它们利用编程语言的特点,实现这些准则.因此,可以想象,当我们对设计模式熟悉到一定程度后,在设计系统时,我们眼里就会变得...
分类:
其他好文 时间:
2014-07-08 19:07:56
阅读次数:
211
第二章 基本概念
不良的代码风格,不良的文档直接导致软件开发及维护代价高昂。
其实一个人总有他自己的代码风格,主要是坚持一种合理的风格,让大家容易读懂。...
分类:
其他好文 时间:
2014-07-08 17:01:37
阅读次数:
185
即便是基于MFC的应用程序,建立窗口类也是会遵循如下的过程:
设计窗口类->注册窗口类->生成窗口->显示窗口->更新窗口->消息循环->消息路由到窗口过程函数处理。下面就剖析一下在MFC中是如何完成上述过程的。
(1)每个应用程序都有且仅有一个应用类的全局变量theApp,全局变量先于WinMain函数进行处理。
(2)WinMain函数体在APPMODUL.CPP文件中,定义如下:
...
分类:
其他好文 时间:
2014-07-08 16:01:46
阅读次数:
286
在日常的软件开发当中,我们一般都是采用了分层的方式来架构系统,但是为什么我们需要分层进行架构呢?在此之前,我觉得需要搞明白两个概念,什么是软件的伸缩性,什么是性能。
首先,什么是软件的伸缩性(Scalability)?我们都知道设计良好的系统可以应对不断增加的系统访问量,但是我们如何能在系统用户增多的时候,来提高系统的吞吐量呢?这就是伸缩性之魅力所在。
伸缩性可以有两个方面,垂直伸缩性...
分类:
其他好文 时间:
2014-07-08 15:59:03
阅读次数:
200
第2部分 数据库SQL语言数据库的维护 对于某些大型软件产品,一旦商用,必然会存储很多用户信息,这就对产品所使用的数据库(以下简称业务数据库)带来了压力。为了保证业务数据库的平稳运行,需要在日常工作中对数据库做一些基本的维护操作。 业务数据库的维护规则如下:1. 对业务数据库必须进行定期全量备份 业务数据库的定期备份能在数据库被意外破坏时进行快速恢复,备...
分类:
数据库 时间:
2014-07-08 14:53:04
阅读次数:
301
Freertos是一个硬实时内核,支持众多的微处理器架构,我们可以从它的官网(www.freertos.ort)下载它的sourcecode,同时也可以看出它支持了几十种的微处理器架构,这些就不罗嗦了。之所以选择研究这个,是应为窥探RTOS内核的内幕一直每一个做底层软件开发人员的心愿,选择过好几种RTOS但他们有的是需要收费,有的不太成熟也不够系统,有的虽然比较成熟但是系统太大不太适合研究。而fr...
分类:
其他好文 时间:
2014-07-08 14:17:54
阅读次数:
249
MFC工程中,除了系统自动生成的一些对话框之外,还需要根据自己的需求,添加新的对话框。这里总结下自己最近使用的方法。 首先,找到Resource View中自己新建的工程,然后右键,选择Add Class,然后弹出的对话框中对新增的类进行设置,在Base Class需要选择CDialog,然后输入新...
分类:
其他好文 时间:
2014-07-08 11:34:58
阅读次数:
136