EasyDarwin@2018思考
从2012年开始接触Darwin Streaming Server,到2018年从底层开始完全重新架构、研发、完成,EasyDarwin这个项目已经发展了6年了,时间飞逝,那时候咱们工作时间还不是很长,在对架构的理解上还是比较浅显,但是经过多年的发展,给我最大的一个理解是:顺势而为!
以EasyDarwin 2018年的发展为例,我们经历了两次彻底的迭代,一次是由C++转向node.js,另一次是由node.js转向了golang,并终于稳定了基础。为什么说是顺势而为呢,在12年开始研究Darwin,并研发底层架构时,我们可用的、可研究的,无非就是ACE、libevent这些框架,而这些框架很多时候比较庞大,而且ACE这种很难稳定下来,就导致在底层花费的时间太长,那么从今天来看,基于开源的引擎,我们已经不用再过多去关注底层网络编程了,而且只要潜心去开发应用层的协议,而且类似于node.js、golang,周边配套的组件非常丰富,错误检查的机制也很完善,相比于当年的ACE、libevent开发,开发效率上飞跃太多。在我看来,这就是顺势而为,除非有特殊化的定制,不然我们不需要再过多在底层上恋战,我们可以花更多的时间去研究架构,疏通逻辑,优化算法。
2018的EasyDarwin经历node.js和golang版本的发展后,已经非常明确了自我的定位和下一步的发展目标:那就是更好地服务于安防行业,降低开发门槛,让更多的互联网开发者即使不熟悉音视频开发,也能通过简单的整合就能开发出业务场景需要的服务程序!
EasyDarwin@2019发展规划
EasyDarwin从安防行业发展过来,后面也将专注服务于安防、公安相关行业,我们还将秉承Easy的特性,不仅仅是调研Easy,而且要在开发者的入门、测试、研发等各个维度上,都充分Easy化,配套建立更多的文档和视频教程,简单到让产品经理来调研,也能知道EasyDarwin是否能够满足他们产品的需求:
-
强化版本归档:定期更新,定期归档发布版本,更多的时候,不需要编译就能先使用看到效果;
-
简化二次开发:从编程语言继续采用golang,到配套更多的迭代示例,让普通研发只需要几行代码就能接入自己想要的功能;
-
整合:整合ffmpeg等优质工具,以稳定+稳定的方式迭代产品。
在开发层面上,继续站在巨人的肩膀上前行:
-
基于golang开发和迭代;
-
使用golang + C++进行流媒体关于复杂计算类型功能的开发;
-
引入更多golang社区的优秀组件;
从整个社会的编程开发者到公司,商业化已经越来越无法阻挡了,有技术的人担子重、时间少,技术一般的时间多、缺乏经验,但凡是开发工作,都得有钱来推动,而我们开源不但要技术好的来开发、而且还得有时间、愿意分享、愿意抛头露面,这种已经是越来越凤毛麟角了,好在,我们团队还有几个这样的人存在,2019,EasyDarwin,不忘初心,继续前行!