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

缘起

  • 在任何一个大厂,譬如H司、Z司,都有自己的软件开发平台。陆续接触过一些软件平台,略有所得,记录于此。
  • 本系列文章,不会去关注具体的平台实现,仅关注平台设计的一些考虑、建议、准则等。

何为平台/h2>

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

  • 平台不是底层的OS,如Andriod、 Linux这种;
  • 平台不是上层应用,如ftp客户端、http服务器;
  • 平台和底层的OS、上层的应用有着密切的联系;
    粗略的讲,掐头去尾,平台就是中间这段,平台基于依赖底层的OS,同时为上层业务开发提供基础设施,如定时器、进程抽象、日志等,相当于提供了系统的骨架、脚手架。

平台之利

研发效率

  • 随着IT及互联网行业的发展,IT相关行业竞争日益激烈,开发周期也变得越来越短,研发效率变得更加重要。
  • 如果没有平台,则每个产品开发都需要从0开始,那么在产品竞争中自然落于下风;而有了平台这个脚手架,对于研发人员快速实现产品功能,会起到巨大的助力作用。
  • 平台也可以去除一些研发过程中的浪费,比如几个模块都需要日志输出,如果分别搞一套日志框架或调试命令,是否太过于浪费了/li>

经验保留

  • 无平台之前,各人都是单兵作战,一些大牛虽然自己做的某个功能或框架非常NB,但是换个产品,换个人,就都不存在了,需要重新开发。而一旦该大牛毕业了,他的这套思想或实现就慢慢流落民间了。
  • 有了平台之后,可以把一些牛人的想法或设计的框架纳入平台的范畴,后续即使大牛走了,其之前设计的思想或框架被保留下来,这样对公司的损失也会相应降低。

维护成本

  • 没有平台的产品,一个需求,一千个人做,有一千个实现方案。有了平台之后,基本上千篇一律。
  • 比如进程间通讯,可以有N种方式,维护起来非常困难。如果平台实现了进程间通讯的话,业务不需要太关注具体的底层实现,故障机会也降低了。

统一界面

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

平台之弊

大象跳舞

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

锤子与钉子

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

个人发展

  • 平台对于公司而言,可能的确有巨大的价值,从某种意义上而言,抹平(或缩小)了人与人的差距,但对个人技术的提高,却不是一件好事。
  • 有软件平台的开发,相当于用拐杖走路,走的多了,扔开拐杖是否依然会走路呢/li>

小结

  • 本文简单说明下平台的概念,存在的利弊等,后续将继续探讨平台设计的具体问题,敬请期待。

如本文对你有些许帮助,欢迎打赏或通过内文链接购买书籍:
支付宝打赏方式及我的购物小店

文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24697 人正在系统学习中

来源:花神庙码农

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年1月15日
下一篇 2022年1月15日

相关推荐