去年,我介绍了我们新的内容编辑器CKEditor 5 的一些细节,将会在2016年面市。此后,我们在软件开发过程中取得了很好的进展。我们已经差不多完成了编辑器核心模块的基本组件的编码工作。
到目前为止还有一个方面没有重点强调,那就是(从一开始)我们一直秉承开放的原则在设计CKEditor 5,因此任何人都可以加入来帮助我们或者简单地分享他们的意见也可。下面让我来给大家分享更多关于CKEditor 5的细节。
这是一个个人在"社区项目"中成长变化经历的故事.
FCKeditor 的最初 logo
在CKEditor的初期(那时还叫做“FCKeditor”), 大约是2002和2003, JavaScript仍然是一门很神秘的语言. JS主要被用于验证表格和实现一些简单的UX技巧, 例如显示/隐藏网页的一部分. 那个年代, 实现大型JS项目是很疯狂想法, 尤其是考虑到那时候的主流浏览器是IE5.5和网景.
开源技术在那时也不像现在这样在开发者之间广泛使用. 不仅通过网络工作很慢, 而且那时也没有像GitHub这样的地方帮助人们在一起写代码. 不过那时候也有一些可以集中"免费分享软件"工作的架构,这些架构通常基于已经不复存在的Freshmeat或还奇迹般活着的SourceForge之上.
不管怎样,我一直在工作,通过我一个人的努力,CKEditor第一个版本诞生了。我决定将它开源并使用LGPL协议,并且将它最终发布到了SourceForge上。当时它是一个CVS项目,后来我将它迁移到了SVN上。
尽管我没有期望能从社区活动中获取很多,但是由于特别是来自浏览器编辑器的技术挑战立即带来了好处,这是开源带来的。除了能获得一个很大的用户群,我还可以获得很多反馈,这些都能使这个项目越来越好。
当FCKeditor 2开始时, 我已经从项目中积累了很多经验. 一个很棒的翻译团队出现, 帮忙对编辑器进行本地化工作.尽管我们没有一个很大的开发团队, 但是各地的很多人紧密的跟踪项目开发,这提供了很大帮助 - 例如 Alfonso, 他已经跟随这个项目十几年了 :)
很多迹象也表明我们正在做正确的事情. FCKeditor 达到了 100万下载量. 并被评为Sourceforge的月最佳项目. 一个为我购买Mac Mini来实现编辑器对Safari兼容的1000美元众筹项目2天就完成了...我们觉得很有乐趣.
新的CKEditor logo
对于第三版,我们决定让它更加开放。我们启动了一个名为“Open Development Effort”的项目,“试图让V3的开发在所有层面公开:讨论,研究,设计,编码,文档,集成还有赞助”。这是一个很有趣的方法,也势必能帮助项目更好的发展。即使现在我们不得不讨论对项目进行改名。
CKEditor3获得成功后的两年,我们开始了V4版本的编码。当时的竞争已经非常的激烈。很多项目打起了“让我们干掉CKeditor”的口号。所以我们开始不再大势宣传我们的计划,特别是我们开始进行内联编辑的开发,这个将会是我们的杀手锏。我非常后悔没有对社区开放我们新版本的更多细节,但是我们的V4版本最终被认可是一个很好地解决方案,甚至比以前的版本更加成功。
使项目所有的内容都开源,而不仅仅是代码。把东西都记录下来,并邀请大家都来参与。
上面的经验关键的地方在于:
Open Source FTW:开源的回报。你将从一个很大的用户群中受益,用户都会主动来帮助你并提供反馈意见。我们会得到一个经过更好测试,更安全,更合理设计的软件。
从第一阶段就开始开源:在项目的开始阶段就邀请更多的人参与。越多人参与设计,设计得就会更好。不要以为你懂得所有细节。
用文档记录所有内容:很多时候,我们将很难做出一个正确地决定。很多在公共的场合的讨论将会帮助我们理解并判断当初的决定。
注重质量:虽然做原型来“卖”想法很容易,但一旦出现第一个问题,往往人们会感到很失望。我们不应该追求数量,应该专注于做有价值高品质的项目。
不要在意竞争对手:竞争对手经常复制你公开的项目信息的优点,来使他们自己受益。他们经常会这么做。这就是创新者和复制者的区别。
不要在意竞争对手。成为一个创新的人,让别人一直在后面追赶。
我们将以往的设计和编码经验运用到开源的下一代编辑平台上。
铭记我们以前的经验教训,我们从去年开始了CKEditor 5的开发。在项目最开始阶段,我们围绕项目的各个方面在网上展开了讨论。一些关注者开始从各处给予了反馈,现在蔓延到我们社区了。
为了将设计进行公开,寻找一个合适的设施(软件,服务器)是非常重要的。经常设计意味着原型,我们必须寻找一个地方既可以存放代码,又可以进行讨论,还可以存储过程文档。于是我们在GitHub上面建立了一个专用的仓库:
现在为止,主要讨论的问题发生在the issues pages of the design repo. 最近,许多CKEditor 5 UI和UX方面的工作已经完成。一些基础编码方面的讨论也在那里,例如是否使用ES6模块,或者代码风格等。如果你想参观我们的工作,或者参与这个项目(这是最重要的),你一定要在那里留下你的建议。
也许现在还有点太早,但你也还是可以稍微看看我们的代码。现阶段虽然还没有可供演示的demo,但是很多关键性的代码我们已经完成。
CKEditor 5项目被分成了几个单独的仓库。为了帮助用户进行引导,你可以从GitHub上的 ckeditor5 仓库开始。这个仓库是主要用来编译和测试运行的,而且他集中了开发团队的工作流程。更多地说明可以在README 文件中找到。
CKEditor 5马上就要发布了!现在是共享你反馈的最佳时刻,加入我们吧!
我们正在完成CKEditor 5第一个阶段的开发。基础功能正在形成,我们很快将进行实用性的测试。现在整个团队都非常兴奋。
只要我们一旦有了实际东西进行展示,我们就可以进一步公开讨论CKEditor 5的代码以及基础方面的细节。这篇文章是证明任何人都可以参见,并帮助我们设计软件,这一举措将对人们在网络上分享他们的知识产生根本性变化。
从现在开始加入CKEditor 5(CKEditor 5 design repository)的设计吧。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。 2KB翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务