自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Beyond.cn

继续革命。。。

  • 博客(350)
  • 资源 (1)
  • 收藏
  • 关注

转载 明晰单元测试

最近,身边的一位朋友因为需要在其单位与同事分享单元测试(Unit Test,UT)方面的知识,邀我对他所准备的PPT进行审阅。在审阅的过程中我发现,他在PPT中指出:“实际工作中,写好程序后对程序功能的调试就是一种单元测试”。由于我知道这位朋友并没有运用单元测试的经验,所以我问到:“你的这一认识是从哪里获得的?”,朋友答曰:“从网上搜来的”。无独有偶,这两天我在微博上看到了对单元测试相似的理解:“

2017-06-30 08:47:25 654

转载 软件平台与框架的生命周期

以静态的思维看待平台与框架开发,极有可能最终导致所获得的平台与框架是一个臃肿、易出错的软件包袱。出现这种状况的原因,是我们没有明白平台与框架是存在生命周期的。平台与框架也象人一样,存在形成、成长、成熟和衰退四大时期,图1示例说明了这几个时期。图中纵座标的适应能力,是指平台与框架对应用软件新需求的支持程度。其中的直线也只代表一种趋势,现实中更多地表现为存在波动的曲线。

2017-06-28 09:00:29 825

转载 软件设计中的“自上而下”和“自下而上”

在切入主题之前先要了解“上”与“下”的含意是什么,这需要从图1中找答案。图中,应用层在最上面,其下依次是框架、平台、库和操作系统层,因此“上”是指靠近应用层,而“下”则是指靠近操作系统层。图1    对于一个被设计的软件模块,存在两个视角。一个是从上向下看,这一看,看到的是模块向上层提供的是什么样的接口,或者说“长什么样”;另一个则是从下向上看,即模块的具体实现是什么,

2017-06-28 08:53:43 5776

转载 明晰软件架构与数据结构

相信大多软件工程师在谈及软件架构(software architecture)时立刻会联想到数据结构(data structure),这是正常的反应。但是,有些工程师却误以为软件架构就完全是关于数据结构,这就不对了。之所以将软件架构与数据结构在本文中并提讨论,是为了让我们对之有更清晰的认识。读者后面会明白,这种清晰的认识对于我们的工作是有益的。数据结构在Wikipedia上的定义是

2017-06-23 09:00:34 735

转载 软件系统架构师成长之路(一)

几个月前,公司因为战略调整,将位于美国的系统工程(system engineering)部门的工作转到了国内。也因为这次调整,我有幸以系统架构师(system architect)的身份主导产品一新功能(feature)的开发。在此我分享自己的一些体会。 从开发架构师变成系统架构师所面临的第一个挑战,是所面临的技术范畴和问题复杂度变广和变大了很多。做开发架构师(development ar

2017-06-13 08:50:55 1479

转载 软件架构师的能力与特质

软件开发工程师的职业发展无非两大类:一是做“官”,从事管理工作;二则继续从事技术工作。对于后者,软件架构师(software architect)是很多软件开发工程师追求的理想岗位。在这我想谈一谈软件架构师所需的几大能力和一些特质,以便读者能更好地规划自己的职业发展。 1)需要很好的逻辑思维能力。对于软件开发工程师来说,由于大多从事编程工作,所以很容易以为自己的逻辑思维没有问题,足以满足软

2017-06-08 09:05:08 436

转载 软件开发架构师的职责

我在Motorola的网络部(注:今年4月份该部门被Nokia Siemens Networks收购,所以我现在是NSN的员工)担任架构师(Software Architect)一职至今近两年了,最近因为微博上的博友询问起软件架构师的职责一事,所以想到写一篇文章来分享现有公司的要求。至于软件架构师所需掌握的技能,我打算后面写另一篇博文来分享。 这里的话题主要牵涉公司的系统工程(Sy

2017-06-07 08:50:24 713

转载 高质高效软件开发组织能力模型

背景至今,我在Motorola网络部工作超过了5年,所在的产品线也是采用统一软件开发过程和敏捷思想(但不是SCRUM)来组织软件开发活动的,但这5年多的工作经历从未引起我象微博上对于SCRUM话题的激烈讨论这样的思考。原因之一可能是,公司的流程已经很成熟了且形成了一种文化,不论怎样的新人进入公司,都只需按照流程按步就班的工作就行了。另外,公司的开发流程并不包含象SCRUM所要求的形式化内容,使

2017-06-02 08:44:50 689

转载 实施软件平台与框架开发的注意事项

我在《专业嵌入式软件开发 — 全面走向高质高效编程》一书中用一章的内容指出,软件平台与框架开发是高质软件的打造之路。这里想进一步谈一谈实施这一高质软件打造方法所需注意的事项。 首先,明确(软件)平台与框架开发的主要目的不是对操作系统的功能进行封装,而是为所需开发的上层应用提供服务。虽然平台与框架的开发需要通过对操作系统的功能进行封装来实现为上层应用提供服务,但两者的主、次不能颠倒。

2017-06-01 09:01:09 429

转载 打造高质效的技术团队 —— 酝酿篇

入职半年后的2013年6月份左右,淘宝浏览器团队和搜索团队被剥离出阿里巴巴集团,成为阿里巴巴与UC优视所成立合资公司——广州神马移动信息技术有限公司——的主体。在合资公司正式成立之前,主管在一次与我的面谈中告知“我们得成为一家小公司的一部分,且可能要重新基于Chromium的最新内核开发新的浏览器”(注:“新的浏览器”正是指现在的“UC浏览器电脑版”)。当听到这一消息时我非常高兴,因为看到这是一个

2017-05-18 09:02:54 530

转载 打造高质效的技术团队 —— 混乱篇

2012年平安夜,我离开工作了近十年的通讯行业投身互联网行业,入职了当时阿里巴巴旗下的淘宝浏览器开发团队。过去的两年,这个团队完成了从淘宝浏览器过渡到UC浏览器电脑版开发团队的巨变。之所以说是巨变,是因为整个开发团队的工作方法、工作质量和精神风貌在过去的两年发生了翻天覆地的变化。在这个过程中,我作为“领头羊”引领着开发团队向前发展,并在最近有机会成为了带领包含开发和测试在内的整个技术团队继续向前发

2017-05-16 09:04:00 1153

转载 如何做好基层技术管理工作?

最近有朋友与我探讨了软件基层技术管理工作方面的话题,借此从动机和方法两方面谈谈我的看法。动机要做好基层技术管理工作,首先要确保自己有良好的动机,即明白自己为何要走上技术管理岗位。做管理的根本是为了获得权力,但获得权力的动机却存在很大的差别。第一种单纯是为了利己。有相当数量的人往技术管理岗位“挤”,是为了获得以后在工作中可以少做或挑做工作内容的权力;也

2017-05-10 09:02:02 504

转载 技术敏感度 — 基层技术管理者必备

一说到管理者的能力特质,我们马上会联想到沟通、授权、决策等能力。然而,对于软件开发活动中的基层技术管理者(team lead、line manager等),我想指出被极为忽视的另一种重要能力 — 技术敏感度。对于基层技术管理者来说,何为技术敏感度?技术敏感度表现为:1)工程师解释技术问题时,能快速理解并切中问题要害; 2)面对多个技术方案做选择时,具备权衡能力,并能给出有建设性的意见和

2017-05-04 09:03:05 701

转载 出色技术团队的关键要素

对于出色技术团队的关键要素可以从下图中找到。下面让我来对其进行解读。这幅图首先映入眼帘的是,它是一个三角形,而其顶点则是求精。求精离不开下面三个要素的支持,即分享、责任和合作。求精应是技术团队所追求的最高目标,只有拥有求精的精神,团队的技能才能得到逐步的提高,也只有求精的精神,团队的长远工作和生活质量才会更好。要做到求精离不开学习,否则求精只能是口号;要做到精一定会出现困难,而

2017-05-04 08:54:00 500

转载 技术管理的核心内容 — 提高团队技能

最近与同事聊天,从软件质量保证的方法论谈论到了技术管理,那技术管理的内涵到底是什么?在此通过这篇文章做一个小小的总结和适当的外延。 技术管理给人的感觉更多是工作量评估、项目计划、项目进度跟踪等,但这只是技术管理的一部分。大体上,可以将技术管理分为两个纬度,如图1所示。图1 纬度之一就是项目管理,其中包括项目计划、风险管理、预算管理等。对于基层技术管理

2017-04-28 08:50:52 931

转载 走技术线,还是技术管理线?

最近因为要给刚毕业的学生做一次演讲,所以就职业发展这类话题先以写博客的形式做一些思考,希望届时能给同学们带来质量更高的内容。我在《驾驭你的“职场布朗运动”》一文中谈了25条职场感悟并提出了“走技术线,还是技术管理线?”这一问题,但实际上并没有给予解答。在此补上。在正式解答这一问题之前,我想先强调职业发展的“黄金期”。每个人的职业发展我认为大致会经历“黄金期”、“平缓期”、“突破期”和“

2017-04-28 08:42:13 450

转载 再谈程序员思维

http://blog.sina.com.cn/s/blog_493a845501017nqr.html关于这个话题前面已经谈到过不少,再做一些必要的总结,思维和技能一直是每个人最重要的两个方面的内容。有时候是知识和技能的积累,推动了思维意识的转变;有时候又是转变了思维意识后加速了知识技能的积累。这个关系很类似渐修和顿悟的关系,渐修到一定程度后顿悟,而顿悟后还得不断实践和落地。将思

2017-04-27 08:46:02 432

转载 浅谈技术管理

http://hi.baidu.com/ncaoz/item/8a17ff633682fd09a0cf0f78针对这些年旁观和经历过的技术产品场景,做一些个人的总结和判定,尽量不涉及争议性话题,比如对一个互联网公司而言,技术重要还是产品重要之类的,这种话题一扯开,各有道理,谁也别指望说服谁。    此外,加一个前缀,主要针对非技术领导者所面临的技术管理困境,在很多从传统企业转型或个

2017-04-27 08:38:14 466

转载 技术管理猪鸡-1 开篇

技术管理猪鸡-1 开篇1 Comment高效的秘密我正式走上职业生涯是 2011 年秋天,完成了博士学业,踌躇满志地加入了 Google。当时,我的理想是做 Google 里生产率最高的软件工程师。为此,我列了一个高效工程师名单,看他们每天提交的代码是些什么,以从中学习高效的工作方法。这个名单里有 Jeff Dean, Sanjay Ghemawat, Rob Pike,还

2017-04-26 08:56:47 522

转载 关于swift与objective-c混合编译

在xocde6出来我们大部分代码都是用objective-c写的(部分C/C++),现在出生来了一个新的语言叫swift,那么如何既能使用我们之前的代码,还可以使用新语言呢, 本文就此做一下说明。关于swift语方的学习可以看文档 The Swift Programming Language 本文假设你已经有所了解,下面基于当前您当前在做的objective-c来做swift扩展, 假设我

2015-09-23 18:50:28 641

转载 mic in和line-in的区别

电脑声卡上,一般都会有Line in和Mic in两个接口,翻译成中文就是“线性输入”和“麦克风输入”,这两个都是输入端口,但是还是有区别的:①Line in端口:该端口主要用于连接电吉他、电子琴、合成器等外界设备的音频信号输出的录音,由于这些设备本身输出功率就比较大,因此需要连接到Line in端口录音,当然使用它们录音从某种程度上也可以被称为外部设备的“内录”。一般您使用的声卡越好,L

2015-07-20 15:38:33 2346

转载 CWnd中PreCreateWindow、PreSubclassWindow、SubclassWindow的区别

MFC(VC6.0)的CWnd及其子类中,有如下三个函数:    // From VS Install PathVC98MFCIncludeAFXWIN.H    class CWnd : public CCmdTarget    {        ...    public:        ...        virtual BOOL PreCreateWind

2015-06-13 15:05:11 546

转载 Win字符串小结

ANSI和Unicode:前者是单字节字符编码,用来表示英语以及一些西欧语言的所有字符;后者是双字节字符编码,可以表示现代计算机涉及的所有字符(包括中文、日文等)。显然,使用Unicode更有利于国际化和本地化。除此之外,Windows所有核心函数也都需要Unicode字符串。在调用这些函数时,如果传入ANSI字符串,那么这些函数会将其转换成Unicode再执行;反之,如果函数返回ANSI

2015-06-13 14:51:54 676

转载 VC2008中ActiveX Control Test Container程序去那里了?

如果你是windows7或者是vista的用户,那么使用VS2005、VS2008或者是VS2010将是必须的,推荐使用VS2010。对于VS2008它是对vista操作系统开发的一套工具,而windows7配套的是VS2010。假如你是这两款操作系统的用户的话,使用vc6.0基本上是不可能的,它已经是老古董了!而在这两套操作系统上面开发ActiveX控件,你会发现少了工具ActiveX Co

2015-06-06 16:32:02 1035

转载 RTP 和 RTSP的区别

RTP(Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输协议。RTP被定义为在一对一或一对多的传输情况下工作。其目的是提供时间信息和实现流同步。但RTP通常使用UDP来传送数据。但RTP也可以在TCP或ATM等其他协议之上工作。当应用程序开始一个RTP会话时将使用两个端口:一个给RTP一个给 RTCP。RTP本身并不能为接顺序传送数据

2015-06-06 16:26:20 2671

转载 C++的Json解析库:jsoncpp和boost

JSON(JavaScript Object Notation)跟xml一样也是一种数据交换格式,了解json请参考其官网http://json.org,本文不再对json做介绍,将重点介绍c++的json解析库的使用方法。json官网上列出了各种语言对应的json解析库,作者仅介绍自己使用过的两种C++的json解析库:jsoncpp(v0.5.0)和Boost(v1.34.0)。 一. 使

2015-06-06 16:21:11 935

转载 在VC下执行DOS命令

[cpp] view plaincopy/* ================================================================================================     方法一: system("md c://12");      1) 调用命令时会出现一个dos 窗口一闪而过

2015-06-06 16:18:17 1501

转载 一个函数能否被两个线程同时调用

其实你可以这样想,函数本身只是代码,代码是只读的,无论多少个线程同时调都无所谓(因为只读嘛)。但是函数里面总要用到数据,如果数据属于线程(比如函数参数、局部变量,存在栈上,每个线程都有自己的栈),那么同时调还是没关系,因为用的本线程的数据;但是如果用了一些全局数据,比如全局变量,同时操作一个数据结构(如对一个链表有什么操作),那就不行了,这时候锁就出来了。转自:http://bbs.china

2015-06-06 16:14:24 8432

转载 CStatic控件背景透明且改变其文本时,文字重叠解决方法

问题 提出:最近在项目中将CStatic控件设置为背景透明且在一个定时器函数改变其文本,结果CStatic的文字重叠了。解决该问题的方案是:从CStatic类派生自己的静态文本控件。其实设置背景透明,也就是在CStatic重画时,返回一个空刷子而已,所以改变文本并没有改变上次残留的背景,从而导致重叠现象。为了解决这个问题,我们可以让父窗口重绘该区域,以下是我的解决方法:

2015-06-06 15:59:59 2457

转载 WaitForMultipleObjects使用详解

[c-sharp] view plaincopyDWORD WaitForMultipleObjects(    DWORD nCount,             // number of handles in the handle array    CONST HANDLE *lpHandles,  // pointer to the object-ha

2015-06-06 15:54:54 1039

转载 如何让一个动态链接库文件debug和release编译的时候生成不同的文件名

让一个动态链接库文件debug和release编译的时候生成不同的文件名的方法:     1、去掉DEF文件中的LIBRARY;     2、修改settings-link-output   file   name,改为希望的名字,比如debug的改为test_d.dll,release的不变。     1很重要,否则虽然生成了test_d.dll和test_d.lib,但是运行的时候

2015-06-06 15:45:19 2419

转载 VC2008下提示找不到MSVCP90D.dll的解决办法

VS 2005在生成可执行文件时使用了一种新的技术,该技术生成的可执行文件会伴随生成一个清单文件(manifest file)(.manifest后缀文件)(其本质上是XML文档,你可以用文本编辑器打开看看),并在链接完成后将该清单文件嵌入到exe文件中(默认情况下)。而在FAT32文件系统中,在处理清单文件阶段,当增量链接时不能完成清单文件的更新(默认情况下),于是造成清单文件嵌入失败,从而

2015-06-06 15:08:21 1559

转载 XP设置远程桌面24位色深

XP/2003远程桌面默认只支持16位色,可以用下面提高到24位,32位就不用考虑,它就是不支持。修改远程桌面颜色----gpedit.msc----管理模版---windows组件---终端服务=>限制最大颜色深度转自:http://blog.csdn.net/lophyxp/article/details/8945100

2015-06-06 15:05:32 2537

转载 在VC中调用 WebService

一、什么是 WebService ?WebService 其实就是一个基于网络的应用程序,它向外部程序提供一定的调用接口。外部(远程)的程序,可以经由Web对其进行调用。二、 WebService 的特性:1.由于 WebService 经由web服务器发布,所以比DCOM而言,可以顺利穿过防火墙。这也是 WebService 的优点之一,可以说, WebService ,

2015-06-06 14:52:51 775

转载 H264

-----------------------1.编码原理----------------------前言-----------------------       H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以

2015-06-06 14:47:09 1965

转载 H2.64中I帧和IDR帧的区别

IDR(Instantaneous Decoding Refresh)--即时解码刷新。      I和IDR帧都是使用帧内预测的。它们都是同一个东西而已,在编码和解码中为了方便,要首个I帧和其他I帧区别开,所以才把第一个首个I帧叫IDR,这样就方便控制编码和解码流程。IDR帧的作用是立刻刷新,使错误不致传播,从IDR帧开始,重新算一个新的序列开始编码。而I帧不具有随机访问的能力,这个功能

2015-06-06 14:30:14 815

转载 MFC对话框中的单选按钮(Radio)

将一组单选按钮添加到对话框选择“工具箱”窗口中的单选按钮 (RadioButton) 控件,并在对话框中单击希望放置该控件的位置。重复步骤 1 以添加所需的任意多个单选按钮。确保组中单选按钮的 Tab 键顺序是连续的(有关更多信息,请参见更改控件的 Tab 键顺序)。在“属性”窗口中,将 Tab 键顺序中的第一个单选按钮的 Group 属性设

2015-06-06 14:16:07 2320

转载 Qt版的Rtsp客户端

其实这个实现还是很简单的。主要是要在编译ffmpeg的时候,开启rtsp,network,这样我们就可以直接利用avformat_open_input函数接受rtsp协议了。ffmpeg代码的编写的流程和输入文件是一样的。所以说整个实现过程还是比较简单的。同样,我这里会给出我在开发这个客户端的所有的参考资料。对于别人详细介绍的知识我就不会在赘述了。   随便提一下,我一开始使用live55

2015-06-06 14:11:28 9357 1

转载 directory identifiers (dirids)

Many of the directories that appear in INF files can be expressed by using directory identifiers (dirids), which are numbers that identify specific directories. Applications can use, but cannot reassi

2015-06-06 14:07:31 664

转载 OnEraseBkGnd与OnPaint

问题是这样产生的.在OnEraseBkGnd中,如果你不调用原来缺省 的OnEraseBkGnd只是重画背景则不会有闪烁.而在OnPaint里面, 由于它隐含的调用了OnEraseBkGnd,而你又没有处理OnEraseBkGnd 函数,这时就和窗口缺省的背景刷相关了.缺省的 OnEraseBkGnd操作使用窗口的缺省背景刷刷新背景(一般情况 下是白刷),而随后你又自己重画背景

2015-06-06 14:00:39 637

C++ Templates(简体中文版)

C++ Templates(简体中文版)

2011-04-15

空空如也

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

TA关注的人

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