ITPub博客

首页 > 数据库 > 数据库开发技术 > 隐藏在顶级软件项目背后的5点设计哲学

隐藏在顶级软件项目背后的5点设计哲学

原创 数据库开发技术 作者:WU双 时间:2021-03-19 09:00:00 0 删除 编辑
聊技术,不止于技术

世界观是你看世界的观点,唯心或是唯物。
而方法论是指导你改造世界的方法。
哲学是反思的思想。
那些顶级的软件项目之所以成为顶级,一定有他们在实践过程中反思的思想,这些反思的思想更进一步凝结为软件设计哲学,指导着他们走向更远。
今天来聊聊顶级软件项目Spring背后的设计哲学,相信一定会对你的软件项目设计有所启发。

1

Spring的设计哲学

Spring makes Java simple.
Spring自诞生以来,在简化Java开发方面发挥了巨大的作用,不夸张地说现在很多Java程序员没有Spring可能都无法进行项目开发了。
Spring作为软件开发框架,本身开发起来是很有难度的。
如果将软件开发难度分为三个等级,那从简单到困难应该是以下顺序:
一般的工程项目 — 第三方工具库 — 软件框架。
一般的工程项目包括我们绝大多数程序员开发的各类Web应用、软件系统。
第三方工具库是我们开发提供给别人使用的软件库,比如Apache的commons包,Google的guava包,能够看出第三方工具库是开发给别人用的软件库,所以要求自然要高一些。

软件框架就比如Spring Framework,软件框架如其名,它已经为你搭好了整个软件开发的框框条条,你只需要也只能在这个框架下面进行你的开发工作,遵循它的规则能让你快速有效地进行开发,当然它也给你带来了诸多的限制。
由此可以看出Spring作为软件框架开发难度之大,但不可否认它又是如此成功,我们下面就来看看它背后的设计哲学。(下面是我对Spring设计哲学的意译外加个人的理解,附上原文及链接。)

https://docs.spring.io/spring-framework/docs/current/reference/html/overview.html#overview-philosophy
(1)提供各个级别的选择。你可以尽可能地推迟你的决策。
这一点可以概括为灵活性。
想要换个连接池,只需要更改下配置就行,想要换个Json序列化库,需要做的也只是更改下配置。可以说是这条设计哲学促使Spring去集成众多的第三方框架,任何时候想要更改你的实现,只需要修改下配置,然后将你的实现注入进Spring容器就行(当然现在用Spring Boot,这部分也不需要你自己做了)。
(2)容纳不同的观点。不会限制你该如何去做。
这一点可以概括为包容性。
包容性在Spring的Bean注入上表现得比较明显,你可以通过注解的方式注入,也可以通过配置文件的方式注入,Spring不会限制你的用法。用注解注入的方法好还是用配置文件注入的方法好可以有争议,但Spring都支持,这里也能够反映出Spring的包容性。
(3)强大的向后兼容性。Spring不会轻易破坏不同版本间的兼容性。
这一点可以概括为兼容性。
版本升级是需要谨慎考虑的事情,有很多时候升级甚至会造成软件的不可用。可以看出Spring的设计不仅考虑了软件开发态,更考虑到了软件的升级维护态。
(4)谨慎的API设计。
这一点是谨慎。
API是暴露给用户的接口,可以看出Spring在面对任何暴露给用户的接口的谨慎。API可以有不同的实现,但设计不好的API造成的影响就大得多了。想象一下JDBC接口要修改一下,多少数据库的驱动程序得跟着修改。
(5)高标准的代码、文档质量。
这一点是对自身的高要求。
高质量的代码对于软件来讲意味着更好的稳定性、可维护性。文档单独提出来,可以看出文档对于软件的重要性。看过Spring源码的估计都知道,清晰的代码,详尽的注释,不得不说是挺美观的。

2

Spring的设计哲学带给
我们的启发

其实不光光是Spring,还有很多顶级软件项目都有他们自己的设计哲学,比如linux,比如guava。
换句话说,也正是这些软件项目背后的设计哲学一步步指导并成就了它们本身。
现在回过头来看一看我们自己的产品,是不是感觉不能盲目往前走,也要时不时地回过头来反思、思考、总结。
灵活、包容、兼容、谨慎以及高要求,可能是每个软件项目都需要的指导思想。
你的产品设计哲学是什么呢?

推荐阅读:

《如何快速高效进行软件选型》

《助你项目管理成功的4点经验》



聊技术,不止于技术。

在这里我会分享技术文章、管理知识以及个人的思想感悟,欢迎点击关注。

原文作者:WU双;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2021-03-09

  • 博文量
    20
  • 访问量
    8353