注册
web

10年老前端,开发的一款文档编辑器(年终总结)

2022年接近尾声,鸽了近一年,是时候补一下去年的年终总结了。

2021年对我来说是一个意义重大的一年。

这一年,我们团队开发出了一款基于canvas的类word文档编辑器,并因此产品获得了公司最高荣誉——产品创新奖。

当时感慨良多,早该总结一下的,终因自己的懒惰,拖到了现在。

直到这周五晚上,在我想着罗织什么借口推迟,以便于周末能放飞自我的时候,老天终于看不下去了,我被电话告知了核酸同管阳性……

产品介绍

懒惰是可耻的,发自内心的忏悔过后,我还是要稍稍骄傲的介绍下编辑器产品:

整个编辑器都是用canvas底层API绘制的,包括了它的光标,滚动条。

除了弹窗及右键菜单的UI组件外,所有的核心功能都是手搓TS,没有用任何的插件。

包括:核心,排版,光标管理,分页,文本编辑,图片,表格,列表,表单控件,撤销还原,页面设置,页眉页脚等的所有功能,都只源于canvas提供的这几个底层的API接口:

  • 在直角坐标系下,从一点到另一点画一个矩形,或圆,或三角。

  • 测绘字体宽高。

  • 从某一点绘制一个指定样式的字。

接口简单,但是经过层层封装,配合健壮的架构和性能良好的算法,就实现了各种复杂的功能。

看一下几个特色功能:

  1. 丰富的排版形式:

2fe1382abc3b46188cc508c4f1299d4d~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.awebp?

  1. 复杂的表格拆分:

44c965ab3e05463d80577e4df572cdf5~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.awebp?

  1. 灵活的列表:

eb87e7a885ed46f99f08de5031db662b~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.awebp?

  1. 表单控件:

9ef019fe732f48c3808ae22811d9d9fb~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.awebp?

  1. 独有的字符对齐:

597fbee319a145cdbfff12d42064d9c3~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.awebp?

  1. 辅助输入

c3824d45c65142eba78e15d52f4fc475~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.awebp?

  1. 痕迹对比:

f8c70a16b2bb464f9ee63727f2af2ed9~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.awebp?

此外,我们开发了c++打印插件,可以灵活的定制各种打印功能。

基础的排版也不演示了,“,。》”等标点不能在行首,一些标点不能在行尾,文字基线等排版基础省略一百八十二个字,

性能也非常不错,三百页数据秒级加载。

提供全个功能的程序接口,借助模版功能,完成各种复杂的操作功能。

心路历程

开发

这么复杂的项目我们开发了多长时间呢?

答案是一年。事实是前年底立项,去年初开始开发,团队基本只有我一人(其实项目初期还有另一个老技术人员,技术也很强,很遗憾开始合作不到两周老技术员就离开这个项目了),一直到7月份团队进了4个强有力的新成员,又经过了半年的紧锣密鼓的开发,不出意外的就意外开发完了。

真实怀念那段忙碌的日子,仿佛一坐下一抬头就要吃午饭了,一坐一抬头又晚上了,晚上还要继续在小区里一圈圈散步考虑各种难点的实现技术方案。真是既充实又酣畅淋漓。

由衷的感谢每一位团队成员的辛苦付出,尽管除了我这个半混半就得老开发,其他还都是1年到4年开发经验的伪新兵蛋子,但是每个人都表现出了惊人的开发效率和潜力。

这让我深刻理解到,任何一个牛掰的项目,都是需要团队齐心协力完成的。现在这个战斗力超强的团队,也是我值得骄傲的底气。

上线,惨遭毒打

事实证明,打江山难,守江山更难,项目开发亦是如此,尤其是在项目刚刚面向用户使用阶段。

当我们还沉浸在获得成功的喜悦中时,因为糟糕的打印速度及打印清晰度问题被用户一顿骑脸输出,打印相关体验之前从未在我们的优化计划之内。而这是用户难以忍受的。

好在持续半个月驻现场加班加点,终于得到了一定的优化。后面我们也是自研c++打印插件,打印问题算是得到彻底解决。

之后仍然有大大小小的问题层出不穷,还好渐渐趋于稳定。

当然现在还是有一些小问题,这是属于这个产品成长的必经之路。

现在,该产品在成千上万用户手中得以稳定运行,偶尔博得称赞,既感到骄傲,又感觉所有辛苦与委屈不值一提。

未来

之前跟领导沟通过开源的问题,领导也有意向开源,佩服领导的远大格局及非凡气度。但现在还不太成熟,仍需从长计议。

随着编辑器功能的完善,一些难以解决的问题也浮出水面,例如对少数民族语言的支持。开源是一个好的方式,可以让大家一同来完善它。

感慨

  1. 勇气,是你最走向成功的首要前提。当我主动申请要做这个项目时,身边大部分人给我的忠告是不要做。不尝试一下,怎么知道能不能做好呢。不给自己设限,大胆尝试。

  2. 满足来源于专注。

  3. 小团队作战更有效率。

  4. 产品与技术不分家,既要精进技术,也要有产品思维。技术是产品的工具,产品是技术的目的。如何做出用户体验良好的产品,是高级研发的高级技能。

感悟很多,一时不知道说啥了,有时间单独再细聊聊。

碎碎念

不知道是幸运还是不幸,公司秃然安排研发在线版excel了,无缝衔接了属于是,身为高质量打工人,抖M属性值点满,没有困难创造困难也要上。

同时今年也发生了一件十分悲痛的事,好朋友的身体垮了。身体是革命的本钱。最后就总结三个重点:健康,健康,还是TMD健康。

作者:张三风
来源:juejin.cn/post/7172975010724708389

0 个评论

要回复文章请先登录注册