软件开发
文章平均质量分 93
至简李云
近十年通讯行业从业经验,曾任 Motorola 系统架构师;近十年就职于阿里巴巴集团,曾负责 UC 浏览器电脑版技术团队和阿里巴巴集团内部的服务网格(Service Mesh)技术的落地工作,现在阿里云负责服务网格专有云技术工作;具有硬件开发经验的软件技术专家;著有在嵌入式领域具有很好口碑的图书——《专业嵌入式软件开发》;《技术团队效能动力模型》的提出者;浙江大学MBA,具有管理思维的软件工程师;陪伴两个孩子一起成长的工程师父亲。
展开
-
高质量软件架构的唯一核心指标
我们并不担心软件的不完美,但担心软件演进时因为泥泞而缓慢。原创 2022-07-03 21:38:41 · 947 阅读 · 1 评论 -
软件设计的真谛
假设我们身边的一切都是用制造材料加以描述的:“空调”不是“空调”,而是“由金属和塑料做成的物体”;“书”不是“书”,而是“由纤维和墨做成的物体”。沟通时我们也不用“空调”和“书”这样的词汇,而是“金属和塑料做成的物体”和“纤维和墨做成的物体”。可以想象大脑在面对这些信息时会让我们觉得多么的痛苦,显然这样的事情在现实中很少发生,因为我们的大脑具备很强的抽象能力 ,会通过抽象塑造“空调”和“书”这样的原创 2012-04-29 17:24:21 · 4053 阅读 · 3 评论 -
单元测试实施解惑——别“桩”了!
我在《单元测试实施解惑(一)》中指出,使用象Cmockery这样的测试框架,将所需测试的模块通过打桩的方法实施单元测试并不是最有效的方法。在这篇文章中,让我们一同来探索更好的方法。在继续探索之前,让我从传统单元测试开始引入所主张的方法。图1中所示的分别是某内存池模块(mpool.c)和双向链表模块(dll.c)的代码片断,现在让我们聚焦于为内存池模块的mpool_buffer_allo原创 2012-09-21 18:29:52 · 6551 阅读 · 1 评论 -
缓解可查错性问题的手段——单元测试
从本月初开始,我加入了某基站开发团队。尽管我在通讯行业工作快10年了,但这是头一次工作于机站项目,所需学习的东西自然很多,还是那句话 — 有挑战才会有进步。在此我想与读者分享过去三周我就软件的可查错性的一点新体会。现从事的项目是真正的嵌入式系统,机站上的MAC和PHY程序是运行在DSP之上的。加入团队伊始,同事告诉我,团队在碰到Crash这样的问题时,显得很是被动。经过我俩几番的交谈,原创 2012-08-05 21:16:42 · 5252 阅读 · 2 评论 -
单元测试实施解惑——无缝整合
在刚过去的一个月中,我完成了一个小软件框架的设计与实现。期间由于并行开发的需要,在没有对代码完成单元测试的情形下我将之check in到了SVN的主干上,随后的心情很是忐忑。因为我知道我一定会犯错(事实也证明在单元测试完成之前就发现了两个缺陷),害怕给他人带来麻烦并影响自己的形象。另外,由于对刚加入项目的单元测试环境完全不了解,所以在该框架的前期开发工作中我并没有运用单元测试渐进地保证原创 2012-09-02 22:18:06 · 6997 阅读 · 0 评论 -
实施软件平台与框架开发的注意事项
原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和本声明,否则将追究法律责任。http://blog.csdn.net/hzliyun/article/details/7078298。我在《专业嵌入式软件开发 — 全面走向高质高效编程》一书中用一章的内容指出,软件平台与框架开发是高质软件的打造之路。这里想进一步谈一谈实施这一高质软件打造方法所需注原创 2011-12-16 17:35:19 · 2316 阅读 · 0 评论 -
软件平台与框架的生命周期
原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和本声明,否则将追究法律责任。http://blog.csdn.net/hzliyun/article/details/7170501。以静态的思维看待平台与框架开发,极有可能最终导致所获得的平台与框架是一个臃肿、易出错的软件包袱。出现这种状况的原因,是我们没有明白平台与框架是存在生命周期的。原创 2012-01-01 19:58:51 · 2501 阅读 · 1 评论 -
软件开发架构师的职责
原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和本声明,否则将追究法律责任。http://blog.csdn.net/hzliyun/article/details/7078905。我在Motorola的网络部(注:今年4月份该部门被Nokia Siemens Networks收购,所以我现在是NSN的员工)担任架构师(Software Archi原创 2011-12-16 22:22:46 · 3879 阅读 · 0 评论 -
软件系统架构师成长之路(一)
原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和本声明,否则将追究法律责任。http://blog.csdn.net/hzliyun/article/details/7078967。几个月前,公司因为战略调整,将位于美国的系统工程(system engineering)部门的工作转到了国内。也因为这次调整,我有幸以系统架构师(system arch原创 2011-12-16 22:39:25 · 3638 阅读 · 1 评论 -
软件架构师的能力与特质
原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和本声明,否则将追究法律责任。http://blog.csdn.net/hzliyun/article/details/7078959。软件开发工程师的职业发展无非两大类:一是做“官”,从事管理工作;二则继续从事技术工作。对于后者,软件架构师(software architect)是很多软件开发工程师追原创 2011-12-16 22:37:34 · 4553 阅读 · 2 评论 -
软件开发:个人与团队是永远的核心
注:本文节选自我正在创作的第二本书《C++跨平台与框架开发》,其中一些措词并未就博文进行调整。读者阅读时请注意这一点。 Brooks在他的《人月神话》中指出软件行业没有“银弹”,如果将平台与框架开发当作是软件行业的“银弹”可就大错特错了,充其量它只是“龙骑士 ”。软件行业没有“银弹”的原因是,软件开发工作与人——个体和由个体组成的团队,息息相关。再好的方法论都需要由个体去实施,原创 2012-05-13 10:02:21 · 10182 阅读 · 0 评论 -
面向对象设计的优点
一旦明白了软件设计的真谛(参见《软件设计的真谛》),我们就更能理解面向对象设计的优点。简单说来,它更便于我们在软件中构建更真实的虚拟世界。首先,对象的引入方便了在软件虚拟世界中模拟现实世界。现实世界是由很多独立的抽象或具体物体组成的,比如房子、汽车、空调、书等等。为了构建更真实的虚拟世界,在软件中需要存在用于表达类似现实物体的编程元素,这正是引入对象概念的意义所在。以对象为设计中心原创 2012-05-04 17:17:07 · 6619 阅读 · 0 评论 -
明晰单元测试
最近,身边的一位朋友因为需要在其单位与同事分享单元测试(Unit Test,UT)方面的知识,邀我对他所准备的PPT进行审阅。在审阅的过程中我发现,他在PPT中指出:“实际工作中,写好程序后对程序功能的调试就是一种单元测试”。由于我知道这位朋友并没有运用单元测试的经验,所以我问到:“你的这一认识是从哪里获得的?”,朋友答曰:“从网上搜来的”。无独有偶,这两天我在微博上看到了对单元测试相似的理解:“原创 2012-04-13 08:23:28 · 2587 阅读 · 2 评论 -
高质高效软件开发组织能力模型
原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和本声明,否则将追究法律责任。http://blog.csdn.net/hzliyun/article/details/7078896。背景至今,我在Motorola网络部工作超过了5年,所在的产品线也是采用统一软件开发过程和敏捷思想(但不是SCRUM)来组织软件开发活动的,但这5年多的工作经历从未原创 2011-12-16 22:21:16 · 3757 阅读 · 3 评论 -
明晰软件架构与数据结构
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明,否则将追究法律责任。http://blog.csdn.net/hzliyun/article/details/7079444。相信大多软件工程师在谈及软件架构(software architecture)时立刻会联想到数据结构(data structure),这是正常的反应。但是,有些工程师原创 2011-12-17 10:28:40 · 2674 阅读 · 0 评论 -
软件设计中的“自上而下”和“自下而上”
原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和本声明,否则将追究法律责任。http://blog.csdn.net/hzliyun/article/details/7079464。在切入主题之前先要了解“上”与“下”的含意是什么,这需要从图1中找答案。图中,应用层在最上面,其下依次是框架、平台、库和操作系统层,因此“上”是指靠近应用层原创 2011-12-17 10:32:53 · 10688 阅读 · 0 评论