内容简介:摘要:技术没有高下之分,做好产品才是王道。很多开发者非常热衷于比较不同技术,比如:Angular是否比Vue.js更好?Node.js能否取代Java?究竟应该选择MySQL还是MongoDB呢?
摘要:技术没有高下之分,做好产品才是王道。
很多开发者非常热衷于比较不同技术,比如:Angular是否比Vue.js更好?Node.js能否取代Java?究竟应该选择 MySQL 还是 MongoDB 呢?
认真对比不同技术之间的优劣是非常有价值的事,可以加深我们对技术的理解,根据业务场景选择 更合适的技术 。
但是,对技术选择过于较真,争得面红耳赤,对于产品或者个人来讲,都是没有必要的。因为, 技术选择真的没有那么重要 。
技术只是产品的实现手段
对于一个产品,技术仅仅只是实现手段。或者说,条条大路通罗马,这个产品可以用Angular + Java + MySQL实现,那它用Vue.js + Node.js + MongoDB来实现也完全没问题。不同技术在细节上确实有不少区别,但是它们在本质上它们是一样的,Angular和Vue.js是前端框架,Java和Node.js是编程语言,MySQL和MongoDB是数据库。
产品面向的是用户,而不是开发者自己,在开发者开来,选择某个技术栈也许很重要,但是对于用户来说,很抱歉,他们 完全不关心 !用户关心的是:是否有我想要的功能?UI设计是否合理?BUG有没有及时修复?生活中,我们都是用户,我们每天聊微信、刷抖音、逛京东、打王者荣耀,你会关心它们的后台是用 Java 还是用Node.js吗?
如果产品的技术栈还没有确定,选择一个 目前使用者足够多并且保持更新的技术 就好了,用的人多的技术不会太差,还在更新则不用担心BUG没人修复。如果产品的技术栈已经确定了,那就更简单了,直接撸代码啊;即使技术选择有一些问题,抱怨是没有用的,也没人愿意为了你的个人偏好去换技术栈,除非是产品需要。
作为开发者,应该利用自己已经掌握和需要学习的技术去实现一个好用的产品,满足用户的需求。如果产品没有成功,有可能是产品的需求有问题,没有市场;有可能市场很大,但是推广得不够成功;有可能推广得不错,但是商业模式有问题,赚不到钱…当然,也有可能是技术问题,是技术不够好,而不太可能是技术选择错了。
Fundebug的技术栈
当我们决定做 Fundebug 的时候,现在所使用的技术并不熟悉,而对于它们的同类型技术,我们更是一无所知。所以,这里也不存在所谓的选择的问题,我们使用了自己会用的技术:Angular + Node.js + MongoDB。它们 使用者足够多并且保持更新 ,符合我所说的标准。对于这样的似乎有些 轻率 技术选择,基本上没有对我们产品开发造成什么困恼,用户需要的功能我们能够尽量满足。或者说,正真困恼我们的从来都不是技术选择所造成的问题,而是 产品设计、市场推广、用户沟通 等问题。
我会负责一些后端开发,对于我们的技术栈,我热爱Node.js,因为它语法简洁,文档清晰、有着简单的异步编程模式和丰富的NPM生态系统;我也很喜欢MongoDB, 因为它的数据模型足够灵活,然后文档非常详细,运维起来轻松很多。这里没有丝毫冒犯Java和MySQL的意思,因为我几乎完全没有接触过它们,所以无法进行比较。我也相信,Java和MySQL也非常优秀,如果我们当初选择它们应该也没有什么问题。
对于Fundebug的技术栈,我经常喜欢和人炫(chui)耀(niu)的一点是 我们的所有应用包括MongoDB都是运行在 Docker 容器里面,这极大的简化了我们的运维工作 。把应用打包到Docker镜像里面之后,我们只需要在集群上安装Docker,而不需要安装任何应用,就可以在任意节点运行任意应用。我们可以根据需要(重新分配CPU和内存资源或者进行多副本扩容)随时在任意节点之间移动应用。在集群需要增加新的节点时,也只需要安装Docker,这个新节点可以用来运行任何应用。我一直在思考Docker的价值,发现它确实很有用。所谓 “如果你手里有一把锤子,所有东西看上去都像钉子” ,我用了将近4年Docker,非常熟悉也非常喜欢,那我当然觉得Docker是个好东西。如果我们不使用Docker会怎样?运维当然会比较痛苦,但是我们应该也没有什么大问题。大量公司还没有Docker化,它们都活着好好的。
我对技术的迷思
和很多开发者,我也曾经迷信过一些技术,谁没年轻过呢?
大三暑假学了一门叫做 《大规模数据处理/云计算》 的课,听着很炫酷,其实主要是学习Hadoop,用Hadoop去实现PageRank等算法。PageRank是Google创始人提出的网页 排序 算法,是Google搜索引擎的基础。Hadoop如此厉害,居然可以造Google,当时年少无知,觉得学会了Hadoop就够了。事实上,知乎上也有类似的问题: Hadoop 就业前景如何? 但是,现在呢?Hadoop的光环早已褪去,它只不过是对大规模数据进行批处理的常规工具,并没有太大门槛。而Hadoop生态系统还有很多其他 工具 比如Spark, HBase等,仅仅使用Hadoop完全不足以应对各种复杂业务场景。
读研的时候第一次接触Docker,被深深吸引,因为Docker可以完美解决软件安装和配置的问题。大学毕业设计我曾花了至少1个星期时间配置一个4个实体机器组成的Hadoop集群(当时不熟悉Linux),而使用Docker的话,无需安装,可以直接运行。我的开源项目 hadoop-cluster-docker 就是将Hadoop集群运行到多个Docker容器中,这个项目已经累积了近千个Star,可见大家对于使用Docker简化Hadoop安装还是非常认可的。我接触Docker的时间算是很早了,Docker最热门的时候还收到过大公司的相关工作邀请,因此觉得熟悉Docker非常好,这次算是站在风口了。而现在呢?Docker已经逐渐普及化!因为Docker并没有什么高深之处,上手非常快。国内很多大公司,例如 腾讯 , 京东 等早已Docker化。
无论是Hadoop和Docker,多少都算是改变世界的技术,也曾经大红大紫,现在依然在发光发热,但是早已不再自带光环效应。这也是技术发展的客观规律,新的技术不断出现,它们解决了某些问题,受到热捧,然后逐渐普及,被更新的技术所超越甚至取代。
事实上,我从来也没有依靠Hadoop或者Docker去工作,它们也是靠不住的。技术发展如此之快,怎么可能一招鲜吃遍天,现在热门的技术迟早会冷却,甚至会被淘汰。再说,技术是为工作服务的,而不是围绕技术栈去圈定自己的工作内容;工作的时候,需要什么技术就学习什么技术,永远呆在舒适区是一件很危险的事情。
参考
关于Fundebug
Fundebug 专注于JavaScript、微信小程序、微信小游戏,Node.js和Java实时BUG监控。
自从2016年双十一正式上线,Fundebug累计处理了5亿+错误事件,得到了众多知名用户的认可。欢迎免费试用!
版权声明: 转载时请注明作者<b><a href="https://kiwenlau.com" target="_blank" title="KiwenLau">KiwenLau</a></b>以及本文地址: <b><a href="https://kiwenlau.com/2018/07/19/technology-selection-is-not-critical/" target="_blank" title="不要争了!技术选择没那么重要">https://kiwenlau.com/2018/07/19/technology-selection-is-not-critical/</a></b>
以上所述就是小编给大家介绍的《不要争了!技术选择没那么重要》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 13 种测试技术选择指南
- 坚定你选择的前端技术方向
- 不要争了!技术选择没那么重要
- 缓存技术PK:选择Memcached还是Redis?
- 软件技术职业选择之道.pdf
- 区块链技术语言:Go语言选择语句 | 十
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Machine Learning
Kevin Murphy / The MIT Press / 2012-9-18 / USD 90.00
Today's Web-enabled deluge of electronic data calls for automated methods of data analysis. Machine learning provides these, developing methods that can automatically detect patterns in data and then ......一起来看看 《Machine Learning》 这本书的介绍吧!