什么才是定制化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应用则需要在云服务厂商提供的服务之上进行定制.例如,通常的图像识别只能做到分析照片的主题内容,而我的 ...
随机推荐
- 02-flask项目创建及debug模式的开启
一.flask文件的创建 打开pycharm,选择flask文件,选择相关配置,需要配置的有虚拟环境,flask文件名.如下图所示: 新建的flask文件如下所示: static:用来存放静态文件,包 ...
- 浏览器如何执行JS
作为JS系列的第一篇,内容当然是浏览器如何执行一段JS啦. 首先通过浏览器篇我们可以得知,JS是在渲染进程里的JS引擎线程执行的.在此之后还要了解几个概念,编译器(Compiler).解释器(Inte ...
- 【Python学习笔记二】开始学习啦!如何在IDEA中新建python文件
1.新建module 2.选择本地安装的python 3.右键新建的module,创建python file就可以开始编程了 4.有时候回出现无法识别python内建函数的问题,就是运行没 ...
- JAVA面向对象:三大特征 封装讲解
一.JAVA封装 1.封装的理解 封装是 JAVA 面向对象思想的 一 种特性,也是一种信息隐蔽的技术 2.封装的原则 将类中的某些信息隐藏起来,来防止外部程序直接访问,通过类中的方法实现对隐藏的信息 ...
- python爬虫入门(4)----- selenium
selenium 简介 selenium使用JavaScript模拟真实用户对浏览器进行操作.测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户 ...
- BUUCTF-web web1 (无列名注入)
注册并登录后发现,sql注入,注入点在广告申请的界面.加单引号发现报错 先通过insert插入数据,然后再通过id查询相应的数据,所以是二次注入. 常见报错函数updatexml,floor以及ext ...
- Java瞬态变量transient
我们都知道,阳光是看得见却摸不着的.它真实的存在,但是却无法将其装在罐子里,这是因为光子不具有静止质量.这注定我们只能利用光子而不能将其捕获(或许只是暂时).在Java中,有一种变量就像光子一样, ...
- 《吊打面试官》系列-Redis基础知识
前言Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难.作为一个在互联网公司面一次拿一次offer的面霸(请允许我使用一下 ...
- json互相转换
C#的后台 json转换为对象 JavaScriptSerializer js = new JavaScriptSerializer(); 对象 resacc = js.Deserialize< ...
- 【Laravel 】数据迁移文件常用方法速查表
一.存储引擎.字符编码相关操作 命令 描述 $table->engine = 'InnoDB'; 指定表的存储引擎(MySQL) $table->charset = 'utf8'; 指定数 ...