从零开始搭建一个PaaS平台 - 我们要做什么
前言
从最开始的小公司做小网站,到现在进入现在的公司做项目,发现小公司里很多很多工作都是重复的劳动(增删改查),不过想想也是,业务软件最基础的东西不就是增删改查吗。
但是很多时候,这种业务逻辑其实没有必要挨个重写。总不能说你的增删改查比我的高级很多。很大程度上,复杂的问题只是数据太多了怎么优化。
简介
在真的开始做之前,先来简单介绍几个概念。简单介绍一下PaaS是什么,大概意思就是已经做好了一个大的平台,你可以在上边快速的配置、扩展你的服务。
详细的介绍推荐看一下阮一峰老师的博客 http://www.ruanyifeng.com/blog/2017/07/iaas-paas-saas.html
概念上
我想从零开始搭建一个能够配置定义业务,通过代码扩展业务的平台。在这个平台上,简单的需求,不写代码。复杂需求,只写与标准不同的代码。
有啥好处
提高生产力
其实,做软件的大部分时候,都是在写增删改查,实在是太简单了。搬砖谁不会对吧,要想搬得快,不需要你有多么好的脚力,更多的时候,你可能需要一个塔吊。
稳定的高负载
PaaS的设计之初,就是为了比较大的数据量来考虑的。项目小的时候,怎么着都行,但是,数据量一旦上来之后。小的项目可能根本没法用,如果是PaaS平台的话,你可能只需要多几台机器就完了,还是基础组搞的事情。
分工明确
提到了高负载,其实很大程度上都是底层的事情。普通的开发,更多的好处只是性能的提升。那么就需要两拨能力不同的人来共同完成这件事情。搞底层的更专注性能、扩展,搞业务的就更关注自己的核心业务就完了。
更少的服务代价
这个指的是客户花销,也是PaaS对于传统软件的优势。PaaS平台一旦做完,他肯定已经有平台了,如果要开发新的功能,可能并不需要占用更多的资源,只是在原有的资源上增加点业务而已。况且PaaS服务商与客户更多的是提供服务的续租模式,多一个客户少一个客户,其实对于服务器来说并没有啥压力,同一个团队能够服务与更多的人。
开发更快
就算是往小里做,如果你有这么一个PaaS的框架,你想要在上边直接搞一个业务的话。其实也就是搞点配置,然后作为一个单机软件部署,纯定制开发也会变得更快。
具体点 我们要做什么
假设我们现在要做一个人员管理系统,我们一般需要以下内容。
- 增加数据
可以配置一个或者多个新增数据的页面,点击保存就保存了数据

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

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

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

-- 详情页面
你可以在列表页面点击名称(点击哪个可以配置)然后,就会自动跳转到详情页面
详情页面要展示哪些内容也可以通过配置来进行修改

NoCode能力
这个是整个业务的核心,也是PaaS之所以可以将几个月的工作量浓缩为数周的原因所在。
其实就是一个简单想法的转变,原本我们要实现我上边画的几张图,都是考改变代码来实现,比如说列表页面应该是战士什么Title、列表要不要出现选择框、列表究竟展示那几列、右上角究竟有什么按钮等等。
现在将这些原本需要写到代码里边的逻辑整理到配置里边,然后通过解释这些配置,渲染出页面,渲染出逻辑。
LowCode能力
当然了,上述的情况太过于简单了,基本上就是一个数据库的内容简单展示而已,如果我们需要更复杂一点的内容呢?
比如说我们需要输出这个人的年龄分层(幼儿、少年、青年、中年、老年),我们要怎么做呢?
很显然这个状态不应该被存放在数据库中的,因为这个实际上是通过年龄动态计算出来的,过一年之后这个展示状态可能就会过期了,这个时候我们就需要能够动态插入逻辑根据年龄计算这几个值,然后输出结果。
当然这并不是全部了,其他还有很多需要解决的事情。比如
- 使用配置来实现渲染,配置数据,读取起来是不是要比写代码慢很多?
- 搜索条件可能有很多,怎么实现这些条件可用呢?
- 如果默认的页面满足不了我的需求怎么办?
- 业务权限要怎么处理?总不能进入系统的人都有权限吧?
- 开发完了这个玩意怎么发布到线上去?
- ... ...
这个玩意有点庞大,一口气说不完。这次内容就这么多,我也只能一边整理一边写博客,这可能会是一个很长,也可能是做不下去很短的系列。
写的不好,能力有限多多见谅
从零开始搭建一个PaaS平台 - 我们要做什么的更多相关文章
- 从零开始搭建一个react项目
Nav logo 120 发现 关注 消息 4 搜索 从零开始搭建一个react项目 96 瘦人假噜噜 2017.04.23 23:29* 字数 6330 阅读 32892评论 31喜欢 36 项目地 ...
- vue-用Vue-cli从零开始搭建一个Vue项目
Vue是近两年来比较火的一个前端框架(渐进式框架吧). Vue两大核心思想:组件化和数据驱动.组件化就是将一个整体合理拆分为一个一个小块(组件),组件可重复使用:数据驱动是前端的未来发展方向,释放了对 ...
- 从零开始搭建一个简单的基于webpack的vue开发环境
原文地址:https://segmentfault.com/a/1190000012789253?utm_source=tag-newest 从零开始搭建一个简单的基于webpack的react开发环 ...
- Django1.8教程——从零开始搭建一个完整django博客(一)
第一个Django项目将是一个完整的博客网站.它和我们博客园使用的博客别无二致,一样有分类.标签.归档.查询等功能.如果你对Django感兴趣的话,这是一个绝好的机会.该教程将和你一起,从零开始,搭建 ...
- 在django中如何从零开始搭建一个mock服务
mock概念 mock 就是模拟接口返回的一系列数据,用自定义的数据替换接口实际需要返回的数据,通过自定义的数据来实现对下级接口模块的测试.这里分为两类测试:一类是前端对接口的mock,一类是后端单元 ...
- 从零开始搭建一个vue.js的脚手架
在谷歌工作的时候,我们要做很多界面的原型,要求快速上手,灵活运用,当时用的一些现有框架,比如angular,太笨重了——尤雨溪(Vue.js 作者) vue.js是现在一个很火的前端框架,官网描述其简 ...
- Java进阶专题(二十二) 从零开始搭建一个微服务架构系统 (上)
前言 "微服务"一词源于 Martin Fowler的名为 Microservices的,博文,可以在他的官方博客上找到http:/ /martinfowler . com/art ...
- 如何用Django从零开始搭建一个网站(0)
python,django等安装就直接略过了.下面直接奔如主题,搭建网站. Step1:新建一个django project,运行命令:‘django-admin startproject myPit ...
- Django1.8教程——从零开始搭建一个完整django博客(三)
这一节主要介绍对数据库的访问操作:通过管理器(manage),对对象进行检索.修改.删除等操作,详细介绍了如何针对不同的模型自定义管理器. 查询和管理工作 现在,我们已经有了一个功能完善的Django ...
随机推荐
- 【集群实战】fatab开机挂载失败案例
1. nfs挂载加入fstab案例 NFS客户端实现fstab开机自启动挂载 现象:nfs开机挂载卸载了/etc/fstab中,结果无法开机自动挂载nfs 解答:1. nfs客户端命令放在/etc/r ...
- JQuery学习(一)
本文是学习廖老师的Javascript全栈教程后的一些笔记. 使用jQuery: 方法一:下载jQuery库,并在html页面中引入,方式如下: 1 <html> 2 <head&g ...
- A Tile Painting(循环节)
Ujan has been lazy lately, but now has decided to bring his yard to good shape. First, he decided to ...
- C++ 模板(template) 的定义
定义: 模板(template)是实现代码重用机制的一种工具,它可以实现类型参数化,把类型定义为参数(模板元编程),从而实现了真正的代码可重用性. 模板是用来批量生成功能和形式都几乎相同的代码的.编译 ...
- 题目分享C 二代目
题意:一个数列是由 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5 6.....组成,也就是1-1,1-2,1-3......并且如果遇到多位数也要拆成数字比如1-10 ...
- 简单搜索 kuangbin C D
C - Catch That Cow POJ - 3278 我心态崩了,现在来回顾很早之前写的简单搜索,好难啊,我怎么写不出来. 我开始把这个写成了dfs,还写搓了... 慢慢来吧. 这个题目很明显是 ...
- CSS 块元素、内联元素、内联块元素三者的区别与转换
三种元素 块元素 内联元素 内联块元素 元素之间的转换 三种元素 元素就是标签,布局中常用的有三种标签,块元素.内联元素.内联块元素. 了解这三种元素的特性,才能熟练的进行页面布局. 块元素 块元素, ...
- Vue列表实现滚动到指定位置样式改变
这个需求大概是这样子: 我做的一个聊天Demo,在搜索框搜索用户,可以滚动到指定的用户.然后成选中状态. 这是目前状态,我搜索 南宫仆射 ,想要下面的用户列表直接滚动到 南宫仆射 并改变CSS样式. ...
- Qt插件系统
说明 近期入职新公司,新公司的项目用到了Qt的插件系统,花时间了解了一下,还以为Qt的插件系统有多么高级呢,原来归根到底还是 dll 的动态调用时获取其中的类那一招啊,原理和之前的文章<DLL的 ...
- x86软路由虚拟化openwrt-koolshare-mod-v2.33联通双拨IPV6教程(第一篇)
本文分两篇发布,此为第一篇,第二篇:https://www.cnblogs.com/zlAurora/p/12433302.html 年前TB购置了一台软路由,对家里网络来了个大改造,实现了PPP ...