<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          為什么國內(nèi)做不出 JetBrains 那樣的產(chǎn)品?

          共 3697字,需瀏覽 8分鐘

           ·

          2022-07-10 17:50

          知乎上有一個(gè)提問:

          分享一個(gè)很有意思的回答。

          作者:昌維 | 來源:https://www.zhihu.com/question/537774494/answer/2534015588

          1

          我是一名 JetBrains 的忠實(shí)粉絲。我學(xué)習(xí)編程語言的經(jīng)歷大概有 10 年左右,使用 JetBrains 大概有 7 年左右。

          在這么多年的學(xué)習(xí)編程和使用 JetBrains 全家桶的過程中,我認(rèn)為 JetBrains 的成功不僅僅是技術(shù)原因,還有的是產(chǎn)品上面的創(chuàng)新。

          而這些創(chuàng)新都離不開大型軟件工程的實(shí)戰(zhàn)經(jīng)驗(yàn),因?yàn)橹挥薪?jīng)歷過大型軟件工程的開發(fā)與不斷迭代過程,才知道一款優(yōu)秀的 IDE 里面需要什么功能,哪些功能能夠幫助程序員高效地開軟件。微信搜索公眾號(hào):Java項(xiàng)目精選,回復(fù):java 領(lǐng)取資料 。

          網(wǎng)傳 JetBrains 的 IDEA 系列最早的“殺手锏”功能是 refactor (rename)重構(gòu)功能。

          例如,在 IDEA 中你可以使用 Shift+F6 快速將一個(gè)變量改名,并且這個(gè)改名操作將應(yīng)用到所有引用了該變量的代碼。

          這就需要 IDEA 對(duì)整個(gè)項(xiàng)目中的所有代碼做 parser,追蹤他們之間的引用關(guān)系,這類功能的背后離不開強(qiáng)大的代碼靜態(tài)分析技術(shù)。

          所以做專業(yè)軟件,首先是需要有技術(shù)方面的支持,其次是產(chǎn)品方面的設(shè)計(jì)考量IDEA 的重構(gòu)功能極為強(qiáng)大,包括各種強(qiáng)大的 extract,路徑移動(dòng)等。

          IDEA 的強(qiáng)大遠(yuǎn)不如此。它的功能包括但不限于

          • 圖形化 debug
          • 圖形化 git 操作,一鍵 rebase
          • 代碼結(jié)構(gòu)梳理,也就是左下角那個(gè) structure 功能區(qū)(自從用過 CLion 之后我在也沒用過 source insight 了)
          • 代碼收藏,同樣對(duì) trace code 友好
          • 和各大主流框架和編程語言的緊密結(jié)合(例如 WebStorm 對(duì) npm 有極為強(qiáng)大的支持,能夠分析 scripts 和 .nvm 自動(dòng)選擇合適的 node.js 版本啟動(dòng) script,能夠自動(dòng)分析 node_modules 判斷當(dāng)前依賴是否匹配 package.json 等)
          • 最新推出的 code with me 功能,在疫情遠(yuǎn)程工作的大背景下,這個(gè)功能能夠方便同事之間在無法物理接觸的情況下進(jìn)行手把手 debug
          • generator(例如 JavaBean 中的 getter setter 方法可以一鍵生成),也可以配置 live template 和 file template,例如我寫 React.js 的時(shí)候經(jīng)常會(huì)有很多重復(fù)性的樣板代碼,例如 const {children} = this.props,這個(gè)我就配置為 cctp,我只要按下cctp再按 tab 就能快速輸入更多功能就不說了

          想到以上這些功能的創(chuàng)意,需要 JetBrains 的產(chǎn)品經(jīng)理需要有極長時(shí)間的一線 coding 經(jīng)驗(yàn),并且這些軟件工程項(xiàng)目的質(zhì)量要求很高(如果是屎山項(xiàng)目,也就沒有用到重構(gòu)功能的必要性),尤其是經(jīng)歷過從 0 搭建起一個(gè)項(xiàng)目,并且后面又遇到需要重構(gòu)的情況。

          2

          國內(nèi)做不出來這類軟件,原因也主要有如下

          • 有極長 coding 經(jīng)驗(yàn)的人沒有國外那么多,大部分是在2010年之后的互聯(lián)網(wǎng)紅利開始才學(xué)習(xí) coding 的,甚至很多是生化環(huán)材轉(zhuǎn)碼。人少,那么誕生出這些天才產(chǎn)品經(jīng)理的幾率也更少
          • 大部分人還是有一種“勤勞的守舊”觀念,也就是認(rèn)為使用工具提升生產(chǎn)力是一種偷懶和投機(jī)取巧的表現(xiàn),推崇使用 vim 等高門檻和學(xué)習(xí)曲線陡峭的軟件是一種“技術(shù)能力強(qiáng)”,“能吃苦學(xué)習(xí)”的習(xí)慣。
          • 優(yōu)秀的產(chǎn)品經(jīng)理需要跨界經(jīng)驗(yàn),例如 JetBrains 的產(chǎn)品經(jīng)理肯定不僅僅是畫個(gè)原型圖和寫個(gè) PRD 那么簡單,這些都需要深入一線軟件行業(yè),掌握大量工程師人脈,和非常多的軟件工程師交流,了解他們真正需要什么。站在他們的角度思考一款優(yōu)秀的 IDE 應(yīng)該要給我?guī)硎裁礃拥墓δ堋鴥?nèi) 一些PM 論壇的交流內(nèi)容還是以互聯(lián)網(wǎng) APP 產(chǎn)品為主,這類產(chǎn)品的 PM 還是停留在學(xué)校學(xué)學(xué) UI 設(shè)計(jì),出來跟著“人人都是產(chǎn)品經(jīng)理”的網(wǎng)課學(xué)學(xué)做 PPT 畫原型圖寫 PRD 的水平。PM 的上限水平過低,缺乏垂直行業(yè)的經(jīng)驗(yàn)與人脈導(dǎo)致了做不出頂級(jí)的工業(yè)軟件缺乏工程師文化。
          • 所謂工程師文化,指的就是產(chǎn)品進(jìn)步是由工程師推動(dòng),工程師使用科學(xué)技術(shù)提升產(chǎn)品的用戶體驗(yàn),可靠性,安全性等。由于各種環(huán)境原因。真正擁有“工程師心態(tài)”在人群中還是偏少數(shù),抱有“功利心”去讀書刷 GPA,去工作刷 KPI ,很難誕生優(yōu)秀的專業(yè)軟件。缺乏工程師文化的根本還是和經(jīng)濟(jì)基礎(chǔ)與分配平衡有關(guān),經(jīng)濟(jì)基礎(chǔ)過差的情況下,大家會(huì)更容易選擇保守,保守則不容易引發(fā)對(duì)創(chuàng)新的思考。而分配平衡過差,則會(huì)導(dǎo)致“工程師”們更傾向于使用“技巧”去內(nèi)卷搶得少數(shù)資源,而非使用“科學(xué)技術(shù)”去創(chuàng)造更多資源與價(jià)值。
          • 奶粉錢,產(chǎn)假,房價(jià),教育公平,沒有好的環(huán)境就留不住頂尖的工程師與專業(yè)的產(chǎn)品經(jīng)理,知乎都說爛了的事情就沒必要提了。。。

          做工業(yè)軟件,最好就需要是這個(gè)領(lǐng)域的工程師直接轉(zhuǎn)行來做工業(yè)軟件的產(chǎn)品經(jīng)理,因?yàn)橹挥凶约盒袠I(yè)的人才最了解自己人。

          而我們的現(xiàn)狀是連抱有工程師思想以及擁有工程師文化的公司都非常稀少,更別指望真正的工程師們在擁有豐富經(jīng)驗(yàn)之后轉(zhuǎn)行 PM ,然后設(shè)計(jì)優(yōu)秀的工業(yè)軟件幫助我們加速生產(chǎn)效率,解放生產(chǎn)力。

          3

          最后,再談?wù)?JetBrains 在獲客與留存方面做的努力很多工業(yè)軟件都有 help 幫助文檔。

          但是大家可以捫心自問一下,你們真的有看過專業(yè)軟件的 IDE 嗎?你們有點(diǎn)開過專業(yè)軟件的 help 菜單嗎?

          以 JetBrains 家的 goland 為例,當(dāng)你初次安裝時(shí)時(shí),首次啟動(dòng)軟件會(huì)顯示引導(dǎo)畫面,里面會(huì)使用言簡意賅的文檔和樣例代碼幫助你快速掌握這款 IDE 的各類 feature

          如圖所示,這是 goland 的 learn 功能,而圖上此時(shí)此刻顯示的則是如何使用快捷鍵快速刪除代碼行或者換行,以及將過長可變參數(shù)的代碼自動(dòng)轉(zhuǎn)換為可讀性較強(qiáng)的多行格式。

          無論是樣例代碼,還是幫助文檔的文案,他們都設(shè)計(jì)得言簡意賅,而且即使是英文,也是選擇了計(jì)算機(jī)領(lǐng)域常見的英文單詞,不會(huì)對(duì)非英語母語人士造成太多障礙。

          只有當(dāng)用戶能夠很快學(xué)習(xí)上手你的軟件,那么你才能長久留存客戶

          而這一點(diǎn),在我見過的絕大多數(shù)馳名全球的頂級(jí)專業(yè)軟件(包括設(shè)計(jì)領(lǐng)域的 Adobe 全家桶,電子工程領(lǐng)域的 MATLAB,Cadance ICC、Altium Designer、TI 德州儀器的 LabView 和 Multisim,Intel Quartus,Xilinx Vivado)都做得非常差,基本沒有像 JetBrains 那樣提供言簡意賅的解釋和恰到好處的樣例代碼讓你快速上手。

          一款專業(yè)軟件令人難以上手,學(xué)習(xí)門檻極高,也是很難留存客戶的。而 JetBrains 在快速入門與幫助文檔的細(xì)節(jié)設(shè)計(jì)上絕對(duì)可以說是優(yōu)秀至極。

          4

          有人問 vim 是否適應(yīng)鍵盤操作?或者 vim 是否有在 ssh 上面直接編輯代碼這種場景。

          首先是鍵盤適應(yīng)方面,如果你有深入使用過JetBrains,其實(shí)會(huì)發(fā)現(xiàn) IDEA 的純鍵盤操作效率并不比vim低,你想要的所有功能都有默認(rèn)快捷鍵,沒有的話也能自己配置,并且這個(gè)配置是云端同步的。

          我在公司電腦,自己的surface平板電腦和家里的游戲機(jī)上全平臺(tái)同步,而且自動(dòng)完成可以根據(jù)自己的coding領(lǐng)域習(xí)慣寫自定義live template。

          最后是ctrl+shift+a以及alt+enter幾乎可以在任何地方完成絕大部分寫代碼的常用操作。我并沒有覺得vim在這方面有比JetBrains的效率高多少。

          另外,就是 ssh 直接編輯代碼這種場景。

          我認(rèn)為這種場景是非常危險(xiǎn)且不規(guī)范的做法。真正符合工程化的項(xiàng)目都是本地使用 IDE 編輯,IDE 的靜態(tài)分析功能幫你檢查出可能出錯(cuò)的地方,確認(rèn)沒問題后,用版本控制工具提交,提交過程 IDEA 會(huì)跑代碼格式化,lint 規(guī)則檢查,import 優(yōu)化,清理 unused 代碼,自動(dòng)幫你做 GPG git 簽名。

          如果是公司或者開源組織機(jī)構(gòu)的項(xiàng)目,還會(huì)自動(dòng)幫你更新 copyright,然后做 TODO 檢測,code analysis,git hook,最后 push 代碼后,CI/CD平臺(tái)開始跑單元測試,集成測試等,全部通過后則自動(dòng)由 CI 平臺(tái)通過 SSH 發(fā)布到生產(chǎn)環(huán)境。

          如果你的代碼經(jīng)常需要直接 SSH 連上去直接用 vim 修改,沒有經(jīng)過任何工程化工具的前置處理以及 code review,那么我只能說你的項(xiàng)目非常不規(guī)范,開發(fā)這種不規(guī)范的項(xiàng)目當(dāng)然體驗(yàn)不到 IDE 能夠帶來的好處。


               

          1、IDEA 與 VsCode
          2、MyBatis 二級(jí)緩存 關(guān)聯(lián)刷新實(shí)現(xiàn)
          3、一個(gè)很酷的圖床系統(tǒng)(自帶鑒黃功能)
          4、用了 HTTPS 就一定安全嗎?
          5、60 個(gè)神級(jí) VS Code 插件!


          點(diǎn)分享

          點(diǎn)收藏

          點(diǎn)點(diǎn)贊

          點(diǎn)在看

          瀏覽 81
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  操黄色| 国产xxxx视频 | 亚洲午夜精品 | 91aaa | 日本色天堂 |