引言
目的
总结是为了回顾整个项目从0到1的完整过程,梳理里程碑,发现各个环节的做的好的地方与不足,做好项目沉淀,反思和复盘,为下次项目执行做好基础,每次进步一点点,到几次项目积累后,你会发现自己是不断的在成长。
背景
需求来源于实际的一个大型项目中,markdown编辑器作为其中的一个子模块单独完成。子模块单独立项,目标是对标市场上同类的编辑器,希望最终做到完美,故起名perfect-markdown。在该项目中该编辑器的使用者大部分为开发者,语法的学习门槛很低。
定义
| 英文名 | 中文含义 | 备注 |
|---|---|---|
| markdown | 一种语法 | |
| markdown-it | 一种markdown语法解析引擎 | |
| perfect-markdown | 自定义命名,完美markdown,简写pmd |
参考资料
- https://markdown-it.github.io/markdown-it/
- https://github.com/hinesboy/mavonEditor
- http://www.markdown.cn/
- https://cn.vuejs.org/
- https://vuex.vuejs.org/
实际开发效果
产品

主要功能
- 基本语法的快捷输入
- 高级语法如letax公式等的解析
- 图片、附件的上传
- 文件导入导出
- 渲染文档的图片预览:放大缩小
进度
原计划是趁着过年(2018-2019)前后共一周的时间完成perfect-markdown v1.0版本,这个时间段业务需求不多。实际花费的时间大概是10天,因此在拿不准需求的情况下,实际排期=1.5*预估排期,这样基本是可以的=——=。主要是处理其中的一些坑,花费了一些时间。到今天为止共发了10个小版本,最新的版本为v1.0.10。
开发评价
开发效率
perfect-markdown是在其它业务项目并行的情况下,抽时间完成的,满分10分的话,开发效率打8分。
产品质量
满分10分,目前只能给到7分。
技术和方法
目前项目采用的vux全家桶和markdown-it插件,都是比较成熟的技术了;需要特别说明的是公式的渲染支持两种类型:katex与mathjax,mathjax的公式渲染是纯dom操作,而katex是markdown-it的扩展,因此为了兼容mathjax格式的公式,做了一个取巧的设计,copyDom的逻辑。具体实现可以看下github.
经验和教训
在满足业务方使用需求的时候,有不同的实现方案,比如公式渲染的实现(katex和mathjax),有的需求其实业务方可以做让步的(舍弃一些小的需求点),而我们为了完全满足业务方,可能需要付出很多的投入,造成投入产出比太大的问题,因此做好需求的控制,是该项目中觉得最重要的。