单片机学习程序员@产品

软件里的业务和技术

2019-03-03  本文已影响52人  燃斧滴凡人

最近听到一个观点,软件公司分为“技术型公司”和“业务型公司”,我这篇文章就聊一下业务和技术的关系。

早上听到这个观点,上午就面试了一位求职者,心血来潮我就问了“你对业务和技术这二者的关系、重要性怎么看”

我不知道这个问题问得怎么样,先说一下我的想法。这是一个很开放的题,考察社招同学从业这么多年对于软件本质的理解,如果应聘者格局比较小的话也可以考察应聘者是否真的适合大规模的编码工作。一说到这两个词,首先想到的应该是业务架构、系统架构、技术架构,业务来自需求方与业务分析师的统一语言,技术来自开发者和业务分析师的统一语言,这是描述软件架构的两个不同方面。职业发展方向上,程序员可以向纯技术开发、业务分析、敏捷管理三个方向发展,管理方向暂且不论,业务分析和技术开发进阶到最后都应该是架构师。软件细节上,业务会对应到特性上,技术会对应到模块上,特性是软件的价值,模块是软件的基本组成单元。

技术是实现业务的支撑,技术都是在应用中前进的,架构决策从来都是业务驱动的。顺着这个问题面试官可以接着聊一下DDD相关的东西。

很多人喜欢抛开业务谈技术,认为技术学到手,走到哪里都吃得开。这个观点是错误的。很奇怪一件事,很多人在学校的时候,连一点职业生涯规划都没有了解过就一下跳进了社会的茫茫人海里,三五年后分不清到底哪个秃顶的是当初的自己。

在学校我是做嵌入式的,做过智能家居、做过信息化改造实验室和屠宰场、做过网站、做过类似游戏的训练系统,吧啦吧啦一大堆,认为自己很厉害了。后来我去面试的时候才发现,企业想要的不是什么都会的人,而是在一个方向有专长而且正好与企业需求契合的人。以上,是大部分嵌入式做久了的人的通病,算是一种学生思维。后来看职业生涯相关书籍的时候才了解到,职业里的知识面不是越宽越好,是越专越好,你要的不是可以去很多公司面试,而是只有那么两三家可去,但只要你去,一定会高薪录用。

回过头来接着说什么叫技术型公司。我理解的技术型公司是谷歌、亚马逊这种研究计算机理论的公司,目光长远,踏实深耕。这类公司有共性特点,行业专一,专一才有创新,从这个意义上讲,英特尔、高通的芯片业务,华为、中兴、爱立信的基站业务,苹果、华为、三星的手机业务,等等还有很多,都是技术型公司,都应该是软件开发者值得去的地方。不过这么一看,所谓“技术型”,不如叫“创新驱动型”。

话说回来,软件业务千差万别,但核心是不变的:高内聚、低耦合,solid原则,正交四原则,接口设计原则,简单设计原则,模块化和分层,TDD,DDD,分布式,微服务,性能优化,均衡,组合式编程。

上一篇下一篇

猜你喜欢

热点阅读