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

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

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

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

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

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

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

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

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

  1. 如何做一个高级的文本编辑器 textarea,拥有快捷键操作

    如何做一个高级的文本编辑器 textarea,拥有快捷键操作 最近想做一个高级点的 textarea ,支持 JetBrains 系列软件的快捷键,比如: CTRL+ D 复制当前行. Tab 在前面 ...

  2. 如何简单的创建一个多人在线聊天室

    学习目标: 在本教程中,我们将要使用PHP和jQuery创建一个简单的在线聊天工具. 这种实用性的模块对于你想要有实时在线客户支持系统的网站可以说是完美. 废话不多说直接开始. 步骤1:HTML的代码 ...

  3. 如何做一个吸引人的自我介绍?

    自我介绍是面试.社交场合以及工作环境中常见的一项任务.它是展示你自己的机会,同时也是给他人留下深刻印象的重要时刻.一个吸引人的自我介绍可以帮助你与他人建立良好的连接,并在职业和社交交往中取得成功.那么 ...

  4. python聊天小程序支持私聊和多人_利用Python打造一个多人在线匿名聊天的小程序!(前后端完整开发)...

    用Python打造一个多人在线匿名聊天的小程序(附代码) 最近看到好多设计类网站, 都提供了多人在线匿名聊天的小功能, 感觉很有意思, 于是自己就用django框架写了一个, 支持手动实时更名, py ...

  5. 做一个让人欣赏的女人--摘自网络

    摘自网络 愚笨的女人打击男人: 聪明的女人激励男人. 愚笨的女人盯着男人的缺点,老是生气: 聪明的女人欣赏男人的优点,很是开心. 愚笨的女人不分场合与男人争吵,弄得男人很没面子: 聪明的女人在外人面前 ...

  6. 健身做一个c循环多少钱_做一个懒人,到底要花多少钱?

    新世相 X 研究所的第 309 期 大张伟说过,人生就是6个字儿,怎么着都不行. 在科技时代下,新时代懒人的人生更是充满了"怎么着都不行"的循环. 回想一下,你有没有经历掉进过这样 ...

  7. 做一个让人相处舒服的人

    这是小闫同学的第 338 篇原创文章 字数统计 = 1005 阅读时长 ≈ 3 分钟 做一个让人相处舒服的人 不知你有没有发现一种人:与之相处,特别舒服,不论是工作还是生活.他(她)们常常人缘超级好, ...

  8. 一点想法--- 做一个轻便的程序编辑器

    现在的编辑器 或者编译器 动不动就是 N*100M 有的甚至几个G的大小,安装的时候还要安装不同的控件.环境.frame 等 简直不把我们的硬盘当硬盘了 实在是浪费之极 现在我们对程序编辑器基本要求就 ...

  9. 做一个像Keras在线技术文档(Sphinx + GitHub + Read the Docs)

    之前看到Keras的中文文档十分心动也想自己做一个,最终被我做成了.这里写一下制作流程. 制作效果感觉还是不错的 链接:https://opencv-learning.readthedocs.io/z ...

最新文章

  1. R语言使用fs包的file_copy函数、dir_copy函数、link_copy函数将文件、目录、超链接从一个位置拷贝(copy)到另一个位置
  2. Python算法:动态规划
  3. 情商(实践版本,丹尼尔.戈尔曼)---阅读记录
  4. 从美图、4399生根,到趣店、瑞幸落户,厦门离中国的西雅图还有多远?
  5. Team Composition: Programmers and Mathematicians 贪心(800)
  6. 洛谷P5173 传球(暴力)
  7. 树莓派 —— USB 摄像头简单测试 (拍照 视频)
  8. php键值交换,php键值互换时走的一个弯路
  9. Spring+SpringMVC+MyBatis+easyUI整合基础篇(十)SVN搭建
  10. 《天天数学》连载26:一月二十六日
  11. tornado 重定向404
  12. Transfer-Encoding: chunked
  13. 读书月巨献丨博文视点大咖直播伴你读
  14. C++连接MySQL数据库教程|如何连接数据库
  15. Vue3.0后台管理框架
  16. AE Face Tools 4 脸部工具扩展(中英对照)
  17. Google chrome浏览器快捷方式
  18. 猜数游戏,随机生成一个1~100的数进行猜测。
  19. Flink 1.10之改进的TaskManager内存模型与配置/taskmanager.memory.network.fraction
  20. 第三章总体均数的估计与假设检验(2)

热门文章

  1. JAVA中vector是否存在数据_如何找出std :: vector中是否存在项目?
  2. php页面添加链接,怎么给一个PHP密码访问页面加超链接
  3. android 代码 shape,Android Shape控件美化实现代码
  4. open表和closed表_011 Ruby 多Word表写入Excel
  5. 2008文件服务器迁移,Windows2008及早期服务器DHCP的数据迁移方法
  6. 添加日志_第五章springboot2.0添加aop日志实现记录请求地址
  7. long类型怎么转换成string_Python知识点-Python变量类型有哪些?
  8. 当前操作系统缺少黑体等字体_从零开始开发一个操作系统
  9. php删除一张表数据的时候 把另一张表的数据也删除,剔除第一张表的数据时,修改第二张表的相关字段的数值...
  10. 镜像浏览器_害怕win10镜像有第三方软件,直接到微软官网下载,原汁原味