【Linux】【软件平台】软件平台的修炼系列之零——概述

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 【Linux】【软件平台】软件平台的修炼系列之零——概述

缘起


  • 在任何一个大厂,譬如H司、Z司,都有自己的软件开发平台。陆续接触过一些软件平台,略有所得,记录于此。


  • 本系列文章,不会去关注具体的平台实现,仅关注平台设计的一些考虑、建议、准则等。


何为平台?


给平台下一个定义比较困难,但可以用下面的方式来定义这个概念:


  • 平台不是底层的OS,如Andriod、 Linux这种;


  • 平台不是上层应用,如ftp客户端、http服务器;


  • 平台和底层的OS、上层的应用有着密切的联系;


粗略的讲,掐头去尾,平台就是中间这段,平台基于依赖底层的OS,同时为上层业务开发提供基础设施,如定时器、进程抽象、日志等,相当于提供了系统的骨架、脚手架。


平台之利


研发效率


  • 随着IT及互联网行业的发展,IT相关行业竞争日益激烈,开发周期也变得越来越短,研发效率变得更加重要。


  • 如果没有平台,则每个产品开发都需要从0开始,那么在产品竞争中自然落于下风;而有了平台这个脚手架,对于研发人员快速实现产品功能,会起到巨大的助力作用。


  • 平台也可以去除一些研发过程中的浪费,比如几个模块都需要日志输出,如果分别搞一套日志框架或调试命令,是否太过于浪费了?


经验保留


  • 无平台之前,各人都是单兵作战,一些大牛虽然自己做的某个功能或框架非常NB,但是换个产品,换个人,就都不存在了,需要重新开发。而一旦该大牛毕业了,他的这套思想或实现就慢慢流落民间了。


  • 有了平台之后,可以把一些牛人的想法或设计的框架纳入平台的范畴,后续即使大牛走了,其之前设计的思想或框架被保留下来,这样对公司的损失也会相应降低。


维护成本


  • 没有平台的产品,一个需求,一千个人做,有一千个实现方案。有了平台之后,基本上千篇一律。


  • 比如进程间通讯,可以有N种方式,维护起来非常困难。如果平台实现了进程间通讯的话,业务不需要太关注具体的底层实现,故障机会也降低了。


统一界面


  • 平台为产品提供了统一界面,比如所有的日志输出都时同一个格式,所有进程注册都是一个模式,这种模式非常利于新人上手干活,无需关注底层细节。


平台之弊


大象跳舞


  • 平台是一把双刃剑,平台一旦建立起来,随着产品需求的日益增加,平台只能日益臃肿,大象还能跳舞吗?


锤子与钉子


  • 有了平台之后,什么需求、产品都会往平台上去靠,这样是否合理?是否平台限制了我们的选择、或左右了我们的价值观?


个人发展


  • 平台对于公司而言,可能的确有巨大的价值,从某种意义上而言,抹平(或缩小)了人与人的差距,但对个人技术的提高,却不是一件好事。


  • 有软件平台的开发,相当于用拐杖走路,走的多了,扔开拐杖是否依然会走路呢?


小结


  • 本文简单说明下平台的概念,存在的利弊等,后续将继续探讨平台设计的具体问题,敬请期待。
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
6月前
|
安全 网络协议 Linux
Linux网络名称空间概述
Linux网络名称空间是操作系统级别的一种虚拟化技术🔄,它允许创建隔离的网络环境🌐,使得每个环境拥有自己独立的网络资源,如IP地址📍、路由表🗺️、防火墙规则🔥等。这种技术是Linux内核功能的一部分,为不同的用户空间进程提供了一种创建和使用独立网络协议栈的方式。本文旨在全方面、多维度解释Linux网络名称空间的概念、必要性和作用。
Linux网络名称空间概述
|
6月前
|
缓存 运维 Linux
Linux系统调优详解(一)——系统调优概述与Top命令详解
Linux系统调优详解(一)——系统调优概述与Top命令详解
119 4
|
6月前
|
Shell Linux
Linux下的Shell基础——Shell概述和入门(一)
Linux下的Shell基础——Shell概述和入门(一)
65 0
Linux下的Shell基础——Shell概述和入门(一)
|
6月前
|
数据采集 存储 Ubuntu
Linux操作系统概述
【1月更文挑战第1天】Linux操作系统概述。
88 1
|
6月前
|
Linux C语言
Linux内核学习(七):linux kernel内核启动(一):概述篇
Linux内核学习(七):linux kernel内核启动(一):概述篇
111 0
|
Linux Shell Go
《Linux操作系统编程》第四章 屏幕编程器vi : 了解屏幕编辑器vi的概述和基本操作命令
《Linux操作系统编程》第四章 屏幕编程器vi : 了解屏幕编辑器vi的概述和基本操作命令
90 0
|
6月前
|
存储 运维 关系型数据库
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
|
2月前
|
Linux 测试技术 API
Linux PWM接口概述 【ChatGPT】
Linux PWM接口概述 【ChatGPT】
|
4月前
|
Linux 编译器 调度
【Linux】对共享库加载问题的深入理解——基本原理概述
【Linux】对共享库加载问题的深入理解——基本原理概述
|
4月前
|
Linux 调度
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间