看看你处于哪一层?

企业动态
粗略地分一下,程序员的日常工作基本上会被划分到这三层: 系统层, 中间件层,应用层。

 粗略地分一下,程序员的日常工作基本上会被划分到这三层: 系统层, 中间件层,应用层。

我们从下到上,逐层走一下,看看每一层都在做什么。

1

系统层指的是操作系统,数据库,编译器,TCP/IP协议栈,虚拟机等。另外,我把编程语言也归入到这一层。

能在这一层工作的程序员基本上都是大神。比如写Linux的Linus Torvalds, 一边读协议,一边写TCP/IP实现的Bill Joy。

用汇编写Delphi(Object Pascal)编译器的Anders,还有各种编程语言的发明人, 就不一一列举了。

这一层的人大部分都在默默地工作,构建我们赖以生存的世界,他们深藏功与名,很少对外发出的声音,因为即使他们发出了声音,很多人也听不懂,因为太专业,太精深。

这一层的人有两个特点:

(1) 对计算机是真的热爱,否则不会探究到这么深的层次,并且能耐得住寂寞在这一层工作。

(2) 能力超强。因为这一层的工作性质要求高性能,高可靠,需要和硬件打交道,需要处理巨多的细节,一般人真搞不了。

2

中间件层很有趣,有些东西系统层不想管,应用层又管不了,只好交个中间件来做。

传统的中间件是像WebLogic, Websphere, JBoss,Tomcat, MQ这样的东西, 如果我把他泛化一下,也可以把Docker, Elastic Search , Kafka , Spring , Zookeeper,Ngnix,Redis,Dubbo等给包括进来。 还可以包括一些公司的技术平台部门所推出的,供整个公司试用的软件和系统。

在这一层工作的人发出的声音会有很多人侧耳倾听,因为用户众多,大家都能听明白。

程序员对这一层的关注非常多,出了什么新技术?有什么新特性?布道师出来写一些文章,“鼓吹”一番,热闹非凡。

对于程序员来说,能够在这一层工作,也非常有成就感:

(1) 直接参与开发,当你开始做通用的组件和框架的时候,对于技术能力,抽象能力的要求相比应用层就会大大提高。

(2) 对某个领域极为精通,成为专家,例如缓存、搜索、分布式、负载均衡等。

3

最后是应用层,主要使用系统层和中间层的东西来实现业务逻辑,戏称为增删改查。

绝大部分人都在这一层工作,尤其是刚刚培训出来的同学,肯定要在这一层呆上一段时间,也有可能一直呆下去,做一辈子。

千万别小看这一层,它需要把业务需求直接转化成技术实现,是直接产生价值的。

比较“悲催”的是,应用层的同学需要掌握下面两层的知识,不一定精深,但是需要知道原理。

在这一层工作,关注点是如何更好更快地实现业务需求,及后续的变更,所以要有面向对象的设计,设计模式,敏捷开发,持续集成,持续交付,DevOps,领域驱动开发,TDD, Code Review等各种工程实践。

这一层也有大师级别的人物,比如Martin Fowler,他写了《分析模式》,《企业应用架构》,《重构》等经典书籍,特别擅长把业界的实践总结成概念。

再比如Robert Martin,面向对象设计的大牛,他10多年前的书《敏捷软件开发:原则,模式与实践》中提出的SOLID原则,至今仍然是OOD领域的指导原则。

为了把这一层的的事情做好,需要有个特殊的岗位来负责整个系统的设计,这个岗位就是:架构师。

架构师一般是资深的程序员,有丰富的实践经验,知道技术的优缺点,能根据具体的需求,设计合适的技术方案,建立合适的技术组件并连接起来,从而解决问题。

4

系统层,中间件层,应用层并没有高下之分,每一层都有足够多的东西供你去探索,去创造。

如果你喜欢开发一些东西,让很多程序员使用,可以考虑进入中间件层,比如公司的技术平台部。

如果你真的喜欢系统层的东西,那就要选定方向,比如数据库,然后深挖,现在国内已经有公司提供这样的工作机会让你去定制OS,定制数据库,定制JVM。

如果你喜欢在应用层解决实际业务问题,可以考虑向架构师方向发展。

【本文为51CTO专栏作者“刘欣”的原创稿件,转载请通过作者微信公众号coderising获取授权】

 

戳这里,看该作者更多好文

责任编辑:武晓燕 来源: 51CTO专栏
相关推荐

2018-04-11 23:26:44

2021-10-29 21:26:39

前端引擎层类型

2009-06-10 09:58:14

程序员职场层次

2010-11-10 10:39:19

2019-08-12 11:18:12

机器学习数据集模型

2010-08-02 11:04:25

Flex程序员

2022-02-28 18:05:00

程序员编程语言操作系统

2020-09-07 06:38:54

HA高可用协议

2018-04-10 12:04:25

程序员互联网网络

2023-07-31 08:00:19

2019-11-07 13:22:15

戴尔

2009-10-14 08:41:41

Windows 7XP模式支持CPU

2018-09-27 21:53:51

综合布线网络

2022-09-11 15:02:21

JavaScriptTypeScript数据

2020-04-16 09:35:53

数据科学机器学习数据分析

2018-10-23 17:08:11

CIOIT人才

2013-10-22 10:40:26

2021-09-08 08:40:59

蓝牙芯片漏洞

2021-02-16 16:43:21

工具性能调优

2022-01-11 20:43:16

TCPIP模型
点赞
收藏

51CTO技术栈公众号