zoukankan      html  css  js  c++  java
  • 软件史就是技术和业务不断分离的历史

    我们纵观计算机软件发展史,发现这部历史堪称一部技术和业务不断分离的历史。人们不断将业务逻辑从技术实现上分离出来,各种技术和架构方案的出现,也基本都是为这一目标服务。最早的时候我们用机器语言和汇编语言编程,直接将业务逻辑用 CPU 指令实现,计算机软件就是 CPU 指令的集合,此时技术和业务完全耦合,软件编程就是面向机器编程,用机器指令完成业务逻辑,当时我们在编程的时候思维方式是面向机器的,需要熟记机器指令。后来我们有了操作系统和高级编程语言,将软件和 CPU 指令分离开来,我们使用 Pascal、Cobal 这样的高级编程语言进行编程,并将程序运行在操作系统上。这时我们不再面向机器编程,而是面向业务逻辑和过程编程,这是业务逻辑与计算机技术的一次重要分离。再后来出现了面向对象的编程语言,这是人类编程史上的里程碑。我们编程的时候关注的重心,从机器、业务过程转移到业务对象本身,分析客观世界业务对象的关系和协作是怎样的,如何通过编程映射到软件上,这是编程思维的一次革命,业务和技术实现从思想上分离了。再后来出现各种编程框架,一方面使业务和技术分离得更加彻底,想象一下,如果不用这些框架,你自己编程监听 80 通信端口,从获取 HTTP 二进制流开始,到开发一个 Web 应用会是什么感觉。另一方面,这些框架也把复杂的业务流程本身解耦合,视图、业务、服务、存储各个层次模块独立开发、部署,通过框架整合成一个系统。回到流计算,固然我们可以用各种分布式技术实现大规模数据的实时流处理,但是我们更希望只要针对小数据量进行业务开发,然后丢到一个大规模服务器集群上,就可以对大规模实时数据进行流计算处理。也就是业务实现和大数据流处理技术分离,业务不需要关注技术,于是各种大数据流计算技术应运而生。其实,我们再看看互联网应用开发,也是逐渐向业务和技术分离的方向发展。比如,云计算以云服务的方式将各种分布式解决方案提供给开发者,使开发者无需关注分布式基础设施的部署和维护。目前比较热门的微服务、容器、服务编排、Serverless 等技术方案,它们则更进一步,使开发者只关注业务开发,将业务流程、资源调度和服务管理等技术方案分离开来。而物联网领域时髦的 FaaS,意思是函数即服务,就是开发者只要开发好函数,提交后就可以自动部署到整个物联网集群运行起来。总之,流计算就是将大规模实时计算的资源管理和数据流转都统一

  • 相关阅读:
    POJ 2112 二分+最大流
    POJ 3281 最大流
    枚举------暴力与优化
    动态规划入门
    简单二叉树
    花式WA
    18年第十二届东北四省赛
    18年第十三届黑龙江省赛
    ACM中的java的使用;
    CF#483(div2 C)
  • 原文地址:https://www.cnblogs.com/zourui4271/p/13601554.html
Copyright © 2011-2022 走看看