前言

从最开始的小公司做小网站,到现在进入现在的公司做项目,发现小公司里很多很多工作都是重复的劳动(增删改查),不过想想也是,业务软件最基础的东西不就是增删改查吗。

但是很多时候,这种业务逻辑其实没有必要挨个重写。总不能说你的增删改查比我的高级很多。很大程度上,复杂的问题只是数据太多了怎么优化。

简介

在真的开始做之前,先来简单介绍几个概念。简单介绍一下PaaS是什么,大概意思就是已经做好了一个大的平台,你可以在上边快速的配置、扩展你的服务。

详细的介绍推荐看一下阮一峰老师的博客 http://www.ruanyifeng.com/blog/2017/07/iaas-paas-saas.html

概念上

我想从零开始搭建一个能够配置定义业务,通过代码扩展业务的平台。在这个平台上,简单的需求,不写代码。复杂需求,只写与标准不同的代码。

有啥好处 

提高生产力

其实,做软件的大部分时候,都是在写增删改查,实在是太简单了。搬砖谁不会对吧,要想搬得快,不需要你有多么好的脚力,更多的时候,你可能需要一个塔吊。

稳定的高负载

PaaS的设计之初,就是为了比较大的数据量来考虑的。项目小的时候,怎么着都行,但是,数据量一旦上来之后。小的项目可能根本没法用,如果是PaaS平台的话,你可能只需要多几台机器就完了,还是基础组搞的事情。

分工明确

提到了高负载,其实很大程度上都是底层的事情。普通的开发,更多的好处只是性能的提升。那么就需要两拨能力不同的人来共同完成这件事情。搞底层的更专注性能、扩展,搞业务的就更关注自己的核心业务就完了。

更少的服务代价

这个指的是客户花销,也是PaaS对于传统软件的优势。PaaS平台一旦做完,他肯定已经有平台了,如果要开发新的功能,可能并不需要占用更多的资源,只是在原有的资源上增加点业务而已。况且PaaS服务商与客户更多的是提供服务的续租模式,多一个客户少一个客户,其实对于服务器来说并没有啥压力,同一个团队能够服务与更多的人。

开发更快

就算是往小里做,如果你有这么一个PaaS的框架,你想要在上边直接搞一个业务的话。其实也就是搞点配置,然后作为一个单机软件部署,纯定制开发也会变得更快。

具体点 我们要做什么

假设我们现在要做一个人员管理系统,我们一般需要以下内容。

- 增加数据

可以配置一个或者多个新增数据的页面,点击保存就保存了数据

- 删除数据

可以配置个按钮,点击一下就把相关数据删除掉

- 修改数据

可以配置个按钮,点击一下出现一个编辑页面,里边会出现对应的数据,你可以修改,然后点击一下更新,数据就更新了

- 查

-- 列表页面

你可以在列表页面,配置几个筛选项,然后你修改完数据之后,点击搜索,就会根据你的数据来改变列表内容数据

-- 详情页面

你可以在列表页面点击名称(点击哪个可以配置)然后,就会自动跳转到详情页面

详情页面要展示哪些内容也可以通过配置来进行修改

NoCode能力

这个是整个业务的核心,也是PaaS之所以可以将几个月的工作量浓缩为数周的原因所在。

其实就是一个简单想法的转变,原本我们要实现我上边画的几张图,都是考改变代码来实现,比如说列表页面应该是战士什么Title、列表要不要出现选择框、列表究竟展示那几列、右上角究竟有什么按钮等等。

现在将这些原本需要写到代码里边的逻辑整理到配置里边,然后通过解释这些配置,渲染出页面,渲染出逻辑。

LowCode能力

当然了,上述的情况太过于简单了,基本上就是一个数据库的内容简单展示而已,如果我们需要更复杂一点的内容呢?

比如说我们需要输出这个人的年龄分层(幼儿、少年、青年、中年、老年),我们要怎么做呢?

很显然这个状态不应该被存放在数据库中的,因为这个实际上是通过年龄动态计算出来的,过一年之后这个展示状态可能就会过期了,这个时候我们就需要能够动态插入逻辑根据年龄计算这几个值,然后输出结果。

当然这并不是全部了,其他还有很多需要解决的事情。比如

  • 使用配置来实现渲染,配置数据,读取起来是不是要比写代码慢很多?
  • 搜索条件可能有很多,怎么实现这些条件可用呢?
  • 如果默认的页面满足不了我的需求怎么办?
  • 业务权限要怎么处理?总不能进入系统的人都有权限吧?
  • 开发完了这个玩意怎么发布到线上去?
  • ... ...

这个玩意有点庞大,一口气说不完。这次内容就这么多,我也只能一边整理一边写博客,这可能会是一个很长,也可能是做不下去很短的系列。

写的不好,能力有限多多见谅

从零开始搭建一个PaaS平台 - 我们要做什么的更多相关文章

  1. 从零开始搭建一个react项目

    Nav logo 120 发现 关注 消息 4 搜索 从零开始搭建一个react项目 96 瘦人假噜噜 2017.04.23 23:29* 字数 6330 阅读 32892评论 31喜欢 36 项目地 ...

  2. vue-用Vue-cli从零开始搭建一个Vue项目

    Vue是近两年来比较火的一个前端框架(渐进式框架吧). Vue两大核心思想:组件化和数据驱动.组件化就是将一个整体合理拆分为一个一个小块(组件),组件可重复使用:数据驱动是前端的未来发展方向,释放了对 ...

  3. 从零开始搭建一个简单的基于webpack的vue开发环境

    原文地址:https://segmentfault.com/a/1190000012789253?utm_source=tag-newest 从零开始搭建一个简单的基于webpack的react开发环 ...

  4. Django1.8教程——从零开始搭建一个完整django博客(一)

    第一个Django项目将是一个完整的博客网站.它和我们博客园使用的博客别无二致,一样有分类.标签.归档.查询等功能.如果你对Django感兴趣的话,这是一个绝好的机会.该教程将和你一起,从零开始,搭建 ...

  5. 在django中如何从零开始搭建一个mock服务

    mock概念 mock 就是模拟接口返回的一系列数据,用自定义的数据替换接口实际需要返回的数据,通过自定义的数据来实现对下级接口模块的测试.这里分为两类测试:一类是前端对接口的mock,一类是后端单元 ...

  6. 从零开始搭建一个vue.js的脚手架

    在谷歌工作的时候,我们要做很多界面的原型,要求快速上手,灵活运用,当时用的一些现有框架,比如angular,太笨重了——尤雨溪(Vue.js 作者) vue.js是现在一个很火的前端框架,官网描述其简 ...

  7. Java进阶专题(二十二) 从零开始搭建一个微服务架构系统 (上)

    前言 "微服务"一词源于 Martin Fowler的名为 Microservices的,博文,可以在他的官方博客上找到http:/ /martinfowler . com/art ...

  8. 如何用Django从零开始搭建一个网站(0)

    python,django等安装就直接略过了.下面直接奔如主题,搭建网站. Step1:新建一个django project,运行命令:‘django-admin startproject myPit ...

  9. Django1.8教程——从零开始搭建一个完整django博客(三)

    这一节主要介绍对数据库的访问操作:通过管理器(manage),对对象进行检索.修改.删除等操作,详细介绍了如何针对不同的模型自定义管理器. 查询和管理工作 现在,我们已经有了一个功能完善的Django ...

随机推荐

  1. Bind+DLZ+MySQL智能DNS的正向解析和反向解析实现方法

    使用文本配置文件的配置方式结合bind的最新的acl和view特性来实现智能DNS想必很多人已经很熟悉了,使用MySQL数据库来存放zone文件的方式可能也不少.对于两者都熟悉的,实现 Bind+DL ...

  2. CF思维联系–CodeForces -224C - Bracket Sequence

    ACM思维题训练集合 A bracket sequence is a string, containing only characters "(", ")", ...

  3. CF--思维练习--CodeForces - 221C-H - Little Elephant and Problem (思维)

    ACM思维题训练集合 The Little Elephant has got a problem - somebody has been touching his sorted by non-decr ...

  4. HTML(表格标签)

    <table> 标签 表格由 <table> 标签来定义.每个表格均有若干行(由 <tr> 标签定义),每行被分割为若干单元格(由 <td> 标签定义) ...

  5. python(string 模块)

    1.string 模块下关键字源码定义 whitespace = ' \t\n\r\v\f' ascii_lowercase = 'abcdefghijklmnopqrstuvwxyz' ascii_ ...

  6. Ant 环境安装

    1.下载安装 Ant,配置环境变量 进入 http://ant.apache.org/bindownload.cgi 下载 Ant 配置环境变量 新建 ANT_HOME 配置 Path 环境变量 配置 ...

  7. postman(断言)

    一.断言 1.Code is 200 断言状态码是200 2.contains string 断言respoonse body中包含string 3.json value check (检查JSON值 ...

  8. Docker配置TLS认证,修复因暴露2375端口引发漏洞

    1.环境准备 # 查看Docker服务器主机名hostnamectl 这里记住我的主机名s130就好 # 静态主机名修改vi /etc/hostname# 临时主机名修改(重启失效)hostname  ...

  9. 数据结构之递归Demo(走迷宫)(八皇后)(汉诺塔)

    递归 顾名思义,递归就是递归就是递归就是递归就是递归......就是递归 Google递归:

  10. HDU1176(正推DP)

    时间和位置都可以决定这一秒捡到的馅饼数 不妨设\(dp[i][j]\)为在\(i\)秒\(j\)位置的最大收益 那么\(dp[0][5]=0\),dp数组的其他部分置成-1代表不能转移 那么对于第\( ...