业务软件的本质,超越CRUD

经常写业务软件的开发会吐槽crud没有技术含量,想学新技术,但是学完新技术会发现又进入了crud的循环(学完mq发现只会发送和接收消息,学完redis发现只会读写缓存,学完zookeeper发现只会操作node节点)。这种现象产生的原因是什么的?因为关注点一直是逻辑,而不是存储。而一项技术的底层和原理无非逻辑与存储
一个业务软件本质由两个部分组成:业务数据+业务逻辑,这有点像是面向过程=数据结构+算法,这道出了软件开发本质。
业务数据层本质就是数据存储,storage,从组成形式来说,分为内存和磁盘,这就划分了数据存储技术,data container,data store,data base,业务数据的价值和重要性决定了存储的技术选型。
这里只是一种简化认识~

业务逻辑层本质就是对数据操作,compute,就是crud,我加一条:mapping(convert),不同层间的映射,不同系统间的映射。分布式的逻辑有map-reduce,fork-join。如果公司对存储层的api封装的足够好,那么就可以专注于业务逻辑了。作为个人不能止步于此,作为公司要专注于业务,产品。

很多分布式技术的应用与选型,大多来自数据层的选型,设计一个分布式系统一个出发点就是存储结构的设计。扩缩性,高可用,高性能的难点也集中在了数据层。因为数据层有状态。逻辑层一般无状态的,但是具体操作可能是状态的。扩缩很简单,只需要增加节点。

其实crud是超越不了的,业务软件开发本质决定了其特性,只能增加对crud的理解。深入crud的实现,可以深入存储层的研究。

原文地址:http://blog.51cto.com/thinklili/2322766

时间: 2024-10-09 09:45:42

业务软件的本质,超越CRUD的相关文章

Atitit 深入理解软件的本质 attilax总结 软件三原则"三次原则"是DRY原则和YAGNI原则的折

Atitit 深入理解软件的本质 attilax总结 软件三原则"三次原则"是DRY原则和YAGNI原则的折 1.1.1. 软件的本质:抽象  1 1.2. 软件开发的过程就是不断抽象的过程 1)机器语言--> 汇编语言-->高级语言,这就是一个不断抽象的过程,1 1.3. 代码的抽象三原则_软件工程_酷勤网.htm1 1.4. "软件是存储.通信.UI(user interface)和业务逻辑的紧密结合体2 1.5. 在软件的生命周期中,较稳定的是存储和通信,最

阅读一些关于软件开发本质和开发方法的文章的体会与心得

在本次软件工程课程当中,我已经经历了一次比较成功的个人项目,一次比较失败的结对编程项目,以及即将开始的团队项目alpha阶段.在这段时间,应教师的要求,我开始阅读一些有关软件开发本质和开发方法的文章,在此记录一些体会与心得. 文章一: No Silver Bullet: Essence and Accidents of Software Engineering by Frederick P. Brooks, Jr. 文章网址: http://www.cs.umd.edu/class/spring

软件的本质

http://blog.csdn.net/pitt_xiong/article/details/7851368 软件是一种固化的思维.其根本组成是概念和逻辑.软件世界中的一切的故事始于一个机器模型,而这个基本的机器模型并不复杂,甚至可以用三个关键概念来概括:指令.数据以及栈.其逻辑也比较简单,即按照指定的顺序,逐步执行各条指令.但也就是这样一个简单的模型,支撑起了整个软件的世界.软件构建的过程就是从客观世界中的概念和逻辑向机器模型逐步进行映射的过程.由于编译器(或解释器)的存在,最后一重映射已经

关于软件开发本质和开发方法的一些文章的读后感

       看了几篇与软件工程的瀑布.大泥球.教堂.集市和银弹等概念相关的经典文章,简单的谈一下自己的一些理解. 一.银弹 从自然法则上来说,我不相信银弹不会出现.或许银弹的发现会是软件工程发展的分水岭,只是不知道会不会到来,什么时候会到来. 这篇文章存在也不是一年两年了,而文章所提出的问题却还是没有得到根本性的改变.在做了这几次简单的只算得上编程而称不上软件项目的作业后,感触尤为深刻. 作者首先提出一个问题:软件开发技术的落后是由于存在软硬件发展的不协调和畸形.软件的发展远跟不上硬件.一开始

阅读软件开发本质和方法的收获

英语水品有限,好几篇英文文章看了也不懂,所以也没有看完,下面主要说说有中文翻译的几篇文章.又由于没有真正参与过大的软件工程,不好针对作者的观点进行评价,要读懂作者的意思就已经很困难了.<有人负责,才有质量:写给在集市中迷失的一代>作者觉得.COM时代泛滥是对IT/CS的一场灾难,他反对Raymond在其书中称颂的集市模式,同意Brooks在<设计原本>中提出的所谓质量只有在某人对它负责时才有意义的观点,并且认 为Unix大教堂就是一个很好的论据.作者的意思大概就是软件的架构应该由一

《SICP》读后感:关于软件本质的一点思考

摘要:软件本身不是目的,人类的需求才是目的,而软件只是达到目的的手段. 软件的本质在于控制复杂性,这个复杂性并非来自于计算机,也并非来自于现实世界,而是来自于人类的思维和知识体系. 软件被使用的广泛性,在于它所满足的人类需求的广泛性. 什么是软件? 从一个简单的例子说起,比如我想计算两个数的和,于是写下这样的python代码 print a + b 但是,这段代码是我的最终目的吗?显然不是,我需要把它在计算机上实际运行,并赋予a和b实际的数值.也许我是在水果,买了5块钱的苹果和10块钱的香蕉,然

云软件定制将业务提升到新的水平的四个主要原因

如果您愿意,我们已经进入了第二代云计算非常有趣的阶段.20世纪90年代末开创的云业务模式很快成为快速增长业务运营的事实标准.事实上,我们正在迅速接近每个公司都是云公司的时代. 企业采用云作为其技术支柱,支持创新,部署新业务模式的能力,并在前所未有的快速市场变化和持续业务中断的情况下继续发展.公司还需要越来越积极主动地预测变化和中断,确保他们成为创新的煽动者,而不是最终被他们更敏捷的竞争对手所淹没. 揭穿一些关于云和定制的古老神话 鉴于这么多的公司已经在云中运行他们的业务实现了效益,没有人质疑是否

细说业务逻辑(一)

内容提要 ===================前篇===================== 前言 内容提要 1.我把业务逻辑丢了!——找回丢失的业务逻辑 2.细说业务逻辑 2.1.业务逻辑到底是什么 2.2.业务逻辑的组成结构 2.2.1.领域实体(Domain Entity) 2.2.2.业务规则(Business Rules) 2.2.3.完整性约束(Validation) 2.2.4.业务流程及工作流(Business Processes and Workflows) 2.3.业务逻辑

java 业务逻辑理解

细说业务逻辑 2016年10月14日 07:16:28 阅读数:2295 细说业务逻辑   前言 记得几个月前,在一次北京博客园俱乐部的活动上,最后一个环节是话题自由讨论.就是提几个话题,然后大家各自加入感兴趣的话题小组,进行自由讨论.当时金色海洋同学提出了一个话题--"什么是业务逻辑".当时我和大家讨论ASP.NET MVC的相关话题去了,就没能加入"业务逻辑"组的讨论,比较遗憾. 其实,一段时间内,我脑子里对"业务逻辑"的概念也是非常模糊的.