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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 

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

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

7、架构也需要及时更新

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

8、架构是讨论出来的

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

        此外,很多同学以为架构是闭门造出来的,把设计模式、uml、java开源框架、三层架构、分块分层做好,就可以做架构设计了,这其实是不对的。架构来自于业务,本身也是不断调整出来的,不可能就直接套用模板就可以。上面提到的部分只是操作层面的意义,本质还是需求的提炼、建模和抽象。这才是万变不离其中的宗旨,是一切工作的出发点。有了建模,再选择合适框架就好了。

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

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

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

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式-老费

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值