开始
这些天,总是看到有地方说,搭建XX系统的框架,然后又出现搭建XX系统的架构。很明显这个所谓的“架构”和“框架”,它们之间确实存在联系,但它们绝对不是一回事。所以我也来讨论讨论吧,写的不好,请看友多担待。
讨论
软件架构?框架之间?
- 软件架构:软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。设计软件架构就是把系统分解为一些部件,描述这些部件的职责及它们之间的协作行为。
- 软件框架:软件框架是面向领域(如 ERP、计算领域等)的、可复用的“半成品”软件,说白了吧就是面向行业的,它实现了该领域或行业的共性部分,并提供了一些定义良好的可变点以保证灵活性和可扩展性。也就是说软件框架是领域或行业分析结果的软件化,是领域或行业内最终应用的模板,是特定语言和技术的架构应用解决方案。
很明显软件的架构是一个系统草图,是关于软件设计方面的重要的决策,它将软件规范的分为各个部分,并且决定各部分内部结构以及各部分之间的联系。经过开发之后,软件架构可以体现在软件当中。而软件框架是软件的一部分,它是软件的半成品,为软件提供基础的结构和一些规范约束,然后开发人员在软件框架的基础上进行开发。软件架构和软件框架的联系 框架技术和架构技术的出现,都是为了解决系统日益复杂所带来的困难而采取的“分而治之”的思维的结果:先大局后局部,就出现了架构;先通用后专用,就出现了框架。架构是问题的抽象解决方案,关注大局而忽略细节;而框架是通用半成品,还必须根据具体需求进一步定制开发才能变成应用系统。
框架
说到这里了,如果作为程序员的你,如果你从事软件开发2-3年以上,你肯定能体会到什么是框架。互联网软件开发发展到至今,纵观各个行业,细化到各个公司,都会在3-4年中产生符合自己公司行业,业务的框架。这个框架一开始可能不健全,不完美,不过随着时间的推移,这个框架会不断的更新,不断的优化,以至于使用各个公司自身的软件研发的扩展。
问题
起初您的开发可能是各种拼凑模式,从而可以快速的搭建一个项目,甚至一个产品交付给了客户。那么当这个行业领域客户群体基于稳定的时候,公司一定需要有自己稳定可扩展的框架。这样,将来任何一个项目或者产品,都可以基于这个框架进行扩展开发,不至于当拿到开发需求的时候,每次都去搭建框架,费时费力不说,还不健全。
解决
必须在发展的过程中,逐渐完善这个软件架构,方便将来的软件开发。现在大部分公司已经做到这点,有专门的部门进行这种“平台”的搭建,其他部门只需要基于这个“平台”继续开发相应的业务功能即可。说到这里了,很多人就想了,你这不就说的“中间件”,“二次开发平台”,“中台”吗?是吧,都可以,因为没个公司对它的叫法不同,但是它起的作用,毋庸置疑都是相似的。
架构
软件架构引导开发人员设计软件框架,是软件框架的重要决策。说白了,您从事的什么行业或者领域的软件或产品开发,相关这个行业或者领域的软件架构就是引导着框架形成。其实很好理解,通信行业的软件架构绝对和金融行业的不会相同,每个公司的业务方向,它们的软件架构也会引导着适合自己公司的软件架构。
总结
所以当软件开发到了一定程度的时候,软件框架就应该形成,它的出现是因为所开发的软件所处的行业或领域,由这个行业或者领域的软件架构引导出来的。如果每次有了新的项目和产品的时候,总是从框架搭建开始,就不太合理了。首要任务,要形成符合自己的框架。