做一个“多人在线编辑器”,你会怎么开始

       看似只是一个简单的问题,但是其中却隐含了非常多的知识,对于“多人在线编辑器”这么一个产品来说,如果让你来负责设计并开发,你会怎么去开始一步步展开工作,其中主要考察的并不是让你迅速的不假思索的说运用什么技术,什么设计模式去开发,而是看在你面对这个问题时你的解决思路。

      这也能明显的反映出你在日常工作中在面对一些从未遇到过的问题时的解决思路和解决问题的能力。那么,在面对这么一个问题,结合自己多年的项目经验,你会怎么去一步步展开工作呢,是预先思索一番,提出自己的见解,又或是立即大展身手,运用毕生所学立马开干。当然,这取决于自己在以前的工作中解决问题的方式和习惯。就我来说,对于这么一个产品和需求,记录下自己可能采取的解决方案和思路。

     1.找几款类似功能的产品,先用上一阵,熟悉产品的大部分的功能。目的在于收集类似产品应该具有的基本功能,借鉴其中的优点,找出其中的缺点,以及结合自己的需求,对其进行改进。

     2.在对类似产品进行详细的分析以及对产品有了足够的了解以后,可以从工程师的角度去观察,结合自身的经验,找出其可能需要用到的技术,以及其核心的关键技术点是哪些,比如既然是多人在线编辑,那么网络通信,用户之间的操作互斥以及协助还有其中涉及到的算法在这里是重点,至于UI等是次要点。这样的话我们就能够从宏观的角度对这款产品从功能需求,技术实现,核心技术点有了足够的认识。

     3.在常用论坛或者博客上(比如知乎,CSDN,GitChat等)查找类似产品的设计原理和思路,然后进行整理。 在网上寻找实现该产品所需要用到的开源框架和开源库(比如说网络库和UI库等),一般来说,对于这种比较普遍常用的工具都会有开源框架和库,甚至找到类似产品的源码等。而后对开源库和源码进行整理学习。作为一名技术开发人员,要时刻注意我们要站在巨人的肩膀上,而不是选择单干,重复造轮子,做一个孤胆英雄。

    4.所有的以上几点的都是从一个比较宏观的角度去分析的,并没有涉及到产品具体的设计以及开发,在经过上面的分析整理收集到足够的信息后,经过以上几点,已经为后面的工作打下了一个坚实的基础,可以基于这些信息从产品的细节开始展开工作了,在这个阶段又揽括了产品需求的分析(产生需求文档),软件架构的设计,模块的划分,人员的分配等等。自此进入实际的设计,开发阶段。

   以上都是基于自己平时在工作中在面对一些实际问题时的解决思路,自己也是按照这些思路来执行的,所产生的结果也还感觉令人满意。因此借助一个实际的问题来记录下来。依自己的见解,觉得作为一个开发人员来说,应该所具备的最重要的能力应该时面对问题时的解决问题的能力,其中包括分析问题,直击问题的核心关键点,解决思路,思维逻辑等,只要思路对了,问题自然迎刃而解,甚至事半功倍。其次才是技术能力,技术是基础,不可或缺,只有技术够扎实,才能更快,更高效率的解决问题。思维逻辑需要我们在实际工作中不断总结,然后养成习惯。核心技术需要我们不只在工作中,也包括业余时间,不断学习,不断提升。

   程序员,如果没有自己思想,永远只是一个所谓的“码农”“搬砖的”,只有在融入了自己的思想后,才会成为一个合格的工程师。




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值