Showing items from 设计

嵌入式系统的代码设计——实现灵活可扩展的代码

书接上回,码意浓在与大师深入探讨了架构设计后,便投身于全新嵌入式系统的开发工作。忙碌的日子里,他的内心却始终萦绕着一个未解的疑惑:新系统要如何通过一套代码,灵活地应对全国各省的差异化需求?大师曾提及的“组件化”概念,这些组件要能够扩展、替换和编排,从而实现高度的可扩展性和可配置性。这些想法一直在他脑海中回响,但他却苦于无法将这一理念落地。于是,他决定再次拜访大师,寻求指点。

码意浓:大师,我又来叨扰了。

大师:哈哈,欢迎啊,小码。你无事不登三宝殿,是不是有什么新进展想和我分享?

继续阅读

嵌入式系统的架构设计——事件驱动架构的应用

码意浓是一位软件开发人员,他最近心情不错,因为他将要负责一个关键的嵌入式系统软件开发。他决定拜访自己多年的老师,听听大师的意见。

大师:码意浓,好久不见,看你气色不错,有什么新鲜事想聊聊吗?

码意浓:嘿,大师,我正好有个新项目想请教您。我们打算开发一个新的嵌入式系统来替换那个已经服役快20年的老古董了。

大师:哦,终于要更新换代了,这可是个大好事。那个老系统确实已经跟不上时代了,维护起来也是头疼得很。

码意浓:是啊,说起来都是泪。不过我也有点担心,新系统的设计可不是件容易的事。

大师:别担心,我们一步一步来。你给我讲讲这个新系统。

继续阅读

架构设计——你的依赖反转了吗?

最近我给一家传统的大型电子制造业公司做嵌入式系统平台架构咨询。他们的产品硬件部分已经组件化,但是每年都有一部分元器件单元要替换,相应的软件就要修改。最大的痛点就是由于系统耦合严重,一改就容易出问题,工作量还大,团队苦不堪言。

这样的问题不仅出现在嵌入式领域,也出现在传统的软件领域。例如你是否依赖于某个外部系统,想要替换掉它却发现代码已经耦合在一起动不了?又或者某个类库/中间件已经无法满足要求,却又不敢更换?

究竟应该如何处理好外部依赖呢?

继续阅读

写了这么多年代码,你真的了解SOLID吗?

尽管大家都认为SOLID是非常重要的设计原则,并且对每一条原则都耳熟能详,但我发现大部分开发者并没有真正理解。要获得最大收益,就必须理解它们之间的关系,并综合应用所有这些原则。只有把SOLID作为一个整体,才可能构建出坚实(Solid)的软件。遗憾的是,我们看到的书籍和文章都在罗列每个原则,没有把它们作为一个整体来看,甚至提出SOLID原则的Bob大叔也没能讲透彻。因此我尝试介绍一下我的理解。

继续阅读