10 Beyond_cn

尚未进行身份认证

暂无相关简介

等级
TA的排名 6k+

明晰单元测试

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

2017-06-30 08:47:25

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

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

2017-06-28 09:00:29

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

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

2017-06-28 08:53:43

明晰软件架构与数据结构

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

2017-06-23 09:00:34

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

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

2017-06-13 08:50:55

软件架构师的能力与特质

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

2017-06-08 09:05:08

软件开发架构师的职责

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

2017-06-07 08:50:24

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

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

2017-06-02 08:44:50

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

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

2017-06-01 09:01:09

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

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

2017-05-18 09:02:54

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

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

2017-05-16 09:04:00

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

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

2017-05-10 09:02:02

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

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

2017-05-04 09:03:05

出色技术团队的关键要素

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

2017-05-04 08:54:00

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

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

2017-04-28 08:50:52

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

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

2017-04-28 08:42:13

再谈程序员思维

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

2017-04-27 08:46:02

浅谈技术管理

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

2017-04-27 08:38:14

技术管理猪鸡-1 开篇

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

2017-04-26 08:56:47

关于swift与objective-c混合编译

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

2015-09-23 18:50:28

查看更多

勋章 我的勋章
    暂无奖章