Awesome Open Source
Awesome Open Source

skill6 building status codecov Apache License 2 Average time to resolve an issue Percentage of issues still open

技术流skill6网站的架构设计、需求分析、技术选型等


1、架构设计

image


2、技术选型

2.1 后端

技术 功能点 官网链接
Maven 项目依赖管理 http://maven.apache.org/
Spring 容器 http://projects.spring.io/spring-framework/
Spring Boot spring框架 http://spring.io/projects/spring-boot
SpringMVC restful接口 http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc
Shiro 权限控制 http://shiro.apache.org/
MyBatis ORM框架 http://www.mybatis.org/mybatis-3/zh/index.html
MyBatis Generator 实体类和DAO代码生成 http://www.mybatis.org/generator/index.html
Druid 数据库连接池 https://github.com/alibaba/druid
Redis 缓存 https://redis.io/
Log4J 日志 http://logging.apache.org/log4j/1.2/
Sequence 分布式ID生产 http://git.oschina.net/yu120/sequence

2.2 前端

技术 名称 官网
Vue.js 构建用户界面的渐进式框架 https://cn.vuejs.org/
JQuery 轻量级 JavaScript 库 http://jquery.com/
Bootstrap 前端框架 http://getbootstrap.com/
Editor.md Markdown编辑器 https://github.com/pandao/editor.md

2.3 服务器

技术 名称 官网
Docker 容器 https://www.docker.com/
Nginx 负载均衡 http://nginx.org/

3、数据库设计

image

补充说明

  1. 目前已设计上述15个表,其中category_info表数据量较小,所以设计包含文章分类、代码分类等所有分类,通过type字段区别;
  2. type(类型)字段使用枚举一一映射;
  3. valid字段对应的tinyint只有1和0两个值,使用booealn值做映射;
  4. id统一使用分布式id生成器生成,便于后期做分库分表,分布式id默认长度不超过19位,通过传入workedId和datacenterId两个参数即可生成;
  5. 用户表包含管理用户和普通用户两种,通过type字段区分,用户表又分为用户重要信息(user_privacy_info)和其他信息(user_info);
  6. 图片和文件使用同一种方式存储,但是使用不同的表,因为图片数据量明显大于其他文件;
  7. 文章评论和灌水区(类似主题问答)使用不同的表区分;
  8. 文章和代码使用不同的表,文章包含文字+代码等,而代码是纯代码,如序列化工具类;
  9. 用户修改信息、用户登录记录、用户访问网站和文章等的记录都详细记载,用于后期数据存储、分析和做推荐等;
  10. 版本信息表用户更新网站版本说明及特性等;

4、沟通交流

点击加入QQ群

image


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
java (31,347
nodejs (3,760
docker (2,870
vuejs (1,106
redis (945
spring (516
springboot (278
mybatis (241
restful (174
dubbo (128
shiro (91
elk (59
druid (54
slf4j (17