8

stm32和电机开发(从mcu到架构设计)

 1 year ago
source link: https://blog.csdn.net/feixiaoxing/article/details/125577247
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

stm32和电机开发(从mcu到架构设计)

original.png
嵌入式-老费 newUpTime2.png 已于 2022-07-02 21:43:14 修改 articleReadEyes2.png 18

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        有过外资企业工作经验的同学应该都有这样的感觉,好像老外都很擅长做架构设计。与此相比较,国内的同学似乎更擅长编写代码。同样的设计,老外比较喜欢画图,文字部分有,但也是文字和图各一半;国内同学写文档比较少,更喜欢写代码,就算写文档也是文字和表格占了一大部分。

        细细想来,出现这种差别,既有文化的原因、差异,也有产业分割的区别,同时也有东西方工作方法的差别。西方比较看重的是沟通、协同、接口定义清楚;东方讲究分工,功能完整,快速推进。

        就拿架构设计来说,不管是业务层面的,还是技术层面,画图是少不了的。但是画图是为了构建模型,挖掘出问题的主要矛盾、主要流程,不是为了画图而画图。如果架构设计只是停留在纸面上,落不了地,那真的成了ppt架构师了。

1、架构师不适合刚工作的新手

        对于新手来说,可能个人开发软件这部分还不是很熟悉,业务也不了解,这个时候就开始做架构师不太合适。最好等有了一定工作经验,比如3~5年之后慢慢从事架构师比较合适。

2、架构师也不是职业的终点

        说白了,架构师只是把需求转化为一个一个的软件模块、软件子系统、甚至是跨pc分布式系统,提炼出接口和主流程。具体的模块开发还依赖于工程师和开发团队。就算架构师做好了,他的工作也需要别人的配合,才能做出完成的软件产品。

3、软件架构师需要自己写代码

        如果架构师自己不写代码,他就没有办法知道问题的复杂度,也没有办法评估软件模块的开发时间,所以一般来说架构师需要自己写代码的。

4、沟通对架构师来说,和技术一样重要

        架构设计本质来说是一个妥协的艺术,它需要受到人力、时间、成本、知识积累、复杂度等各种条件的制约。从这个角度说,他需要和不同的人沟通,比如和产品经济沟通,和开发人员沟通,和项目经理沟通等等,所以,沟通对架构师非常重要。

5、抽象能力是区分架构师的重要标准

        很多人不明白,面向对象为啥要有多态这个属性。其实,这主要还是对软件工程不了解。软件开发过程中,对于林林总总的功能,必须想办法提取出主流程。此外,软件开发好后,一般也会有各种各样新的变更,如果对原有的逻辑没有抽象能力,对于这些新需求如果只是用打补丁的方法去解决,代码质量只会越来越差,最后变得没有办法使用和维护。

6、架构图就是架构师的最终产出

        从纷繁复杂的需求中,构建出合理架构,一直到最后代码生成、编译和部署,这部分需要很多的架构图。uml图就是不错的一种方法。架构在模块级别和重点子功能领域,每一种uml图都可以拿过来使用。比如说,状态机不是说高层模块用了,底层开发就不能用,没有这种事。

19f8cafd64e540d681a20b4d7ac9296d.png

         实际架构过程中,大家不要有任何思想包袱,其他的图也可以拿过来画,比如说结构图、泳道图、脑图、鱼骨图、甘特图、cad图、表图、拓扑图等等,这些都可以拿过来使用。我个人使用比较多的是openoffice的draw软件,有人喜欢用processon,都是可以的。

        就算是电路图,也可以用架构设计来完成的,比如soc核心板

168a65bc52854358b62c72874ac29415.png

7、架构也需要及时更新

        很多同学不喜欢写文档的原因是因为代码更新很快,有时候更新到文档比较麻烦。但是架构也是一样的,如果有新的变更没有及时更新,那么架构最终也会失去它的意义的,没有人会看一份过时的架构图和文档的。

8、架构是讨论出来的

        很多人人为架构是讨论出来的,其实未必。很多时候架构是讨论出来的。首先,架构师的知识面也是有一定局限性的,此外,经过讨论的架构在实施时遇到的阻力更小;最后既然是讨论,就会有一个说服和被说服的过程,这就要求架构师有全局视野,在实际开发前必须反复推敲自己的架构设计,没有明显的漏洞,以免贻笑大方。

9、架构不是框架的plus版本

        架构是以业务为核心的,不是以框架为核心的。架构定下来,什么框架合适用什么框架,千万不要有先入为主的概念。自己会用rtos,就所有项目都用rtos。这样只会徒增烦恼,让开发的同学手足无措,背离了架构设计的初衷。

10、架构可以让你有整体视野、离钱近、让更多人为你干活

        做架构需要考虑的因素很多,这个时候就会要求你方方面面都能考虑周全。一个考虑不周全,就要推倒重来,这也是常有的事情。另外一个不好意思说出口的,就是软件架构很多时候就是想方案、出方法,和编写代码相比,软件架构师离钱要近的多。同时,有了整体视野,架构师还可以安排别人干活,不断拓展自己的能力边界,这也是一般程序员比不了的。所以,一般来说,架构师的收入要比普通程序员高很多,这也是原因之一。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK