EDX总结

对于一个想要借助edx进行开发的开发者来说,第一步肯定是去读edx的开发者文档,其中规定了开发edx的规范及edx使用的一些架构体系,有了这些文档资源的支撑,我们开发的edx应用程序会具有良好的可维护性和可扩展性。

edx的开发文档主要由以下三部分组成:

  1. edx的OEP提案
  2. edx的开发指南和规范
  3. edx工程的架构和主要思想

OEP提案

OEP是一份文档,里面详细记录了edx社区至今的一些技术架构实践和想法,通过权威人士的认可后,它可被技术人员开发实现。

异步任务处理

在OEP中,你能学到对于一些特定的业务,edx社区的处理方式是什么,这也通常是一些主流的处理方式。比如:对于异步任务(发邮件等等)的处理,edx采用的是开源的框架Celery来完成的;Xblock组件是edx为开发人员定义的可插拔的组件(将上下文相关变量注入xblock中),增强edx平台的可扩展性和可插拔性。

前端标准

在OEP中也提到了前端的开发标准,前端使用了当前在国外比较流行的React框架,借助React的社区的强大力量,使得我们能够快速方便的搭建edx的前端工程。

数据交互API设计

edx还定义了数据交互的api接口规范:Open edX Web API,Open edX API使用Representational State Transfer(ReST)设计原则并支持JavaScript Object Notation(JSON)数据交换格式。使用了web API后也就意味着edx已经将前后端分离开了,这样分离后前后端之间的交互就只有数据,也可以进行多端数据同步。前后端分离的架构实践,使得前端和后端之间的指责分工明确了,大家只需要约定好数据传输的格式和规范,就可以进行同步开发了。前后端分离的这种模式,能够明显的减小大型项目,如:edx项目的开发周期。

edx的开发指南和规范

文档中第二个大块就是edx的开发指南部分。其中介绍了edx使用到的组件和系统架构模块,以及模块之间简要的协同工作的原理。

对于学习管理系统(LMS),它是open edx项目中最显著的部分,负责学习者在线上学习的主要逻辑处理。lms的存储也是有一定的讲究的,数据间参照关系强的数据使用mysql数据库进行存储,像课程信息这类关联不大的数据就使用mongodb数据库进行存储。

在开发指南中还讲诉了如何编写edx的测试和如何将edx部署到生产环境、防止跨站点脚本漏洞(在Django模板和react中防止)。

Xblock开发

XBlocks可以表示与文本,视频或多项选择输入字段一样小的片段,也可以表示与章节,章节或整个课程一样大的片段。

我理解的是,edx开发的核心在于xlock的开发,开发xblock有助于我们扩展edx的功能。xblock不仅仅能够提供课程,它还为我们提供了组件所需的结构和API。

更多edx架构实践的思想:https://openedx.atlassian.net/wiki/spaces/AC/overview

你可能感兴趣的:(EDX总结)