Discourse 技术栈

Discourse是一款开源的论坛软件,采用前后端分离的架构,使用Docker部署。

可能与很多读者所熟悉的React和Vue等流行的前端框架不同,Discourse所使用的是一款名为Ember.js的MVC架构前端框架。至于为什么选择Ember.js,且看Discourse联合创始人的回答

同时Disocurse使用的后端框架Ruby on Rails,很多人可能也不太熟悉,但是在十多年前(2010年左右)可以说是每个开发者没用过也听说过了。Discourse开发于十年前(2013年),所以选用Ruby on Rails没有任何奇怪的。

数据库方面使用的是Postgresql,缓存则使用Redis。这两个在如今已经是很多项目的标配了,故不多做介绍。

Discourse基于以上的技术,实现了三种扩展其功能的方式,分别为主题(Theme)、主题组件(Theme Component)和插件(Plugin)。本文以及后续可能的一系列文章所介绍的「Discourse开发」也是基于使用以上所述三种方式的开发,而非修改Discourse的核心源代码。

技术 选型
编程语言 Ruby、JavaScript
后端框架 Ruby on Rails
数据库 Postgresql
缓存 Redis
前端框架 Ember.js