共计 3651 个字符,预计需要花费 10 分钟才能阅读完成。
作者:昌维 \
起源:https://www.zhihu.com/questio…
知乎上有一个发问:
分享一个很有意思的答复。
1
我是一名 JetBrains 的忠诚粉丝。我学习编程语言的经验大略有 10 年左右,应用 JetBrains 大略有 7 年左右。
在这么多年的学习编程和应用 JetBrains 全家桶的过程中, 我认为 JetBrains 的胜利不仅仅是技术起因,还有的是产品下面的翻新。
而这些翻新都离不开大型软件工程的实战经验,因为只有经验过大型软件工程的开发与一直迭代过程,才晓得一款优良的 IDE 外面须要什么性能,哪些性能可能帮忙程序员高效地开软件。
网传 JetBrains 的 IDEA 系列最早的“杀手锏”性能是 refactor(rename)重构性能。
例如,在 IDEA 中你能够应用 Shift+F6 疾速将一个变量改名,并且这个改名操作将利用到所有援用了该变量的代码。
这就须要 IDEA 对整个我的项目中的所有代码做 parser,追踪他们之间的援用关系,这类性能的背地离不开弱小的代码动态剖析技术。
所以做业余软件,首先是须要有技术方面的反对,其次是产品方面的设计考量 IDEA 的重构性能极为弱小,包含各种弱小的 extract,门路挪动等。
IDEA 的弱小远不如此。它的性能包含但不限于
- 图形化 debug
- 图形化 git 操作,一键 rebase
- 代码构造梳理,也就是左下角那个 structure 功能区(自从用过 CLion 之后我在也没用过 source insight 了)
- 代码珍藏,同样对 trace code 敌对
- 和各大支流框架和编程语言的紧密结合(例如 WebStorm 对 npm 有极为弱小的反对,可能剖析 scripts 和 .nvm 主动抉择适合的 node.js 版本启动 script,可能主动剖析 node_modules 判断以后依赖是否匹配 package.json 等)
- 最新推出的 code with me 性能,在疫情近程工作的大背景下,这个性能可能不便共事之间在无奈物理接触的状况下进行手把手 debug
- generator(例如 JavaBean 中的 getter setter 办法能够一键生成),也能够配置 live template 和 file template,例如我写 React.js 的时候常常会有很多重复性的样板代码,例如 const {children} = this.props,这个我就配置为 cctp,我只有按下 cctp 再按 tab 就能疾速输出更多功能就不说了
想到以上这些性能的创意,须要 JetBrains 的产品经理须要有极长时间的一线 coding 教训,并且这些软件工程我的项目的品质要求很高(如果是屎山我的项目,也就没有用到重构性能的必要性),尤其是经验过从 0 搭建起一个我的项目,并且前面又遇到须要重构的状况。
2
而国内做不进去这类软件,起因也次要有如下 :
- 有极长 coding 教训的人没有国外那么多,大部分是在 2010 年之后的互联网红利开始才学习 coding 的,甚至很多是生化环材转码。人少,那么诞生出这些蠢才产品经理的几率也更少
- 大部分人还是有一种“勤奋的开通”观点,也就是认为应用工具晋升生产力是一种偷懒和投机取巧的体现,推崇应用 vim 等高门槛和学习曲线平缓的软件是一种“技术能力强”,“能享乐学习”的习惯。
- 优良的产品经理须要跨界教训,例如 JetBrains 的产品经理必定不仅仅是画个原型图和写个 PRD 那么简略,这些都须要深刻一线软件行业,把握大量工程师人脉,和十分多的软件工程师交换,理解他们真正须要什么。站在他们的角度思考一款优良的 IDE 应该要给我带来什么样的性能。国内 一些 PM 论坛的交换内容还是以互联网 APP 产品为主,这类产品的 PM 还是停留在学校学学 UI 设计,进去跟着“人人都是产品经理”的网课学学做 PPT 画原型图写 PRD 的程度。PM 的下限程度过低,不足垂直行业的教训与人脉导致了做不出顶级的工业软件不足工程师文化。
- 所谓工程师文化,指的就是产品提高是由工程师推动,工程师应用科学技术晋升产品的用户体验,可靠性,安全性等。因为各种环境起因。真正领有“工程师心态”在人群中还是偏多数,抱有“功利心”去读书刷 GPA,去工作刷 KPI,很难诞生优良的业余软件。不足工程师文化的基本还是和经济基础与调配均衡无关,经济基础过差的状况下,大家会更容易抉择激进,激进则不容易引发对翻新的思考。而调配均衡过差,则会导致“工程师”们更偏向于应用“技巧”去内卷抢得多数资源,而非应用“科学技术”去发明更多资源与价值。
- 奶粉钱,产假,房价,教育偏心,没有好的环境就留不住顶尖的工程师与业余的产品经理,知乎都说烂了的事件就没必要提了。。。
做工业软件,最好就须要是这个畛域的工程师间接转行来做工业软件的产品经理,因为只有本人行业的人才最理解本人人。
而咱们的现状是连抱有工程师思维以及领有工程师文化的公司都十分稀少,更别指望真正的工程师们在领有丰盛教训之后转行 PM,而后设计优良的工业软件帮忙咱们减速生产效率,解放生产力。
3
最初,再谈谈 JetBrains 在获客与留存方面做的致力很多工业软件都有 help 帮忙文档。
然而大家能够扪心自问一下,你们真的有看过业余软件的 IDE 吗?你们有点开过业余软件的 help 菜单吗?
以 JetBrains 家的 goland 为例,当你首次装置时时,首次启动软件会显示疏导画面,外面会应用长篇累牍的文档和样例代码帮忙你疾速把握这款 IDE 的各类 feature
如图所示,这是 goland 的 learn 性能,而图上此时此刻显示的则是如何应用快捷键疾速删除代码行或者换行,以及将过长可变参数的代码主动转换为可读性较强的多行格局。
无论是样例代码,还是帮忙文档的文案,他们都设计得长篇累牍,而且即便是英文,也是抉择了计算机领域常见的英文单词,不会对非英语母语人士造成太多阻碍。
只有当用户可能很快学习上手你的软件,那么你能力短暂留存客户 。
而这一点,在我见过的绝大多数驰名寰球的顶级业余软件(包含设计畛域的 Adobe 全家桶,电子工程畛域的 MATLAB,Cadance ICC、Altium Designer、TI 德州仪器的 LabView 和 Multisim,Intel Quartus,Xilinx Vivado)都做得十分差,根本没有像 JetBrains 那样提供长篇累牍的解释和恰到好处的样例代码让你疾速上手。
一款业余软件令人难以上手,学习门槛极高,也是很难留存客户的。而 JetBrains 在疾速入门与帮忙文档的细节设计上相对能够说是优良至极。
4
有人问 vim 是否适应键盘操作?或者 vim 是否有在 ssh 下面间接编辑代码这种场景。
首先是键盘适应方面,如果你有深刻应用过 JetBrains,其实会发现 IDEA 的纯键盘操作效率并不比 vim 低,你想要的所有性能都有默认快捷键,没有的话也能本人配置,并且这个配置是云端同步的。
我在公司电脑,本人的 surface 平板电脑和家里的游戏机上全平台同步,而且主动实现能够依据本人的 coding 畛域习惯写自定义 live template。
最初是 ctrl+shift+ a 以及 alt+enter 简直能够在任何中央实现绝大部分写代码的罕用操作。我并没有感觉 vim 在这方面有比 JetBrains 的效率高多少。
另外,就是 ssh 间接编辑代码这种场景。
我认为这种场景是十分危险且不标准的做法。真正合乎工程化的我的项目都是本地应用 IDE 编辑,IDE 的动态剖析性能帮你查看出可能出错的中央,确认没问题后,用版本控制工具提交,提交过程 IDEA 会跑代码格式化,lint 规定查看,import 优化,清理 unused 代码,主动帮你做 GPG git 签名。
如果是公司或者开源组织机构的我的项目,还会主动帮你更新 copyright,而后做 TODO 检测,code analysis,git hook,最初 push 代码后,CI/CD 平台开始跑单元测试,集成测试等,全副通过后则主动由 CI 平台通过 SSH 公布到生产环境。
如果你的代码常常须要间接 SSH 连上去间接用 vim 批改,没有通过任何工程化工具的前置解决以及 code review,那么我只能说你的我的项目十分不标准,开发这种不标准的我的项目当然体验不到 IDE 可能带来的益处。
好了,解决了这个纳闷,当初又能够持续欢快的写代码了。。
这里收费提供一个最新 IDEA 激活码,亲测可用,提取链接:https://docs.qq.com/doc/DVU9m…
其实 IDEA 也有开源的社区版本,免费的专业版也很容易申请到收费激活码,能够参考教程:
http://www.javastack.cn/intel…
关注我,前面栈长会持续分享 IDEA 系列教程,带你买通 IDEA 的任督二脉!
近期热文举荐:
1.1,000+ 道 Java 面试题及答案整顿 (2022 最新版)
2. 劲爆!Java 协程要来了。。。
3.Spring Boot 2.x 教程,太全了!
4. 别再写满屏的爆爆爆炸类了,试试装璜器模式,这才是优雅的形式!!
5.《Java 开发手册(嵩山版)》最新公布,速速下载!
感觉不错,别忘了顺手点赞 + 转发哦!