<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>

          “時隔 10 年,重新開始寫代碼的我要崩潰了!”

          共 3676字,需瀏覽 8分鐘

           ·

          2021-05-12 14:03

          作者 | Doug Foo  譯者 | 蘇本如
          出品 | CSDN(ID:CSDNnews)

          用“日新月異”一詞來形容 IT 行業(yè)的變化,最為恰當(dāng)不過了。本文作者于 20 年前是一位奮斗在一線的開發(fā)人員,10 年前晉升為管理層,而近日,他因工作需求,再次開啟了自己的 Coding 生涯,而這一次,他卻有了不一樣的體驗(yàn)。


          以下為譯文:

          20 年前我是一位前線編碼人員,10 年前我轉(zhuǎn)向開發(fā)管理,現(xiàn)在我又成為一名需要編碼操作的開發(fā)顧問。在開始這份工作之際,我對編程行業(yè)的一些變化感到驚喜莫名,同時也對其他變化感到驚訝萬分。

          本文我將解釋一下是什么幾乎要將我壓跨。


          Unix 又回到了開發(fā)者的身邊


          在整個 80 年代和 90 年代初期,許多專業(yè)軟件都是在昂貴的 Unix 工作站(比如 Sun Sparc 或 NeXT 工作站)上開發(fā)的。到了 90 年代,WinTel 后來居上,幾乎每個人都在 Windows 上使用微軟的 Visual Studio 之類的大廠商提供的開發(fā)工具或者 Eclipse 之類的開源開發(fā)工具進(jìn)行編程工作,而 Linux 那時只是在桌面電腦上有少許愛好者。

          2001 年,我在一家初創(chuàng)公司工作,當(dāng)時只有一位開發(fā)人員使用 Linux,在沒有任何源代碼管理(SCM)工具和 Outlook 電子郵件的情況下,他工作得非常艱難。他經(jīng)常給我們發(fā)求助郵件,讓我們幫他提交代碼。我記得那時我使用的是XEmacs——是的,那是個經(jīng)典軟件。

          快進(jìn)到現(xiàn)在。Unix 已經(jīng)成為一個非常流行的開發(fā)平臺,特別是在 Mac 電腦上(因?yàn)樗?Unix 內(nèi)核),同時 Linux 在 Windows 上也有廣泛運(yùn)行(因?yàn)?WSL)。這是我很容易回到的一個領(lǐng)域。有趣的是,我的一些年輕同事幾乎不知道如何使用 Windows,相反,他們非常擅長 Linux/Unix!


          版本經(jīng)理不再需要


          在過去,代碼分支、合并和解決沖突是一項(xiàng)可怕的工作,有時需要版本經(jīng)理的專業(yè)技能。當(dāng)軟件配置管理(SCM)工具的龐然大物 ClearCase 流行時,需要有一個龐大的團(tuán)隊(duì)來維護(hù)和管理代碼分支、代碼合并和代碼發(fā)布(至少基于我  2002 年在 HP 的經(jīng)驗(yàn)是這樣)。

          自我管理的拉請求(PR)的概念實(shí)際上是一個非常新的概念,顯然來自基于 Linux 平臺的開發(fā)和分布式 SCM(比如BitKeeper和Git)的新浪潮。能夠請求在工作流中進(jìn)行合并是像 ClearCase、CVS、SVN 和 PerForce 這樣的老系統(tǒng)所不具備的。這個工作可以由代碼庫所有人或版本經(jīng)理來做,也可以由每個開發(fā)人員自己執(zhí)行。這確實(shí)簡化了流程,讓用戶能夠獨(dú)立協(xié)作。


          QA 測試團(tuán)隊(duì)在哪里?(單元測試/持續(xù)集成)


          我第一次了解單元測試和持續(xù)集成(CI)是通過 Kent Beck,他是 Agile Manifesto( 敏捷宣言)的奠基者之一,也是極限編程的發(fā)明者。20 年前這些都是革命性的,但是需要一些時間才能在開發(fā)工作流程中達(dá)到當(dāng)前的標(biāo)準(zhǔn)化。

          不幸的是,我發(fā)現(xiàn)持續(xù)集成在敏捷(Agile)和 Scrum 中沒有得到更多的強(qiáng)調(diào),但我很高興看到它在現(xiàn)在得到了很好的采用。

          我參加過一個軟件開發(fā)會議,還記得在一個討論單元測試的小組會上,看到 Java Collection的 作者 Josh Bloch 站在臺上說:“感謝(Agile 或 JUnit)讓測試變得富有魅力。”

          這是事實(shí)。在過去,編寫測試程序是一件非常枯燥和不受歡迎的工作,所以公司雇傭 QA 測試工程師致力于為你找出所有的錯誤!哇,多么輕松的生活…

          單元測試和持續(xù)集成幾乎消除了對黑盒 QA 測試人員的需求,因?yàn)殚_發(fā)人員現(xiàn)在擁有測試程序編寫和持續(xù)集成的基礎(chǔ)設(shè)施,并且可以運(yùn)行測試并獲取測試報告。它確實(shí)使軟件變得更可靠,開發(fā)周期更快。它還能夠促使程序員更全面地思考問題,并且以更友好的方式編寫代碼。


          開發(fā)->測試->產(chǎn)品環(huán)境問題消失?(Docker)


          容器,即 Docker,在你將代碼通過 QA 發(fā)布到生產(chǎn)環(huán)境中時,它確實(shí)簡化了打包過程并減少了與環(huán)境相關(guān)的問題(所付出的代價是讓一個好的 DevOps 工程師建立一個 Docker 生態(tài)系統(tǒng))。

          在過去,你會在一個與部署系統(tǒng)完全不同的系統(tǒng)中進(jìn)行開發(fā)(比如 Windows 上編寫代碼,然后部署到Unix),這必然會導(dǎo)致 bug,并導(dǎo)致在每個測試和發(fā)布周期中需要進(jìn)行更多的工作。

          此外,在過去,開發(fā)、測試或 DevOps 工程師們會依據(jù) SCM 標(biāo)簽來從相應(yīng)的分支中提取代碼,并找出如何編譯、測試和遷移它的方法。通常他們會發(fā)現(xiàn)一大堆硬編碼的路徑和變量,或者丟失的庫和文件,這些都需要重新設(shè)計(jì)或修改編碼/配置文件才能讓其正常工作。

          Docker 通過再次授權(quán)程序員自己構(gòu)建和測試 CI 和 CD,從而真正簡化了流程,并保證了持續(xù)集成和持續(xù)部署的實(shí)現(xiàn)。


          開源軟件(OSS)選項(xiàng)太多?


          在當(dāng)前這個開源軟件風(fēng)行的世界里,人們擁有太多的選擇。當(dāng)我設(shè)置 Jenkins,并希望將其集成到 BitBucket 時,我用“bitbucket”關(guān)鍵字作插件搜索,得到了 400 多條結(jié)果(多數(shù)是開源軟件)。

          圖片來源: Atlassian Search

          這樣帶給我兩個問題:

          1. 可供挑選的選項(xiàng)太多了。

          2. 這么多選項(xiàng)中,很多會失去支持而無法存活下去。

          好的方面是:你幾乎不需要構(gòu)建基本的基礎(chǔ)設(shè)施和工具,你只需要找到一個合適的選項(xiàng)并重用它即可。

          20 年前,構(gòu)建基本庫和數(shù)據(jù)結(jié)構(gòu)是一種“樂趣”。如今,每種編程語言都有了現(xiàn)成的框架和庫,99% 的開發(fā)人員不再需要編寫 b 樹、hashmap,甚至 OAUTH 連接器。


          敏捷(Agile)和 Scrum 已經(jīng)占據(jù)主導(dǎo)


          盡管 Agile 在20年前就已經(jīng)存在(敏捷宣言可以追溯到 2001 年),但它的廣泛采用卻是最近的事情。甚至在軟件行業(yè)之外有時也會出現(xiàn)一些變種。敏捷,已經(jīng)成為 CxO 們的一個時髦術(shù)語(“你的業(yè)務(wù)必須敏捷才能生存”)。

          我記得以前的軟件發(fā)布周期相當(dāng)?shù)亻L(在一家初創(chuàng)公司通常要長達(dá)三個月)。在參加軟件規(guī)格說明會議并且徹底了解需求之后,開發(fā)人員可以到他們的辦公桌上玩幾個星期的游戲,而不必發(fā)布他們所負(fù)責(zé)部分的任何更新。現(xiàn)在情況變了,你有一個每日進(jìn)度例會和每兩周的沖刺計(jì)劃,所以你不能有絲毫的懈怠!

          隨著敏捷的發(fā)展,BA(需求分析師)的作用也在削弱,因?yàn)殚_發(fā)人員現(xiàn)在直接面對用戶或產(chǎn)品經(jīng)理。你不能再躲著不說話了。因此,開發(fā)人員的溝通技巧比過去重要得多。

          Tom Smykowski:

          好吧,聽著,我已經(jīng)告訴過你了:我和該死的客戶打交道,這樣工程師們就不用這么做了。我有交際能力,善于與人打交道。你不明白嗎?你們這些人到底怎么了?

          引自Tom - 需求分析師/需求分析經(jīng)理(資料來源:Office Space)

          敏捷使開發(fā)速度加快了很多。它不僅僅是 Scrum 的例行程序和每日進(jìn)度更新例會。敏捷工具包使得開發(fā)效率更高,JIRA 看板、拉請求(PR)和CI/CD都讓你走得更快。雖然日常工作更加有點(diǎn)忙,但能更快更全面地完成這些工作也是非常令人欣慰的。


          結(jié)束語


          如果你考慮進(jìn)行一個類似的旅程,那么開始吧,祝你好運(yùn)!我享受我的技能更新的快樂(盡管它幾乎把我壓垮了)。軟件工程的基本原理是一樣的,所以我認(rèn)為我可以生存下來,但是工具已經(jīng)發(fā)生了巨大的變化,這極大地提高了生產(chǎn)力。

          在本文中你可能感受到的一個印象是,今天的開發(fā)人員比 20 年前有更廣泛的任務(wù)集。他們編寫代碼、管理 SCM、與用戶溝通、測試自己的代碼、構(gòu)建和部署容器等等。這可能令人難以理解,但是至少他們不再需要編寫鏈表了。


          參考資料

          1. 極限開發(fā)(XP)

          https://en.wikipedia.org/wiki/Extreme_programming

          2. 敏捷開發(fā)(Agile)

          https://www.mckinsey.com/business-functions/organization/our-insights/the-journey-to-an-agile-organization

          原文鏈接;https://betterprogramming.pub/how-going-back-to-coding-after-10-years-almost-crushed-me-88c85ceb5376


          往期推薦



          還上網(wǎng)搜?93家大廠面試真題,快碼!

          2021-05-08

          微信暗藏的冷門小技巧,你學(xué)“廢”了幾個?

          2021-05-07

          PyPy為什么能讓Python比C還快?

          2021-05-06



          今天因?yàn)槟狞c(diǎn)贊和在看,讓我元?dú)鉂M滿!
          瀏覽 43
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <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>
                  北条麻妃一区二区三区蜜臀色欲 | 伊人成人中文字 | 亚洲高清视频在线看! | 影音先锋资源亚洲在线 | 这里有精品视频 |