当前位置:网站首页>stm32和电机开发(从mcu到架构设计)
stm32和电机开发(从mcu到架构设计)
2022-07-03 12:33:00 【嵌入式-老费】
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱: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、架构可以让你有整体视野、离钱近、让更多人为你干活
做架构需要考虑的因素很多,这个时候就会要求你方方面面都能考虑周全。一个考虑不周全,就要推倒重来,这也是常有的事情。另外一个不好意思说出口的,就是软件架构很多时候就是想方案、出方法,和编写代码相比,软件架构师离钱要近的多。同时,有了整体视野,架构师还可以安排别人干活,不断拓展自己的能力边界,这也是一般程序员比不了的。所以,一般来说,架构师的收入要比普通程序员高很多,这也是原因之一。
边栏推荐
- [data mining review questions]
- Mysqlbetween implementation selects the data range between two values
- sitesCMS v3.1.0发布,上线微信小程序
- 2022-02-11 heap sorting and recursion
- Leetcode234 palindrome linked list
- [Database Principle and Application Tutorial (4th Edition | wechat Edition) Chen Zhibo] [Chapter III exercises]
- [exercise 7] [Database Principle]
- C graphical tutorial (Fourth Edition)_ Chapter 15 interface: interfacesamplep268
- 如何在微信小程序中获取用户位置?
- Some thoughts on business
猜你喜欢
[Database Principle and Application Tutorial (4th Edition | wechat Edition) Chen Zhibo] [Chapter III exercises]
Powerful avatar making artifact wechat applet
Glide question you cannot start a load for a destroyed activity
2022-02-14 incluxdb cluster write data writetoshard parsing
有限状态机FSM
2022-02-11 heap sorting and recursion
Huffman coding experiment report
【数据库原理及应用教程(第4版|微课版)陈志泊】【SQLServer2012综合练习】
并网-低电压穿越与孤岛并存分析
Elk note 24 -- replace logstash consumption log with gohangout
随机推荐
ncnn神经网络计算框架在香橙派OrangePi 3 LTS开发板中的使用介绍
Fabric.js 更换图片的3种方法(包括更换分组内的图片,以及存在缓存的情况)
Application of ncnn neural network computing framework in orange school orangepi 3 lts development board
SQL learning notes (I)
2022-02-14 analysis of the startup and request processing process of the incluxdb cluster Coordinator
Node.js: express + MySQL的使用
剑指 Offer 17. 打印从1到最大的n位数
IDEA 全文搜索快捷键Ctr+Shift+F失效问题
Quick learning 1.8 front and rear interfaces
[exercise 6] [Database Principle]
【習題七】【數據庫原理】
[judgment question] [short answer question] [Database Principle]
Dojo tutorials:getting started with deferrals source code and example execution summary
2022-02-11 heap sorting and recursion
[Database Principle and Application Tutorial (4th Edition | wechat Edition) Chen Zhibo] [Chapter 7 exercises]
C graphical tutorial (Fourth Edition)_ Chapter 18 enumerator and iterator: enumerator samplep340
[exercise 5] [Database Principle]
Fabric. JS three methods of changing pictures (including changing pictures in the group and caching)
Xctf mobile--app3 problem solving
sitesCMS v3.0.2发布,升级JFinal等依赖