`
Nainse
  • 浏览: 24125 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

所有使用数据库的Web应用都"just CURD Apps(只是CURD应用)

阅读更多

翻 by:Nainse 2009年6月3日11:47:02

 

  是该结束Web应用到底是“只是个简单的CURD应用”还是“很庞大很复杂的应用”之争的时候了。
 
  再繁杂的行为也可以通过一个拥有适度简单规则的小单元来完成(Very complex behavior can be expressed throuth a small set of fairly smiple rules.)。这通常被描述为“emergent behavior or just emergence”。通俗来说就是简单的模块可以构建出庞大复杂的系统--原子来自分子,分子来自蛋白质,蛋白质又来自于细胞,以此类推,直到人体这样一个有机整体等等。从中我们可以看到,人类这样一个非常之复杂的有机体是有原本
很简单的构建模块(原子)构成的。
 
  这样的道理之于我们的Web应用同样适用。在OOP的编程里,我们通常用一组简单的方法来完成一个复杂的行为,理,几个简单的对象通过相互合作可以完成更复杂的功能。类似于此,在全世界的数据库中查找各类问题答案、统计各种数据、筛选各种信息的时候,用到的仅仅只有四个简单的语句(all the database in the world answering questions about all kinds of things,aggregatting and filtering, are being manipulated by four simple statements)。
  当你用SQL来访问数据库的时候,你只需要四个命令:
SQL:

1.select
2.insert
3.update
4.delete

 

你还能想出其他的SQL操作吗?没有了。你可以做的其他事情就是用DDL来修改数据库的规则(schema)。我们对数据库中所有数据的一切操作都可以通过上面那四个简单的命令组合来完成。

 

REST/HTTP

1.get
2.post
3.put
4.delete

 

HTTP如SQL一样,也把自己的使命托付给了简单的动词(命令)(HTTP happens to map the same concepts as SQL to four simple Verbs)。当然,HTTP也支持其他的几个命令--options、head、trace 和 connect--这些命令通常都是用于诊断、discovery和proxy support的。Two independent protocols hava defined the same set of general purpose actions and have decided that they are the only ones needed(?)。现在,也许我可以大胆的断定这(?)绝不是一种巧合。

 

 (对于信息来说,)不管是用户输入的还是系统中存储的,都是通过四个简单的命令来操作的,而这个四个命令的作用出奇的一致--create、read、update和delete这样一来就简单的多了,一些经过约定的 简单 操作集就能构建出解决复杂问题的系统。当一个系统不是从简单而是复杂开始时,那么开发这个系统的程序员很可能是在做一件错误的事情。一个好的软件不仅要能根据问题的复杂度来解决问题,一个好软件同样也要让开发人员可以很容易地进行扩展。综上,如果一个系统在前期设计时能制定出一些严格的规约,那么对于以后的简化设计、统一控制会很有帮助。
(最后一段的原文,感觉翻出来的不太对,谢谢批评指正:
The input from user and the storage of the system can only be manipulated using four simple commands that correspond to Create,Read,Update and Delete. These simple, constrained simple sets of operations allows you build system that solve complex problems. As a software developer you're doing something wrong if the way that you're building an application doesn't allow you to start simpleand only add complexity as needed. Software is at its best when it is only as complex as it needs to be to solve the problem at hand. Software is also at its best when it can easily be modified to add complexity as needed without drastic rework. Intentionally imposing some constrains on a design can help enforce a consistent, simple design through the entire design.)


注:我觉得作者的目的很明显,那就是一切都始于简单,简单通过有机的组合可以创造万物。

分享到:
评论

相关推荐

    所有使用数据库的Web应用都\"just CURD Apps(只是CURD应用)

    标题中的“所有使用数据库的Web应用都'just CURD Apps(只是CURD应用)'”指的是在Web开发中,大部分应用程序的核心功能围绕着四个基本操作:创建(Create)、读取(Read)、更新(Update)和删除(Delete),简称CURD...

    spring boot项目中使用Jpa对mySql数据库进行CURD操作

    JPA是Java EE的一部分,但Spring框架提供了Spring Data JPA模块,使得在Spring Boot应用中集成JPA变得非常简单。这个项目资源就是针对Spring Boot初学者,通过JPA实现MySQL数据库的CRUD操作。 首先,要使用JPA,...

    mongoDB数据库CURD操作,配有界面

    在这个MongoDB CURD操作的示例中,我们将探讨如何在Windows 7环境下使用MongoDB进行基本的数据操作,并结合Struts2、jQuery和CSS来创建一个具有图形用户界面的Web应用。 首先,CURD是创建(Create)、读取(Retrieve)...

    基于fastapi框架的数据库CURD脚手架设计源码

    本项目是一款基于FastAPI框架的数据库CURD脚手架设计源码,包含45个文件,其中包括35个Python脚本文件、2个JavaScript文件、1个Git忽略文件、1...该脚手架封装了数据库的基本CURD操作,适用于快速搭建数据库交互应用。

    Android SQLite数据库的CURD.zip

    本教程将详细讲解如何在Android中进行SQLite数据库的CURD操作,即创建(Create)、查询(Query)、更新(Update)和删除(Delete)。 首先,我们需要创建一个SQLite数据库。在Android中,我们通常通过扩展`SQLiteOpenHelper...

    angularjs CURD Example

    在Web应用开发中,CRUD操作是数据管理的基础,对于理解和掌握任何Web框架都至关重要。 首先,我们需要了解AngularJS的核心概念。AngularJS通过数据绑定和依赖注入简化了前端开发。它使用 MVC(Model-View-...

    JDBC连接数据库CURD

    总之,JDBC是Java与数据库交互的核心工具,通过理解并熟练掌握JDBC的CURD操作,开发者可以灵活地实现各种数据库操作,为应用程序提供数据支持。在学习过程中,阅读相关的博客和文档,进行实际操作,是加深理解的最好...

    maven springmvc mybatis整合 数据库操作curd

    在本教程中,我们将深入探讨如何使用Maven、Spring MVC和MyBatis这三大核心技术来构建一个完整的Web应用程序,实现数据库的CURD(创建、读取、更新和删除)操作。这个过程对于初学者来说是极其有价值的,因为它涵盖...

    MVC+LINQ进行CURD操作

    2. **读取(READ)**:读取数据通常在控制器的GET方法中完成,可以使用`context.Set().ToList()`获取所有记录,或者使用`Where()`、`Find()`等查询方法根据特定条件筛选记录。查询结果可以传给视图进行展示。 3. **...

    通过ext实现CURD

    本教程将详细讲解如何利用EXT实现SQL Server数据表的CURD操作,并提供一个可以直接使用的EXT应用程序示例。 **1. CURD操作** CURD是数据库操作的基本概念,代表Create(创建)、Read(读取)、Update(更新)和...

    ztree连接数据库的一些增删该查

    5. **不可遗漏的配置**:确保所有必要的配置项都已设置,避免出现异常。 **代码解析示例:** 1. `async.Enable`:设置为true开启异步加载,否则可能导致加载异常。 2. `check`:控制复选框的启用和样式,例如,`...

    thinkphp CURD完整案例

    通过学习和实践这个"thinkphp CURD完整案例",开发者可以深入理解如何在ThinkPHP框架下进行数据库操作,这对于构建动态Web应用来说是至关重要的技能。同时,这也是提升PHP编程能力和数据库管理能力的有效途径。

    boot-layui-curd-master.zip

    CURD是数据库操作的基础,通常用于构建Web应用的核心功能。下面我们将深入探讨Spring Boot和LayUI这两个关键组件,以及它们在构建Web应用中的作用。 **Spring Boot** Spring Boot是由Pivotal团队维护的Java框架,其...

    java后台+easyui完整curd

    Java后台结合EasyUI实现CURD操作是Web应用开发中常见的需求,主要涉及到Java后端编程、数据库操作以及前端用户界面的设计。在这个项目中,“java后台+easyui完整curd”是一个利用Java技术和EasyUI框架构建的简单但...

    ASP .net MVC5(C#)新手学习CURD

    在本教程中,我们将重点探讨ASP.NET MVC5中的CURD操作,这是任何Web应用的基础,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete)数据。 **创建(Create)**: 创建新数据通常涉及一个表单,用户...

    基于Spring Boot的简单CURD应用.zip

    这是一个基于Spring Boot的简单CURD(创建、读取、更新、删除)应用,旨在展示如何使用Spring Boot框架快速搭建一个RESTful API服务。 项目特性 快速搭建通过Spring Initializr初始化项目,快速搭建项目框架。 ...

    thinkPHP之CURD开发简单源码

    在Web开发领域,尤其是使用PHP框架进行开发时,如ThinkPHP,CURD操作是构建任何应用的基础。这篇关于"thinkPHP之CURD开发简单源码"的内容,旨在帮助新手快速理解和掌握如何在ThinkPHP框架下进行基本的数据操作。 ...

    一个CURD的demo

    总的来说,"一个CURD的demo"涵盖了数据库管理的核心操作,通过xxm_admin.sql文件可以学习到实际的SQL语句应用,并了解如何在实际项目中进行数据库操作。同时,这个话题也延伸到了数据库驱动的后端开发,涉及到编程...

    Node.js v18.18.0 + Layui 2.8.17 + JSON文件作数据库 商品管理 CURD 增删改查

    在这个项目中,我们看到一个基于Node.js v18.18.0的Web应用程序,它结合了Layui 2.8.17前端框架,使用JSON文件作为轻量级数据库来实现商品管理的CURD操作,即创建(Create)、读取(Retrieve)、更新(Update)和删除...

Global site tag (gtag.js) - Google Analytics