关注、星标公众号,直达精彩内容
注:此处嵌入式软件,特指基于Linux平台,单片机和其他rtos不在讨论范围。 笔者从事嵌入式软件开发有6,7个年头,bsp,驱动,应用软件,Android hall,framework等都有涉猎,平时除了关注嵌入式行业的发展,也多少对Web,后台服务端,分布式等方向的技术有一些关注。 近期有萌生换个行业方向的想法,想做做后台服务器相关的开发,由于之前工作中并没有这方面的实际需求,只是自己平时关注,了解了些知识, 比如:NIO,epoll,ngnix,zeromq,libevent,libuv,高并发,分布式,Redis,Python,tornado,django,涉猎比较杂,都了解个皮毛,不精。 意外的是,嵌入式屡屡被互联网行业鄙视,面试机会都寥寥无几,此时我想,到底是什么问题呢,难道嵌入式出身的,就这么不受待见吗? 想当初,嵌入式驱动开发,可是趋之若鹜的技术方向(有点夸张,不过10年前的嵌入式,可是听着比做Java web的要牛逼些噢),问题总是有原因的,我说下自己的理解: 打开拉勾等招聘网站,搜索架构师,会出现各种系统架构师,web架构师,后台服务端架构师等等,但是唯独很难看到嵌入式软件架构师。 嵌入式软件不需要架构吗,驱动不需要架构吗?答案是当然需要,但为什么没有这方面的职位? 我的看法是:目前国内的嵌入式开发主要分为嵌入式底层开发和嵌入式应用开发,嵌入式的底层开发一般叫做驱动开发,或者bsp开发,有时也有称之为linux内核开发,名字听着都很高大上。 Linux kernel 的架构师是 Linus 等一众内核开发维护者,因为本身Linux kernel 或者操作系统就是一个通用的平台,解决的是通用问题, Linux开源届的大牛都已经制定好了架构规则,留给可发挥的地方并不多,大部分工作只需要按照规则框架填充就可以了,而且以目前国内大部分公司的业务需求,只是在做外围设备的集成, 嵌入式平台的porting,搭建裁剪,业务需求完全不会超过kernel里提供的功能范围,导致没有什么新的架构需要开发人员去设计,实现。 那嵌入式bsp开发人员都在做什么:除了调试多种多样的外设,替硬件擦屁股,就是解些稳定性的bug了, ( 这里对具体工作不详细描述了,调试外设只会增加一些经验,增加广度,对提高深度贡献不大,只是按不会调试 -> 会调试 -> 调试的快这个路线发展,而解稳定性问题确实是需要一些积累经验) 而嵌入式应用软件开发,一般行外人会觉得业务逻辑比较简单,容易被很多人忽略,所以招聘方也会感觉没有什么必要找架构师级别的了。 至此感觉嵌入式技术相关的行业的确不需要架构师,被互联网行业的鄙视也没什么大惊小怪的,而对于嵌入式底层的开发,有能力对kernel,驱动架构提出架构层优化的,国内的开发人员应该为数不多。 所以对于大部分普通人,还是不要“妄想”做 Linux kernel 的架构师了(当然我相信国人中一定存在有这个能力的大牛),发现和解决一些业务上的 bug,可能会更靠谱些。 那么,对于嵌入式应用层开发,你认为,需要进行嵌入式软件架构设计吗? 来源:https://www.cnblogs.com/lizhensheng/p/11117388.html 版权声明:本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。
‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧
关注我的微信公众号,回复“星球”加入知识星球,有问必答。
点击“阅读原文”查看知识星球详情,欢迎点分享、收藏、点赞、在看。