自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

常高伟的专栏

关注软件开发和技术中人的因素

  • 博客(54)
  • 资源 (18)
  • 收藏
  • 关注

原创 测试驱动开发(TDD)

代码整洁可用(clean code that works )是TDD的追求目标。 测试驱动的规则:1、 只有自动测试失败时,我们才重写代码。2、 消除重复设计,优化设计结构。上面的规则派生的规范:1、 我们必须通过运行代码提供的反馈来做决定,并以此达到有机设计的目的。2、 我们必须自己写测试

2009-09-27 20:35:00 1508

原创 重构原则

1.1 何谓重构重构(名词):对软件内部结构的一种调整,目的是在不改变“软件可察行为”的前提下,提高其可理解性,降低修改成本。重构(动词):使用一系列的重构准则,在不改变“软件可察行为”的前提下,调整其结构。1、 重构的目的是使软件更容易被理解和修改。2、 重构不会改变软件“可察行为”。1.2 为何重构

2009-09-27 20:33:00 1789

转载 如何写出优美的 C 代码

级别: 初级邱 俊涛 ([email protected]), 软件工程师, Jinfonet2009 年 9 月 25 日面向对象的语言更接近人的思维方式,而且在很大程度上降低了代码的复杂性,同时提高了代码的可读性和可维护性,传统的 C 代码同样可以设计出比较易读,易维护

2009-09-26 08:55:00 1916

转载 应用jBPM4解决中国特色的流程需求

原文:http://www.infoq.com/cn/articles/jbpm4-process-requirement1. jBPM4的特点jBPM是JBoss众多开源项目中的一个工作流开源项目,也是目前应用最广泛的工作流项目。在今年的7月10号,JBossjBPM团队正式发布了jBPM4的正式版。jBPM4完全基于流程虚拟机(PVM)的机制,对核心引擎进行了重新设计,而P

2009-09-26 08:40:00 5371

转载 演进架构中的领域驱动设计

原文链接:http://www.infoq.com/cn/articles/ddd-evolving-architecture作者 Mat Wall and Nik Silver 译者王丽娟 发布于 2009年9月21日 上午11时9分 社区

2009-09-26 08:38:00 3218

原创 微内核流程引擎(IVR导航)的设计与实现(三)——脚本的设计

我设计的流程引擎是脚步驱动的。脚本中定义了流程执行的环境,流程操作的对象,流程执行的步骤。下面是一个流程脚本的示例:    called_number     obj_user     //用户对象描述中,号码是必须的,是流程引擎和业务的交互唯一标识,callid是可选的。    obj_user           <invoke interface="mak

2009-09-24 17:38:00 2564

原创 微内核流程引擎(IVR导航)的设计与实现(二)——功能描述

上一篇介绍了微内核流程引擎开发背景,这篇介绍它的功能描述。基本功能:1、能够通过脚本定义流程,更改流程。2、对软交换系统应用服务器的所有的接口都可以编辑。3、异常处理,实现补偿机制。4、流程要支持:顺序执行,分支处理,跳转执行。5、脚本中支持简单的数据库操作,比如:记录查询(根据查询结果决定流程),字段查询,记录增删改。扩展功能:1、提供多种调用形式

2009-09-24 17:01:00 2523

原创 微内核流程引擎(IVR导航)的设计与实现(一)——开发背景

开发背景我们公司是主要从事企业语音方面产品的开发,主要产品比如:调度系统,指挥系统,电话会议系统,呼叫中心系统等。这些系统都有一个共同特点,就是涉及到呼叫,放音,收发按键,会场操作。我们的业务产品都是基于我们的软交换系统之上构建的,软交换系统的应用服务器向外提供这些服务。 产生的问题 我们在开发的过程中就发现一个问题,每个产品在此接口上都会做很多重复的开发,特别是在

2009-09-24 15:55:00 3263 5

原创 微内核流程引擎(IVR导航)的设计与实现 系列

本系列是我开发的一个微内核流程引擎的设计和实现思路。目前这个流程引擎已经完成,现在把整个思路和大家共享一下。 《微内核流程引擎(IVR导航)的设计与实现(一)——开发背景》《微内核流程引擎(IVR导航)的设计与实现(二)——功能描述》《微内核流程引擎(IVR导航)的设计与实现(三)——脚本的设计 》《 微内核流程引擎(IVR导航)的设计与实现(一)——在一次尝试后的

2009-09-24 15:34:00 2442

原创 测试工程师和实施工程的培养

我们公司测试工程师不多,专职的有两三个,有两年工作经验。实施工程师的情况更糟糕一点。大部分都只有一年的工作经验,很有好几个刚刚毕业。我们公司虽然成立有几年了,但是实施工程师职位了老员工不多,主要原因是流动性太大了。工作超过两年的很少。这种状况下应该好好反思一下测试部和工程部的管理和建设。我认为,要解决这个问题,就要在测试工程师和实施工程是的培养上下功夫。目前我们在这方面做的还很不够。对

2009-09-23 18:26:00 2154

原创 重构,开始第一个案例

前言你会发现所谓设计不再是一切动作的前提,而是在整个开发过程中逐渐浮现出来的。——Martin Flower 。没有银弹,没有放之四海而皆准的真理。重构和自动化测试时紧密联系的,没有自动化测试,重构会步履维艰。重构:在不盖被代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。也就是在代码写好之后改进它的设计。1 重构,

2009-09-23 18:17:00 1332

原创 软件开发思路:整合,复用,分享

昨天表了一篇文章《软件开发关键字:整合和复用》。关于整合和复用,是有一些交集的。今天继续这个话题。不过题目变了一下。  以复用的思路指导开发:1、构建系统的时候,把多个子系统系统的交集部分抽象出来,作为系统的基础设施,为多个子系统提供服务。我们公司是从事企业语音系统开发,包括调度系统,会议系统,呼叫中心系统等。这几个子系统的交集,典型的比如企业通讯录,计费,呼叫记录,网

2009-09-23 18:05:00 4138

原创 软件开发关键字:整合和复用

去年在公司研发年度会议上,讨论关于软件的开发思路。去年的时候,我提出我们公司要在SOA方向关注一下。今年的时候,我在次基础上提出要建立建立我们公司的业务开发平台。但是受到一些同事的强烈抵触和不认同。很有可能是我的想法还不够成熟,毕竟建立一个开发平台是一件很有难度的事情。 今年我在开发过程中对我们公司的研发思路也经常反思,得出一个初步的想法:开发中遵循整合和复用的思路。得出这个思路的原因

2009-09-22 22:35:00 1860

原创 推荐一个提高效率的工具:Google桌面

介绍一个提高效率的工具,Google 桌面。“使用 Google 桌面搜索计算机如同使用 Google 搜索网络一样方便。这是一款款桌面搜索应用程序,能够对电子邮件、文件、音乐、照片、聊天记录、Gmail、浏览过的网页等等进行全文搜索。Google 桌面可以对计算机进行搜索,从而让您能够轻松地找到所需的信息,而不必手动整理文件、电子邮件和书签。”摘自Google 桌面官方的描述。在网上

2009-09-22 21:27:00 4224

原创 首次使用google test心得体会

我的博客中转载过关于Google test的一个系列,今天终于抽出时间按照上面的步骤体会了一下Google test的魅力。开源真是个好东西,Google推出的开源更加不容小视。下面是我使用后的一些体会。1、简单易用。上手还是还是挺容易的,按照资料的步骤,参考自带的sample程序,可以很快的写一个自己的测试程序。2、测试案例是以宏的形式来定义的。Google test定义

2009-09-21 22:13:00 3872 3

转载 jBPM4.1新特性和中文用户手册下载

原文:http://www.blogjava.net/kaysurf168/archive/2009/09/10/294523.html    9月1号,jBPM4发布了4.1版本,jBPM4.1的新特性如下:   新内容:Start节点支持form工作日历可定制化改进了tomcat的安装以及许多配置选项 扩展了持续集成的范围,降低执行时

2009-09-19 15:19:00 1255

原创 应该以什么思维方式和心态来对待我们的软件设计和工作方式

昨天在INFOQ上看了一篇文章,很受启发,和大家分享一下。“——深感有责任欢迎不同的声音,并且当质疑之声受到抵制的时候要勇于挺身而出。只有以开放的心态质疑我们的工作方式,我们才能真正地学习和进步。不管我们是个人、是团队还是社区,这都确切无疑。这是一个突出的例子,但是每天我在社区中都会看到许多这样的例子,通过扣帽子,新的观点被抵制和打压,而不是真正地去解决问题。”以开放的心态质疑我们

2009-09-19 14:45:00 1164

转载 使用 Watir 加速面向 Web 应用的自动化测试程序的开发

使用 Watir 加速面向 Web 应用的自动化测试程序的开发文档选项<trvalign="top"><img alt="" height="1" width="8"src="//www.ibm.com/i/c.gif"/><img alt="" wi

2009-09-19 14:17:00 2789 2

原创 几个实用的软件开发工具之——代码编辑工具

1 代码编辑工具1.1 source insightSource insight 是一款非常优秀的代码编辑软件,支持创建工程(同时支持网络创建),语法着色,词语联想,它的代码搜索功能非常强大,非常适合阅读代码。下图是Source insight的全视图:左边为变量和参数列表:右边为工程文件列表:右下角为函数调用树:左下角为

2009-09-18 22:32:00 17069 2

原创 几个实用的软件开发工具之——版本管理工具

2 版本管理工具介绍两个基于界面的CVS工具。如果不习惯使用命令,可以使用客户端来使用CVS。2.1 wincvs一款开源的cvs客户端。视图如下:登陆界面:登陆后可以创建新库,导入,导出模块:也可以通过浏览文件,单击右键导入或导出模块:2.2 eclipse cvs插件如果你使用的代码编辑器是

2009-09-18 22:21:00 8831

原创 几个实用的软件开发工具之——性能优化工具

4性能优化工具4.1 gprofgprof是GNU profiler工具。可以显示程序运行的“flat profile”,包括每个函数的调用次数,每个函数消耗的处理器时间。也可以显示“调用图”,包括函数的调用关系,每个函数调用花费了多少时间。还可以显示“注释的源代码”,是程序源代码的一个复本,标记有程序中每行代码的执行次数。 原理:在编译或链接源程序的时候在编译器的命令行参数中

2009-09-18 22:14:00 4337

原创 几个实用的软件开发工具之——代码检测工具

3代码检测工具介绍几个动态和静态代码检测工具,可以帮助发现代码BUG。3.1 MEMWATCHMEMWATCH 由 Johan Lindh 编写,是一个开放源代码 C 语言内存错误检测工具,您可以自己下载它(请参阅本文后面部分的 参考资料)。只要在代码中添加一个头文件并在 gcc 语句中定义了 MEMWATCH 之后,您就可以跟踪程序中的内存泄漏和错误了。MEMWATCH 支持 ANS

2009-09-18 22:13:00 11671 2

原创 几个实用的软件开发工具之——功能测试工具

5 flowtestFlowtest是我们公司前任总监开发的流程测试工具。基本的思路是,把每个网元作为一个单独的考察对象,而把其他和它交互网元用测试工具flowtest模拟出来。flowtest还可以实现流程模拟,模拟其他网元发送消息、接受消息。并且在flowtest中检测被测试网元的反应是否正确,如果不正确这打印出出错信息。测试流程使用脚本驱动,通过脚本来描述测试过程。并且,flowte

2009-09-18 22:11:00 5186

原创 几个实用的软件开发工具——总述

这里介绍几个适用的开发工具。在开发过程中适当的软件开发工具,可以提高软件开发效率,提高软件开发质量。下面介绍的软件分为一下几类:代码编辑工具,代码检测工具,版本管理工具,程序性能分析工具,功能测试工具,系统构建工具。《 代码编辑工具 》《版本管理工具 》《 代码检测工具 》《性能优化工具 》《功能测试工具》 

2009-09-18 21:08:00 1664 1

原创 《代码大全》学习笔记——第十九章,一般控制问题

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Font D

2009-09-18 21:06:00 1381

原创 《代码大全》学习笔记——第十八章,表驱动法

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Font D

2009-09-18 21:04:00 2490

原创 《代码大全》学习笔记—— 第十七章,不常见的控制结构

      第十七章,不常见的控制结构前言谨慎的使用这些控制结构,将会获得更多的帮助。17.1 子程序中有多处返回1、  如果能够增强可读性,那么就是用return。2、  用防卫子句来简化复杂的错误处理。3、  减少子程序中return的数量。 17.2递归

2009-09-18 21:02:00 1138

原创 《代码大全》学习笔记——第十五章,使用条件语句

第十五章,使用条件语句前言15.1 if语句简单if-then语句:1、  首先写正常的代码路径,再处理不常见的情况。2、  确保对于等量的分支是正确的。3、  把正常的情况放在if后面而不是else后面。4、  让if后面跟一个有意义的句子。

2009-09-18 20:59:00 962

原创 《代码大全》学习笔记——第十六章,控制循环

第十六章,控制循环前言16.1 选择循环的种类什么时候使用while循环:什么时候使用带退出的循环:如果把循环条件放在开始或结束处,那就要写一个半循环。还要注意把所有的退出条件放在一起,避免将它写的到处都是。带退出的循环更容易理解。什么时候使用for循环:不需要在内部控制循环,循环条件是简单

2009-09-18 20:55:00 1304

转载 【转】玩转Google开源C++单元测试框架Google Test系列(gtest)之八 - 打造自己的单元测试框架

原文地址:http://www.cnblogs.com/coderzh/archive/2009/04/12/1434155.html一、前言上一篇我们分析了gtest的一些内部实现,总的来说整体的流程并不复杂。本篇我们就尝试编写一个精简版本的C++单元测试框架:nancytest ,通过编写这个简单的测试框架,将有助于我们理解gtest。二、整体设计使用最精简的设计,我们就用两个

2009-09-18 20:39:00 1882

转载 【转】玩转Google开源C++单元测试框架Google Test系列(gtest)之七 - 深入解析gtest

原文地址:http://www.cnblogs.com/coderzh/archive/2009/04/11/1433744.html一、前言“深入解析”对我来说的确有些难度,所以我尽量将我学习到和观察到的gtest内部实现介绍给大家。本文算是抛砖引玉吧,只能是对gtest的整体结构的一些介绍,想要了解更多细节最好的办法还是看gtest源码,如果你看过gtest源码,你会发现里面的注释

2009-09-18 20:37:00 1631

转载 【转】玩转Google开源C++单元测试框架Google Test系列(gtest)之六 - 运行参数

原文地址http://www.cnblogs.com/coderzh/archive/2009/04/10/1432789.html 一、前言使用gtest编写的测试案例通常本身就是一个可执行文件,因此运行起来非常方便。同时,gtest也为我们提供了一系列的运行参数(环境变量、命令行参数或代码里指定),使得我们可以对案例的执行进行一些有效的控制。二、基本介绍前面提到,对于运行参

2009-09-18 20:36:00 2092

转载 【转】玩转Google开源C++单元测试框架Google Test系列(gtest)之五 - 死亡测试

原文地址:http://www.cnblogs.com/coderzh/archive/2009/04/08/1432043.html一、前言“死亡测试”名字比较恐怖,这里的“死亡”指的的是程序的崩溃。通常在测试过程中,我们需要考虑各种各样的输入,有的输入可能直接导致程序崩溃,这时我们就需要检查程序是否按照预期的方式挂掉,这也就是所谓的“死亡测试”。gtest的死亡测试能做到在一个安全

2009-09-18 20:34:00 2462

转载 【转】玩转Google开源C++单元测试框架Google Test系列(gtest)之四 - 参数化

原文地址http://www.cnblogs.com/coderzh/archive/2009/04/08/1431297.html一、前言在设计测试案例时,经常需要考虑给被测函数传入不同的值的情况。我们之前的做法通常是写一个通用方法,然后编写在测试案例调用它。即使使用了通用方法,这样的工作也是有很多重复性的,程序员都懒,都希望能够少写代码,多复用代码。Google的程序员也一样,他们

2009-09-18 20:32:00 1911

转载 【转】玩转Google开源C++单元测试框架Google Test系列(gtest)之三 - 事件机制

原文地址:http://www.cnblogs.com/coderzh/archive/2009/04/06/1430396.html一、前言gtest提供了多种事件机制,非常方便我们在案例之前或之后做一些操作。总结一下gtest的事件一共有3种:1. 全局的,所有案例执行前后。2. TestSuite级别的,在某一批案例中第一个案例前,最后一个案例执行后。3. TestCae

2009-09-18 20:30:00 2208

转载 【转】玩转Google开源C++单元测试框架Google Test系列(gtest)之二 - 断言

原文地址:http://www.cnblogs.com/coderzh/archive/2009/04/06/1430364.html一、前言这篇文章主要总结gtest中的所有断言相关的宏。 gtest中,断言的宏可以理解为分为两类,一类是ASSERT系列,一类是EXPECT系列。一个直观的解释就是:1. ASSERT_* 系列的断言,当检查点失败时,退出当前函数(注意:并非退出当前案

2009-09-18 20:28:00 2469

转载 【转】玩转Google开源C++单元测试框架Google Test系列(gtest)之一 - 初识gtest

原文地址:http://www.cnblogs.com/coderzh/archive/2009/03/31/1426758.html一、前言本篇将介绍一些gtest的基本使用,包括下载,安装,编译,建立我们第一个测试Demo工程,以及编写一个最简单的测试案例。二、下载如果不记得网址, 直接在google里搜gtest,第一个就是。目前gtest的最新版本为1.3.0,从下列地

2009-09-18 20:25:00 4556 2

原创 Google的开源C++单元测试框架Google Test初探

最近在开发c/c++插件开发框架,要集成一个单元测试框架。本来是想要集成cppunit的,但是看了一下,这个测试框架有点繁琐。在IBM网站了看了一篇文章《轻松编写 C++ 单元测试》关于Google两个开源测试框架: googletest 与 googlemock。后来在Google中搜索了一下googletest,看了一些文章,它既可以进行c的单元测试,又可以进行c++的单元测试,使用方

2009-09-18 20:05:00 3389

原创 开始学习java

以前一直从事底层设备软件开发,用的语言一直是C,最近的时候开始使用C++。我们公司目前开发业务主要的语言还是C,有的落伍了。 最近半年接触java,发现java的基础设施太强大了。所以,我决定开始认真的学习java了。 

2009-09-13 10:29:00 1251 1

原创 构建自己的C/C++插件开发框架(四)——核心层设计和实现

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Font

2009-09-12 19:39:00 8957 1

python开发总结——c程序员python之路

python开发总结——c程序员python之路 我在工作中写的python总结,适合学习python的c程序员。

2012-09-21

python开发总结

自己的开发总结,适合初学者。 页数大概有四十页,后面慢慢更新。

2012-05-23

google-reader-subscriptions.xml

我关注的技术博客列表。是我最近一两年收集的博客列表。 博客是学习一个非常重要的重要手段。

2011-11-03

:The C Programming Language 中文版

:The C Programming Language 中文版: The C Programming Language 中文版

2009-11-07

周一清晨的领导课,领导能力

周一清晨的领导课周一清晨的领导课周一清晨的领导课

2009-10-21

《代码大全》 学习笔记

我最近学习了代码大全,这里是全学习笔记,和大家一起分享。

2009-10-03

OSGI进阶.pdf

OSGI进阶 开发 教程,更深入介绍OSGI

2009-08-25

Google Android SDK开发范例大全

Google Android SDK开发范例大全

2009-08-25

Android开发教程英文版.rar

Android开发教程英文版.rar 英文资料。可以看看。

2009-08-25

android+Programming.pdf

android+Programming.,英文的开发资料。技术越前沿,深入,中文资料越少。还是慢慢的习惯英文资料吧。

2009-08-25

android应用框架原理与程序设计

android应用框架原理与程序设计,高焕堂的作品。

2009-08-25

IBM android技术文档——从入门到精通.rar

IBM的android资料,对android感兴趣的人可以学习一下。

2009-08-17

全部的SCA&SDO中文规范

满江红社区翻译的中文规范,是目前最新的。也是全部的。

2009-08-17

演化架构与紧急设计——IBM架构资料

演化架构与紧急设计,IBM的资料,是IBM一位资深架构师写的资料。对于提升架构能力还是有帮助的。

2009-08-17

SCA Assembly Model V1.00.pdf

SCA中文规范,主要描述装配模型。v1.0

2009-08-17

IBM SCA培训资料

IBM SCA培训资料,属于基础性的。可以看一下。应该有帮助。

2009-08-17

技巧:在 C-C++中如何构造通用的对象链表

技巧:在 C-C++中如何构造通用的对象链表

2009-04-08

c++标准库文档,chm格式,包含c

c++保准库文档,详细介绍c++库函数。chm格式,包含c

2009-04-08

空空如也

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

TA关注的人

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