2019独角兽企业重金招聘Python工程师标准>>>

摘要: 技术没有高下之分,做好产品才是王道。

很多开发者非常热衷于比较不同技术,比如: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、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java线上应用实时BUG监控。 自从2016年双十一正式上线,Fundebug累计处理了10亿+错误事件,付费客户有Google、360、金山软件、百姓网等众多品牌企业。欢迎大家免费试用!

版权声明

转载时请注明作者Fundebug以及本文地址: https://blog.fundebug.com/2018/07/19/technology-selection-is-not-critical/

转载于:https://my.oschina.net/u/3375885/blog/3024948

不要争了!技术选择没那么重要相关推荐

  1. 被同事嘲笑说技术方案没深度?

    大家好,我是Z哥. 程序员群体中有个很好玩的现象. 工作年限短的程序员热衷于设计"高大上"的技术方案,而工作年限长的则对技术方案好像不太感冒,上手就撸代码. 然后呢,年限短的程序员 ...

  2. CoreCRM 开发实录——开始之新项目的技术选择

    2016年11月,接受了一个工作,是对"悟空CRM"进行一些修补.这是一个不错的 CRM,开源,并提供一个 SaaS 的服务.正好微软的 .NET Core 和 ASP.NET C ...

  3. 技术选择真的没有那么重要

    清凉一夏 对于一个产品,技术仅仅只是实现手段.或者说,条条大路通罗马,这个产品可以用Angular + Java + MySQL实现,那它用Vue.js + Node.js + MongoDB来实现也 ...

  4. 移动应用开发技术选择六要素

    文 / 李亮 作者从平台环境.操作系统.设备能力.云端.应用类型.跨平台开发六大方面分享了其在移动应用开发中的技术选择经验. 这是一个新的时代.新的机会.自从2007 年1月乔布斯揭开iPhone的面 ...

  5. 有技术,没资金,没市场渠道,如何草根创业?

    有技术,没资金,没市场渠道,如何草根创业?   通常这种人年龄都在30到38岁左右,在众多著名公司研发一线混迹多年, 有着充分的产品研发经验,面临职业天花板的危机,往往缺乏更多市场人脉,依然有着一颗愤 ...

  6. Interview:算法岗位面试—10.16下午—上海某公司算法岗位(偏图像算法,国内顶端医疗行业)技术面试之一点技术都没问

    Interview:算法岗位面试-10.16下午-上海某公司算法岗位(偏图像算法,国内顶端医疗行业)技术面试之一点技术都没问 反思:时间把控,应该更好一点,讲解内容,应该更全面一点,最重要的是,讲解的 ...

  7. 漫画丨让你专心干技术,没让你干到35岁啊…

    漫画丨让你专心干技术,没让你干到35岁啊- https://www.toutiao.com/i6934625131939774983/?tt_from=weixin&utm_campaign= ...

  8. 转载:如何开发高性能低成本的网站之技术选择

    如何开发高性能低成本的网站之技术选择 每个企业都是慢慢发展起来的,在起步阶段成本是一个不得不考虑的重大问题 .直接入正题: 前台框架:  ASP.NET MVC + Jquery + Json + F ...

  9. 电子商务系统的建设方式及技术选择

     电子商务系统的建设方式及技术选择 1.1.1 电子商务系统的建设方式 电子商务系统的建设方式目前基本上有三类,第一种方式是整个系统由企业自己建设:第二种方式是委托专业的IT企业实施系统的集成和开发: ...

  10. 云原生分布式数据库云平台技术选择

    Part 1 - 云平台简介 开务数据库(原:云溪数据库)云平台是由开务数据库公司开发的针对特定的开务数据库量身定做的数据库运维管理平台,其目的旨在于:提升用户对数据库部署操作的体验,为用户提供数据库 ...

最新文章

  1. 关于手风琴效果延迟执行解决方式
  2. 网站测试自动化系统—系统应该有的功能
  3. 日常生活小技巧 --惠普战66三代 重装系统
  4. 老万的java技术书单:你还在吃快餐吗?
  5. java圆柱的底面积体积,计算圆柱的底面积和体积
  6. java中replaceall用法_Java中String的ReplaceAll使用小结
  7. 2019年前端面试都聊啥?一起来看看
  8. java源码编译_java 源码编译
  9. FZCCHJW--GB1-0-GBpc-EUC-H:在系统中未找到字体;已替换缺少的字体。
  10. EXCEL多项式曲线拟合很好实际验算误差大的解决办法
  11. BackTrack4——利用***测试保证系统安全
  12. DXGI高帧率屏幕录像软件源码解析(声音捕获,抓屏,ffmpeg录像,MP4录像,flv录像,麦克风采集)(第2篇声音采集部分)
  13. POJ 1945 Power Hungry Cows(打表技巧)
  14. python之Unitest框架
  15. Java操作Excel - Easy Excel
  16. ueditor(JSP版)如何实现word文档的导入和下载功能
  17. css字体样式渐变导致360浏览器vue兼容性问题
  18. 在Windows程序中打开控制台的程序
  19. ue4 无效模拟选项:形体被设置为模拟物理,但启用碰撞不兼容
  20. 使用webStorm创建一个vue项目

热门文章

  1. 记录利用CSS完美解决前端图片变形问题
  2. PHP线程安全和非线程安全有什么区别
  3. Failed to create the java virtual machine完全解决办法
  4. 查看Unix系统是32位还是64位
  5. 在 Hibernate 中出现 database product name cannot be null 时怎么解决?
  6. [转] 深入浅出oracle锁---原理篇
  7. Flex_As操作大全
  8. iOS:NO suitable application records were found.Verify your bundle identifier 'com***'is correct
  9. 刚开始学习.NET 怎么样能使自己学习的更快点啊?
  10. TypeScript - 字符串字面量类型