软件里的业务和技术

原创 2020-01-31 17:42  阅读

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

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

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

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

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

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

  一、生命周期 一个事物一旦出生,就必然会长大,变异,一旦长大,就面临着衰老,接下来就是消亡了,这个过程就称为一个事...

  2004年,当Eric Evans的那本《领域驱动设计——软件核心复杂性应对之道》(后文简称《领域驱动设计》)出版...

  摘要:陈康贤(花名龙隆,博客),淘宝技术部技术专家,著有《大型分布式网站架构设计与实践》一书,在分布式系统架构设计...

  王贤(花名贤哥),淘宝技术部技术专家,在分布式系统架构设计、高并发系统设计、系统稳定性保障等领域积累了较为丰富的实...

  寻味杭州二三记 七八月的天,杭州依然是骄阳似火,应朋友之邀,带她来杭城逛逛。今日的行程有断桥,三潭印月,白堤,雷...

版权声明:本文为原创文章,版权归 申博百家乐 所有,欢迎分享本文,转载请保留出处!
上一篇:申博百家乐信阳毛尖(00362HK)拟收购软件及信息技
下一篇:申博百家乐优炫软件的“小目标”:三到五年成