基于一个想法搭建一套程序(一)

1. 引言

    于近期第一次尝试自己搭建一套基础研发平台产品,编写博客记录过程,希望自己可以坚持下去。

2. 开始

    有一个搭建基础研发平台框架的想法源于工作中的一些发现,一套拓展性规范性较好的基础研发平台对于快速开发产品是真的真的真的很重要,于是开始思考什么样的基础研发平台算得上是一个好的基础研发平台呢?
    个人总结作为基础研发平台需要具备以下几个条件:

  • 通用性
    所谓通用性是指基于一类产品抽象出一套核心通用的功能模块,是此类程序必不可少的组成模块
  • 可拓展性
    所谓可拓展性是指基于基础研发平台进行的功能开发可以直接继承或调用平台的逻辑,从而只需要重点关注个性化功能的实现即可
  • 可插拔
    所谓可插拔是指基础研发平台提供的一些功能、工具可以根据具体程序需要而进行任意的删减或新增,而不需要改动基础代码模块

    按照以上几个条件再基于自己较为熟悉的项目,打算搭建一套管理系统的基础研发平台,以备后用。

3. 搭建前准备

    现在整体平台搭建的方向和目标有了,那么接下来开始进行具体的分析和设计

3.1. 平台核心模块

    既然想做一套通用基础研发平台那么平台的核心功能是必要的考虑要素,平台的方向是供管理类程序使用那么核心功能必然包含如下几块:

  • 鉴权
    鉴权模块主要用于验证登录用户的身份及功能权限,根据用户所有权限进行功能使用的限制
  • 用户管理
    用户管理模块主要用于管理用户账号、应用权限信息
  • 权限管理
    权限管理用于管理维护功能权限
  • 系统设置
    系统设置主要用于维护一些系统数据字典、功能开关等等

3.2. 技术选型

    技术选型是一套平台搭建最为重要的一环,一套优秀的技术栈无论是在平台搭建的过程中还是后续的平台拓展维护中都会给予你非常完美的体验。
    那么问题来了,技术选型要怎么选呢?市面上的技术那么多,如何甄别哪种最好呢?
    针对这个问题博主能给的回答只能说是适合自己的就是最好的。在做技术选型的时候首先要做到的是针对你自己的系统你要有一个明确的定位,你的系统需要用来做什么,需要哪些技术帮你实现你的要求这是必须首先要知道的;其次就是你要了解有哪些能帮你实现你的要求的技术,你可以选择自己最熟悉的,或是受众面最广的那一款,因为这两种的任何一种都会让你在遇到问题的时候能供更顺利些的去解决问题。
    话不多说,咱们继续咱们眼前的事儿。
    针对目前的对平台核心模块的分析博主选定了几款框架来进行着手搭建:

  • 程序框架
    程序框架选用眼下最为流行的spring boot框架
  • ORM
    ORM在mybatis和hibernate之间纠结了蛮久,最后还是选用了mybatis,至于原因嘛,其实只是觉得比较主流些而已,并没有什么很特别的原因
  • 存储
    数据存储这块暂时没有太多的复杂考虑,先上mysql + redis,前期搭建基础框架绝对够够的了
  • 容器
    这个更没啥好说的了,tomcat就完了

    以上,基本的搭建框架前的准备就算完成了,下一篇咱们开始进行平台的搭建