作者:Changwei\来源:https://www.zhihu.com/questio...知乎上有个问题:分享一个有趣的答案。1我是JetBrains的忠实粉丝。我学习编程语言大约10年,使用JetBrains大约7年。在这么多年学习编程和使用JetBrains全家桶的过程中,我认为JetBrains的成功不仅仅是技术上的原因,更重要的是产品的创新。而这些创新离不开大型软件工程的实践经验,因为只有经历过大型软件项目的开发和不断迭代的过程,才能知道一个优秀的IDE需要哪些功能,哪些功能可以帮助程序员高效地开发软件。.JetBrains的IDEA系列最早的“杀手级”功能就是refactor(重命名)重构功能。例如,在IDEA中,可以使用Shift+F6快速重命名一个变量,这个重命名操作将应用于所有引用该变量的代码。这就需要IDEA解析整个项目中的所有代码,并跟踪它们之间的引用关系。这种功能的背后离不开强大的代码静态分析技术。所以,要做专业的软件,首先需要技术支持,其次需要产品设计的考虑。IDEA具有极其强大的重构功能,包括各种强大的抽取、路径移动等,IDEA的功能远没有它强大。其功能包括但不限于图形化debug、图形化git操作、一键rebase代码结构整理,即左下角的结构功能区(我用过CLion后就没用过sourceinsight)代码收集,并且同样友好的跟踪代码并与各大主流框架和编程语言紧密结合(例如,WebStorm对npm的支持极其强大,可以分析脚本和.是否匹配package.json等)最新代码与me函数,在疫情期间远程工作的背景下,该函数可以方便同事之间无需肢体接触的手拉手debug生成器(比如JavaBean中的gettersetter方法可以一键生成),你也可以配置实时模板和文件模板。比如我在写React.js的时候,经常会有很多重复的样板代码,比如const{children}=this.props。我把这个配置成cctp,我只要按cctp再按tab就可以快速进入更多的功能。以上功能的思路先不说,JetBrains的产品经理需要有很长时间的一线编码经验,而且这些软件工程项目的质量要求非常高(如果是狮山项目,没有必要使用重构功能),尤其是从0开始构建项目后,后来遇到重构的需求。2、这种软件在国内出不来的原因主要是:编码经验极长的人没有国外那么多。大多是2010年后互联网红利才开始学编码的,很多甚至是生化环保材料。转码。人少了,生出这些天才产品经理的机会就更小了。大多数人仍然有一个“勤劳保守”的观念,即认为使用工具来提高生产力是一种懒惰和投机取巧的表现,因此推荐使用vim等高门槛的工具。而学习曲线陡峭的软件是“技术能力强”、“能刻苦钻研”的习惯。优秀的产品经理需要跨界经验。比如JetBrains的产品经理,肯定不是画原型写PRD那么简单。找出他们真正需要什么。站在他们的角度去思考一个优秀的IDE应该给我带来什么样的功能。国内一些PM论坛的交流内容还是以互联网APP产品为主。这类产品的PM还是留在学校学习UI设计,出来跟着《人人都是产品经理》的网课学习做PPT画原型PRD级别。PM上限太低,缺乏垂直行业经验和人脉导致无法做出顶级工业软件,缺乏工程师文化。所谓工程师文化,是指产品进步由工程师推动,工程师用科学技术提升产品用户体验、可靠性、安全性。由于各种环境原因。真正具备“工程师心态”的人,还是人群中的少数。以“功利心”为GPA学习,为KPI工作,很难做出优秀的专业软件。工程师文化缺失的根源与经济基础和分配不均有关。当经济基础太差的时候,大家更容易选择保守,而保守又不容易引发创新的思考。如果分配平衡太差,“工程师”会更倾向于用“技能”去渗透和抢夺少数资源,而不是用“科技”去创造更多的资源和价值。奶粉钱、产假、房价、教育公平,没有好的环境,留不住顶尖的工程师和专业的产品经理。知乎说不好的事情就不用提了。..做工业软件,最好是需要这个领域的工程师直接转行做工业软件的产品经理,因为只有本行业的人才最了解自己的人。而我们现在的情况是,有工程师思维和工程师文化的公司少之又少,更别提真正有丰富经验的工程师转PM,然后设计出优秀的工业软件来帮助我们加快生产效率,解放生产力。3最后,让我们谈谈JetBrains在客户获取和保留方面所做的努力。很多工业软件都有帮助文档。但是你可以问问自己,你真的见过专业软件的IDE吗?你打开专业软件的帮助菜单了吗???以JetBrains的Goland为例。首次安装时,首次启动软件时会出现开机画面。它将使用简洁的文档和示例代码来帮助您快速掌握此IDE的各种功能。如图,这是goland的learn函数,此时图中展示了如何使用快捷键快速删除代码行或换行符,自动将可变参数过长的代码转换成更易读的代码多行格式。无论是示例代码还是帮助文档的文案,都力求简明扼要,即使是英文,也选择了计算机领域常用的英文单词,不会对阅读造成太大障碍。非英语母语者。只有用户能够快速学会使用你的软件,你才能长久留住客户。而这一点,在我见过的大部分世界知名顶级专业软件中(包括设计领域的Adobe全家桶,电子工程领域的MATLAB,CadanceICC,AltiumDesigner,TI德州仪器的LabView和Multisim,IntelQuartus、XilinxVivado)都做得很差,基本没有像JetBrains那样提供简明扼要的讲解和恰到好处的示例代码让你快速上手。一个专业的软件很难学,学习门槛极高,也很难留住客户。而JetBrains在快速入门和帮助文档的详细设计上绝对是优秀的。4有人问vim适不适合键盘操作?或者vim有没有这种直接在ssh上编辑代码的场景。首先是键盘适配。如果你深入使用过JetBrains,你其实会发现IDEA的纯键盘操作效率并不比vim低。您想要的所有功能都有默认的快捷键。如果没有,您也可以自己配置它们。而这个配置是云同步的。我在公司电脑、自己的surface平板、家里的游戏机上同步整个平台,自动补全可以根据自己的编码领域习惯编写自定义直播模板。最后,ctrl+shift+a和alt+enter几乎可以在任何地方完成大部分写代码的常用操作。我不认为vim在这方面比JetBrains更高效。另外就是ssh直接编辑代码的场景。我认为这种情况非常危险且不正常。真正工程化的项目,都是用IDE在本地编辑的。IDE的静态分析功能可以帮助您排查可能存在的错误。确认没有问题后,用版本控制工具提交。在提交过程中,IDEA会运行代码格式化和lint规则检查,导入优化,清理无用代码,并自动为你做GPGgit签名。如果是公司或开源组织的项目,它会自动为你更新版权,然后做TODO检测,代码分析,githook,最后推送代码,CI/CD平台开始运行单元测试、集成测试等,全部通过后会由CI平台通过SSH自动发布到生产环境。如果你的代码经常需要直接连接SSH,直接用vim修改,没有任何工程工具的预处理和codereview,那我只能说你的项目很不规范,开发这样的当然是经验了不规则项目。还不如一个IDE能带来的好处。好了,这个疑惑已经解决了,现在我们可以继续愉快的写代码了。.这里免费提供最新的IDEA激活码,个人测试,提取链接:https://docs.qq.com/doc/DVU9m...其实IDEA也有开源社区版,而且付费专业版也很容易免费申请激活码可以参考教程:http://www.javastack.cn/intel...关注我,栈长会继续分享IDEA系列教程,带你领略IDEA的二脉!近期热点文章推荐:1.1,000+Java面试题及答案(2022最新版)2.厉害了!Java协程来了。..3.SpringBoot2.x教程,太全面了!4.不要用爆破爆满画面,试试装饰者模式,这才是优雅的方式!!5.《Java开发手册(嵩山版)》最新发布,赶快下载吧!感觉不错,别忘了点赞+转发!
