作者

目前新版本已经正式发布上线。

后端架构

后端整站采用了Ruby On Rails 6.0版本开发。

  • 除用户模块外,其他所有功能模块均采用引擎的方式开发
  • 数据库已由 MySQL 迁移到 PostgreSQL
  • 所使用的的 Gem 包一览:
# Use postgresql as the database for Active Record
gem 'pg', '>= 0.18', '< 2.0'

# A performance dashboard for Postgres
gem 'pghero'

# Use Redis adapter to run Action Cable in production
gem 'redis'

# redis 高速连接库,自动使用,无需配置
gem 'hiredis'

# 实现点击数
gem 'redis-objects'

# 用户
gem 'devise'

# 异步邮件
gem 'devise-async'

# 第三方登录
gem 'omniauth-qq'
gem 'omniauth-github'

# OAuth Provider
gem 'doorkeeper'
gem 'doorkeeper-i18n'

# 权限管理
gem 'cancancan'

# 跨域
gem 'rack-cors'
gem 'rack-utf8_sanitizer'

# 分页
gem 'kaminari'

# 字体图标
gem 'font-awesome-rails'

# 配置文件
gem 'dotenv-rails'

# 上传
gem 'carrierwave', '~> 1.0'
gem 'carrierwave-aliyun'
gem 'aliyun-sdk'

# 自动给中、英文间加入合理的空格
gem 'auto-correct'

# 验证码
gem 'rucaptcha'
gem 'recaptcha'

# 支付宝
gem 'alipay', '~> 0.15.0'

# 微信支付
gem 'wx_pay'

# html、css 标签过滤
gem 'sanitize'

# 表情
gem 'twemoji'

# markdown 转 html
gem 'redcarpet'

# 代码高亮
gem 'rouge'

# 转换 html 处理流
gem 'html-pipeline'

# AutoCorrect for html-pipeline
gem 'html-pipeline-auto-correct'

# 异常管理
gem 'exception-track'

# 服务状态
gem 'status-page'

# Active Storage 阿里云支持
gem 'activestorage-aliyun'

# 队列
gem 'sidekiq'

# 定时任务,/sidekiq 中多了 Cron
gem 'sidekiq-cron'

# 点赞、关注
gem 'action-store'

# 系统设置,自动缓存
gem 'rails-settings-cached'

# 无限分类
gem 'awesome_nested_set'

# 关联模型 select
gem 'form-select'

# Cache
gem 'second_level_cache'

# Rails Enum 扩展
gem 'enumize'

# ActionText 轻量版本,去掉 Trix 与 ActiveStorage 集成
gem 'actiontext-lite'

# 二维码
gem 'rqrcode'

# 中国城市,省市区街道四级联动
gem 'china_city', git: 'https://github.com/canon4ever/china_city.git'

# 搜索
gem 'elasticsearch-model', '~> 6'
gem 'elasticsearch-rails', '~> 6'

前端架构部分

Stimulus构建。

  • 后台部分,已经完全去掉了 jQuery。
  • 前台部分还有部分插件依赖,还在去 jQuery 过程中。
  • Ajax 请求,则由@rails/ujs包中的 Rails.ajax 方法处理。
  • 所使用的 npm 包一览:
"dependencies": {
  "@popperjs/core": "^2.2.0",
  "@rails/actioncable": "^6.0.0",
  "@rails/activestorage": "^6.0.0",
  "@rails/ujs": "^6.0.0",
  "@rails/webpacker": "4.2.2",
  "@silvermine/videojs-quality-selector": "^1.2.3",
  "autosize": "^4.0.2",
  "clipboard": "^2.0.6",
  "dropzone": "^5.7.0",
  "flickity": "^2.2.1",
  "jquery": "^3.4.1",
  "rails-erb-loader": "^5.5.2",
  "rellax": "^1.12.1",
  "stimulus": "^1.1.1",
  "timeago.js": "^4.0.2",
  "tributejs": "^5.1.3",
  "turbolinks": "^5.2.0",
  "vanilla-lazyload": "^15.1.1",
  "video.js": "^7.7.5"
},

主要变化有:

新增栏目

视频相关

  • Premium 用户,可以播放 4K 视频
  • 视频格式由以前的 MP4,变成了现在所使用的 HLS
  • 登录用户,会自动记录播放时间。下次播放时,会从上一次的进度继续播放。
  • 视频播放页底部可以发布笔记了(目前限 PC 可用)。免费会员可以发布 5 篇,Premium 会员则没有限制。

待开发

  • iOS、安卓 App(采用最新版的 React Native 重构,目前进度 60%)
  • 社区(后台部分已经完成,前台待开发)
  • 直播(未开工)
  • 招聘(未开工)
  • 商城(未开工)

转载请注明,来自https://clwy.cn/information/articles/3

已添加到收藏了