什么才是定制化IDE的核心价值?
写在前面
自 2018 年初,就与 VSCode 结下了不解之缘,从一份选型报告开始,一蹉跎就是 2 年多
期间反复思索着一个挥之不去的问题:定制化 IDE 产品的核心价值是什么?
事实上,答案并不唯一,从不同角度看就有不同的价值理解
一.解决问题的角度
首先,IDE(集成开发环境)是一种通用工具,能够解决两大块问题:
开发体验:集项目管理、代码编辑、编译构建、调试等功能于一体,避免开发体验上的割裂感
效率:将相关工具套件收纳到开发环境中,降低零碎工具的学习、使用成本
一气呵成、顺滑流畅的开发体验,嘬着咖啡、高效产出的工作效率是每个开发者都想拥有的。一款通用 IDE 好比一张书桌,文件夹、稿纸、铅笔、橡皮擦全都在手边,书籍文献、咖啡、台灯也陈列在侧,坐在这样一张书桌前创作,体验和效率一定不会太差
而定制化的专用 IDE 通常是为了满足特殊需要,解决特定问题的,例如:
特殊技术方案(小程序、跨端技术等)的开发体验和效率问题:鼠绘创作需要更现代化的书桌,音乐创作可能需要完全不同的一些专业设备
业务特定的具体效率问题(模板项目生成、可视化辅助开发、性能诊断等):针对水彩画创作,专用书桌上放着带有工作室印章的水彩纸
上下游边界的协作效率问题(设计素材管理、发布流程接入等):将书桌连接到生产流水线,创作完成立即交付出去
用户的专业性问题(拖拽搭建,运营投放等):智能书桌面向非专业开发者,只要填一些表格就能快速生成作品,摁下按钮就能自动交付
P.S.一些专用 IDE 同时解决了以上几方面的问题,比如支付宝小程序 IDE同时解决了前三项问题

因此,从解决问题的角度来看,定制化 IDE 的核心价值在于:
专用:面向特定领域量身定制,在既定场景下能够提供顺畅、一致的开发体验和效率保障
集大成:从头到尾提供一条龙服务,不仅能够很好地补足工程链路的前半段(开发、调试),还能与成熟的后半段衔接起来
开箱即用:繁琐的、复杂度高的部分都被收进了 IDE 里,提供给用户的是一张整洁、简约的工作台
二.发展的角度
从一款产品发展的角度来看,定制化 IDE 要经历这些阶段:
生死存亡
兼容并包
连接融合
渠道生态
在不同阶段具有不同的核心价值
生死存亡
这个阶段的定制化 IDE 可能存在诸多不完善,比如:
核心能力少:能吸引用户的卖点不多
稳定性欠佳:使用中比较容易遇到问题
易用性差:有些功能用起来不那么顺畅
价值方面几乎没有明显的体现,因此其核心价值是听话,即可塑性强
因为此时产品还只是初具雏形,既没有形成用户习惯,也不用担心历史包袱,只要不是非常不合理的需求,就都可以做,前期少量用户的需求得以快速满足,作为一种正向反馈传递给宝贵的早期尝鲜用户,同时保持快速迭代,尽一切努力赢得一些核心用户
P.S.听话,难道不会被用户带偏吗?事实上,早期问题一抓一大把,用户提出的大多是明显的功能、体验问题,本就应该优先解决,只是顺带附送积极的正反馈
兼容并包
生存下来之后,开始拥有了一少部分核心用户,如何吸引更多的用户从通用 IDE 转换过来是该阶段的首要目标,常用策略比如:
细打磨:优先解决可用性、易用性问题,保证开箱即用
强引导:新工具优先集成到定制化 IDE 中,不支持 CLI 等其它方式,引导用户使用
接进来:现有工具/平台陆续接入定制化 IDE,逐步完善工作流
推出去:每版都放出一两个小惊喜,给犹豫观望的用户多一些信心
定制化 IDE 贴合业务场景的定制程度越高(与通用 IDE 的区别越大),业务开发对定制化 IDE 的依赖程度就越高,因此这一阶段的核心价值在于连接开发人员与工具/平台,将关键工具/平台接入到开发工作流中,触手可及。接入越多,工作流越完备越顺畅,整合提效的价值就越大
融合互补
关键工具/平台接进来之后,定制化 IDE 的专用功能已经相对完整,并且积累了一定规模的用户量,接下来更进一步的价值要通过融合互补来发掘:
融合:实现工具的无缝融合,进而产生 1 + 1 > 2 的组合效果
互补:对于在单一环节难以解决的问题,可以沿流程向上/向下追溯,通过工具链互补解决
工具链与集成开发环境(或者叫工作台)最大的区别在于,前者只是承接,而后者能够实现融合。此时定制化 IDE 的价值已经不仅限于解决特定环节的开发体验和效率问题了,而是着眼于整个工作流,集全工程链路之力解决之前难以解决的问题
渠道生态
融合互补的下一阶段是渠道生态,进入该阶段的标志是定制化 IDE 服务了 80%以上的目标用户,用户量增速变缓,平台属性凸显出来,此时可能的价值方向有:
渠道推广:定制化 IDE 连接着大量用户,新功能入驻即有机会获得大量用户,放大价值
孵化生态:孵化面向业务场景的差异化能力,如调试、测试
这一阶段,大要发挥大的优势,定制化 IDE 的能力支持从大场景转入小场景,从封闭走向开放,开启更多可能性,对应的核心价值是孵化生态,持续产生价值
三.布局未来的角度
前端工程化历经了这样几个阶段:
CLI 工具:脚手架、构建工具、调试服务等等
GUI 客户端:GUI 化的 CLI 工具,除交互方式外区别不大
定制化端 IDE:基于 IDE 扩展脚手架、构建、调试、发布、监控等工程链路能力
云 IDE:基于 Web IDE 扩展一系列工程链路能力,进入云研发时代
从百花齐放的 CLI 工具时代进入短暂的 GUI 客户端时期,接着掀起定制化端 IDE 的浪潮,或许最后将归于云 IDE 的巨幕之下
开源端 IDE 的日趋成熟,大幅降低了定制成本,贴合业务场景定制专用 IDE 成为可能,以源码为中心的开发环节被正式纳入了前端工程化体系,作为提升工程效率的下一个突破点
时至今日,以云 IDE 为中心的全云研发模式已经依稀可见:

基于 FaaS 的端云一体化开发是 IDE 上云的主要推力,伴随着 FaaS 带来的 BFF、SSR 技术升级、研发模式变化,云 IDE 作为云研发工作台,核心价值是让前端工程化体系更进一步,提供需求-开发-测试-运维的完整链路支持
什么才是定制化IDE的核心价值?的更多相关文章
- Oceanus:美团HTTP流量定制化路由的实践
背景简述 Oceanus是美团基础架构部研发的统一HTTP服务治理框架,基于Nginx和ngx_lua扩展,主要提供服务注册与发现.动态负载均衡.可视化管理.定制化路由.安全反扒.session ID ...
- 使用beanstalkd实现定制化持续集成过程中pipeline
持续集成是一种项目管理和流程模型,依赖于团队中各个角色的配合.各个角色的意识和配合不是一朝一夕能练就的,我们的工作只是提供一种方案和能力,这就是持续集成能力的服务化.而在做持续集成能力服务化的过程中, ...
- 网易云基于 Kubernetes 的深度定制化实践
本文由 网易云发布. 2017 年,Kubernetes 超越 Mesos 和 Docker Swarm成为最受欢迎的容器编排技术.网易云从 2015 下半年开始向 Kubernetes 社区贡献代 ...
- 定制化移动办公APP:打造企业专属的“钉钉”“纷享销客”,实现企业办公管理一体化
一.项目背景 随着信息化社会的高速发展,市场竞争日益激烈,传统的管理和办公系统多且复杂,用户需要使用多个系统才可完成一项工作,而且各个系统的界面和风格存在差异,造成了信息查找不便,大大降低了用户的工作 ...
- 定制Eclipse IDE之插件篇(二)
上文回顾:定制Eclipse IDE之插件篇(一) 延续上一篇的插件篇,这一篇将会讲到一个最关键的插件aptana. 一.aptana插件 官方的解释我就不说了,从下面图可以看到插件提供了什么功能,列 ...
- 定制Eclipse IDE之插件篇(一)
上文回顾:定制Eclipse IDE之功能篇(二) 在这篇文章中,我会将我定制eclipse用到的其他插件罗列出来. 一.汉化插件 Eclipse本身是英文显示的,我们能够通过插件汉化. 1. 选择 ...
- 定制Eclipse IDE之界面篇
为什么要定制IDE? 在工作时候,当公司有了自己的框架,给自己开放人员用,甚至是可以卖的时候,我们可以做成一个产品,而这个产品将包括框架本身.文档.工具.教程等等.工具之中最重要的莫过于开发 ...
- python+robot framework实现测报告定制化和邮件发送
前面已经介绍了python+robot framework自动化框架和基本原理的实现,详情请看 python+robot framework接口自动化测试 本章主要讲解报告已经产生那如何以自动化的方式 ...
- 初探机器学习之使用百度EasyDL定制化模型
一.Why 定制化模型 一般来说,各大云服务厂商只会提供一些最常见通用的AI服务,针对具体场景的AI应用则需要在云服务厂商提供的服务之上进行定制.例如,通常的图像识别只能做到分析照片的主题内容,而我的 ...
随机推荐
- 数据可视化之powerBI基础(十八)Power BI度量值的格式如何修改?这里有三种方式
https://zhuanlan.zhihu.com/p/99818030 在知识星球遇到的问题中,有不少朋友问如何修改数值型度量值的格式,比如,新建的度量值如何显示为百分比或者千分位等等,这篇文章 ...
- python处理json总结
一.首先,了解下什么是JSON? JSON:JavaScript Object Notation [JavaScript 对象表示法] JSON 是一种轻量级的数据交换格式,完全独立于任何程序语言的文 ...
- C# 接口与抽象类的区别? 情景下使用接口,什么情景下使用抽象类?
接口与抽象类的区别: 接口支持多继承:抽象类不能实现多继承. 接口可以用于支持回调:抽象类不能实现回调,因为继承不支持. 接口只包含方法.属性.索引器.事件的签名,但不能定义字段和包含实现的方法:抽象 ...
- db2数据库基本添加删除表字段总结
1.添加字段 alter table [table_name] add [column_name] [column_type] 2.更改字段类型 alter table [table_name] a ...
- Python Ethical Hacking - NETWORK_SCANNER(2)
DICTIONARIES Similar to lists but use key instead of an index. LISTS List of values/elements, all ca ...
- Python Ethical Hacking - BACKDOORS(8)
Cross-platform hacking All programs we wrote are pure python programs They do not rely on OS-specifi ...
- P3379 最近公共祖先(LCA) 洛谷
题意简单明了(这就是个模板). 就是让我们找2个节点的公共祖先而已,但我们要讲的做法不是生硬的爆搜,而且直接搜好像过不去…… 这次就讲我往后拖了n多天才开始学了倍增LCA. 嗯,这个题,如果2个节点的 ...
- xenomai内核解析之信号signal(一)---Linux信号机制
版权声明:本文为本文为博主原创文章,转载请注明出处.如有错误,欢迎指正.博客地址:https://www.cnblogs.com/wsg1100/ 目录 1. Linux信号 1.1注册信号处理函数 ...
- C++语法小记---自己实现Thread类
自己实现Thread类 在C++的类中,普通成员函数不能作为pthread_create的线程函数,如果要作为pthread_create中的线程函数,必须是static ! 参考:https://b ...
- 想理解JVM看了这篇文章,就知道了!(一)
前言 本章节属于Java进阶系列,前面关于设计模式讲解完了,有兴趣的童鞋可以翻看之前的博文,后面会讲解JVM的优化,整个系列会完整的讲解整个java体系与生态相关的中间件知识.本次将对jvm有更深 ...