自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

碼農(nóng)版隱秘的角落:作為開(kāi)發(fā)者最討厭的5件事

譯文 精選
開(kāi)發(fā)
Bug僅僅是開(kāi)始

  作者 | Patrick Zawadzki

  譯者 | 李騰輝

  審校 | Noe

  軟件開(kāi)發(fā)作為一個(gè)職業(yè)在過(guò)去幾年里呈現(xiàn)出爆發(fā)式發(fā)展,并且隨著入門(mén)培訓(xùn)的普及和持續(xù)的跨行業(yè)滲透,現(xiàn)在確實(shí)是成為開(kāi)發(fā)者的好時(shí)機(jī)。然而,在軟件工程光鮮亮麗的背后,也有著不那么迷人的一面。如果你想像我一樣進(jìn)入軟件開(kāi)發(fā)行業(yè),那么在投入大量時(shí)間、精力和金錢(qián)之前,也許是時(shí)候了解一些殘酷的真相了。

  誠(chéng)然,任何工作都有好和壞的一面,但是我想說(shuō)的是,如果你有70%以上的時(shí)間在享受你的工作,那么你就算有了一份很棒的工作。就我個(gè)人而言,我很喜歡開(kāi)發(fā)工作,但我還是要指出那30%令人生厭的部分,那些反復(fù)出現(xiàn)的問(wèn)題真的很讓人崩潰。

  隨著時(shí)間的推移,任何工作都會(huì)暴露出很多問(wèn)題,但在軟件開(kāi)發(fā)領(lǐng)域,有某些問(wèn)題卻總是在我的職業(yè)生涯里反復(fù)出現(xiàn)。接下來(lái),讓我來(lái)談?wù)勛鳛殚_(kāi)發(fā)者最討厭的5件事(排名不分先后)。

1. 調(diào)試那些不在你掌控中的代碼問(wèn)題

  大家都不想找bug。歸根結(jié)底,bug隱藏于某一行代碼中的某個(gè)邏輯,比如跳過(guò)了一個(gè)步驟或者調(diào)錯(cuò)了一個(gè)方法。在所有類(lèi)型的bug中,這種能通過(guò)上下文調(diào)試定位到具體位置的bug算是最好修復(fù)的,因?yàn)槲覀兡苷业剿⑶疫M(jìn)行修復(fù)。然而那些從第三方庫(kù)里引入的bug呢?

  作為開(kāi)發(fā)者,調(diào)試那些你無(wú)法輕松訪問(wèn)的代碼才是更具挑戰(zhàn)和令人崩潰的。也許這是一個(gè)你親手引入的庫(kù),但是由于庫(kù)已經(jīng)被壓縮或者編譯,使得可讀性極差。那么假如這個(gè)庫(kù)是開(kāi)源的,是否就值得慶幸呢?并非總是如此,而且開(kāi)源庫(kù)的bug往往是最難處理的。你需要花費(fèi)額外的時(shí)間設(shè)計(jì)環(huán)境來(lái)隔離并單獨(dú)復(fù)現(xiàn)這個(gè)bug,這樣你才能將問(wèn)題發(fā)送給開(kāi)源庫(kù)的所有者,并寄望于他們能夠按照你的時(shí)間表進(jìn)行修復(fù)。

  許多團(tuán)隊(duì)都不得不面對(duì)這些問(wèn)題,你可以通過(guò)選擇開(kāi)源項(xiàng)目或者本土解決方案來(lái)緩解,但如果沒(méi)有選擇,你只能硬著頭皮上了。

2. 維護(hù)一個(gè)舊項(xiàng)目且沒(méi)有任何資料文檔

  想像一下,你是一個(gè)訓(xùn)練有素、經(jīng)驗(yàn)豐富的生存專(zhuān)家,決定參加一檔類(lèi)似荒野獨(dú)居(Alone)的真人秀節(jié)目。你已經(jīng)在這個(gè)領(lǐng)域投入了數(shù)千小時(shí),是此類(lèi)工作的專(zhuān)家,并且擁有許多成功經(jīng)歷。與以往不同的是,這個(gè)賽季你將被隨機(jī)選中并且被投放到一個(gè)你完全不了解的環(huán)境。按照經(jīng)驗(yàn),要成功存活下來(lái),你需要知道你要去的地點(diǎn),那里是什么樣的,或許還有一些成功的方法;你需要知道為什么要帶某些物品,它們?nèi)绾问褂茫苍S還要向一些有經(jīng)驗(yàn)的伙伴取取經(jīng);你需要知道什么方法是有效的,什么是無(wú)效的,也許還有一些獨(dú)一無(wú)二的交易技巧。但是,這次不一樣,你無(wú)從了解上述信息,這將最大程度地挑戰(zhàn)你的技能極限。

  作為一名開(kāi)發(fā)者接手一個(gè)新項(xiàng)目,沒(méi)有任何背景資料,沒(méi)有任何可以提問(wèn)的同事,就與上面的荒野獨(dú)居升級(jí)版非常相似。軟件開(kāi)發(fā)的問(wèn)題在于,解決問(wèn)題的路徑是多樣的,人們之所以選擇這套方案的原因是系統(tǒng)性的且經(jīng)過(guò)深入探討的。在一個(gè)沒(méi)有任何背景資料或者求助人的項(xiàng)目中,你可能會(huì)遇到許多看似奇怪的設(shè)計(jì),并且很難理解為何要這樣設(shè)計(jì)。是因?yàn)殚_(kāi)發(fā)者偷懶嗎?還是為了趕工期而做的一種變通?或者是因?yàn)橥獠考s束條件迫使這樣設(shè)計(jì)和編碼?不可能知道了,一切都像浮云一樣飄散了。盡管如此,作為開(kāi)發(fā)者,你想取得成績(jī),就需要知道如何在這種情況下完成任務(wù)。

  不幸的是,這種項(xiàng)目會(huì)使許多開(kāi)發(fā)者無(wú)所適從,并且滋生厭惡情緒,這種項(xiàng)目起步緩慢,就像是在盲目地探索雷區(qū)。這就是為什么風(fēng)格良好的代碼和及時(shí)更新的文檔如此重要的原因。如果你正在閱讀本文,不管你已經(jīng)是開(kāi)發(fā)者還是即將成為開(kāi)發(fā)者,請(qǐng)盡量在你的代碼中做好文檔說(shuō)明,特別是那些奇特的邏輯,這樣當(dāng)下一個(gè)人接手時(shí),不管你還能不能提供解答,他都會(huì)更容易理解一些。

3. 不懂軟件開(kāi)發(fā)的人瞎指揮

  軟件團(tuán)隊(duì)的主要成員包括軟件開(kāi)發(fā)者、項(xiàng)目經(jīng)理和產(chǎn)品負(fù)責(zé)人,有時(shí)候項(xiàng)目經(jīng)理和產(chǎn)品負(fù)責(zé)人是同一個(gè)人,所以說(shuō)到底總要有兩類(lèi)人,一類(lèi)負(fù)責(zé)編碼實(shí)現(xiàn),一類(lèi)負(fù)責(zé)構(gòu)思他們想要的產(chǎn)品。在大多數(shù)情況下,后者會(huì)召集利益相關(guān)者開(kāi)會(huì)、制定時(shí)間計(jì)劃表并將產(chǎn)品賣(mài)給其他人。

  這兩類(lèi)人之間的關(guān)系對(duì)于項(xiàng)目的成功至關(guān)重要,有時(shí)開(kāi)發(fā)者在團(tuán)隊(duì)中干得開(kāi)心也很重要。大多數(shù)時(shí)候,開(kāi)發(fā)者被視為"碼農(nóng)",需求不加思索地推給他們,沒(méi)有過(guò)多的討論,有時(shí)還有不切實(shí)際的deadline。這些將導(dǎo)致產(chǎn)品匆忙上線,無(wú)法達(dá)成預(yù)期,最終導(dǎo)致產(chǎn)品失敗,因?yàn)樗幌裼?jì)劃中那樣順暢地運(yùn)行并且經(jīng)常出故障。

  對(duì)于開(kāi)發(fā)者來(lái)說(shuō),能夠找到一個(gè)團(tuán)隊(duì),與項(xiàng)目經(jīng)理或者產(chǎn)品負(fù)責(zé)人融洽合作,不僅對(duì)于產(chǎn)品的成功至關(guān)重要,同時(shí)也增添了工作本身的樂(lè)趣。

4. 缺少不被打斷的時(shí)間

      有許多偉大的工作都需要開(kāi)發(fā)者這個(gè)角色,大部分開(kāi)發(fā)者也很珍視他們的工作。作為開(kāi)發(fā)者最令人上癮的部分就在于,可以將靈光閃現(xiàn)快速地通過(guò)編碼轉(zhuǎn)變?yōu)楝F(xiàn)實(shí)。另一個(gè)令人驚嘆的部分可以形容為"心流"(the flow),即深度工作狀態(tài),這是一個(gè)人在深入工作和思考過(guò)程中所體驗(yàn)到的一種完全沉浸式的感覺(jué)。在需要高度生產(chǎn)力和創(chuàng)新的環(huán)境中這很常見(jiàn),同樣的,許多開(kāi)發(fā)者想要高效編碼也需要這種狀態(tài)。

  然而,在當(dāng)代工作中,時(shí)間很容易被臨時(shí)安排的會(huì)議或者全天不間斷的咨詢(xún)/疑惑信息所打斷。想要進(jìn)入深度工作狀態(tài)很難,但是被打斷卻很容易。

  此外,軟件開(kāi)發(fā)是一項(xiàng)高度個(gè)人主義的工作,這意味著你被指派任務(wù)和期望指標(biāo)之后,其他事項(xiàng)都由你安排。然而,由于持續(xù)不斷的消息和會(huì)議打擾,你很難找到足夠的時(shí)間進(jìn)入并保持工作狀態(tài)以完成手頭上的任務(wù)。這里的關(guān)鍵是你一天中不被打斷的時(shí)間,因?yàn)榧词故且恍┬∈聦?dǎo)致你切換工作內(nèi)容也會(huì)造成損耗影響工作效率。

  找到一段不被打斷的時(shí)間,最好是3-4小時(shí),在那里你可以完全進(jìn)入狀態(tài)并專(zhuān)注于你的工作,這非常重要。一天中擠滿(mǎn)了各種會(huì)議,或者更糟糕的是,會(huì)議時(shí)間間隔30-45分鐘,這對(duì)許多開(kāi)發(fā)者的生產(chǎn)效率都是有害的。

5. 冒名頂替綜合癥

  對(duì)于許多程序員來(lái)說(shuō),他們遲早會(huì)在職業(yè)生涯中經(jīng)歷某種程度的冒名頂替綜合癥。也許是開(kāi)始一個(gè)新項(xiàng)目,加入一個(gè)新團(tuán)隊(duì),或者只是某天中突如其來(lái)的壞情緒,讓你產(chǎn)生自我懷疑并影響你一整天的工作狀態(tài)。

  梅利姆·韋伯斯持(Merriam Webster)將冒名頂替綜合癥定義為:

  一種心理狀態(tài),又稱(chēng)自我能力否定傾向,具體是指“認(rèn)為自己不配擁有已經(jīng)取得的成功或成就,對(duì)自己的能力持懷疑態(tài)度,認(rèn)為自己是個(gè)冒牌貨”的狀態(tài)。

  這是一種適得其反的心理狀態(tài),有些人經(jīng)常經(jīng)歷且難以擺脫,有些人則從來(lái)沒(méi)有。但好在軟件社區(qū)里,有許多人表示他們?cè)诼殬I(yè)生涯里都不同程度地經(jīng)歷過(guò)這種感覺(jué),并且愿意為其他人提供幫助。

總結(jié)

  軟件工程是一個(gè)偉大的領(lǐng)域,對(duì)許多人來(lái)說(shuō)風(fēng)光無(wú)限,它看起來(lái)很有趣并且擁有無(wú)窮無(wú)盡的機(jī)會(huì)。然而,每個(gè)領(lǐng)域和職業(yè)都有它的優(yōu)點(diǎn)和缺點(diǎn),大多數(shù)時(shí)候人們只談?wù)搩?yōu)點(diǎn)而忽視了缺點(diǎn),并且說(shuō)實(shí)話(huà),有時(shí)候缺點(diǎn)都超過(guò)其優(yōu)點(diǎn)。況且,甲之蜜糖,乙之砒霜。

  無(wú)論你的情況如何,我希望可以給考慮加入或者正在進(jìn)入軟件領(lǐng)域的人提供一些不一樣的視角。這并不是要嚇退任何人,只是想讓人們看到一些不常被關(guān)注的陰暗面。畢竟,讓你意識(shí)到這些問(wèn)題總比你完全不了解會(huì)好得多。

譯者介紹

  李騰輝,51CTO社區(qū)編輯,目前在一家東南亞互聯(lián)網(wǎng)金融獨(dú)角獸擔(dān)任資深Java工程師,負(fù)責(zé)金融借貸平臺(tái)架構(gòu)設(shè)計(jì)及核心建設(shè)工作,對(duì)互聯(lián)網(wǎng)金融架構(gòu)、微服務(wù)體系有較深入的研究,期望在互金領(lǐng)域持續(xù)深耕。

  原文標(biāo)題:5 things I hate about being a developer

  鏈接:https://thenextweb.com/news/5-things-i-hate-about-being-a-developer

責(zé)任編輯:張潔
相關(guān)推薦

2011-02-14 14:10:14

PHPWeb

2010-03-01 10:20:27

Flex

2010-07-28 14:21:43

Flex

2011-05-26 11:13:36

Flex

2020-05-08 15:30:42

PostgreSQL數(shù)據(jù)庫(kù)數(shù)據(jù)

2014-04-09 11:19:12

創(chuàng)業(yè)創(chuàng)業(yè)前期

2013-01-14 17:11:24

2013移動(dòng)開(kāi)發(fā)者開(kāi)發(fā)者

2010-05-21 09:21:48

PHPPHP開(kāi)發(fā)者

2020-11-05 10:33:01

開(kāi)發(fā)代碼技術(shù)

2013-12-18 10:01:36

CIO開(kāi)發(fā)者

2019-11-23 23:38:51

開(kāi)發(fā)者微服務(wù)安全

2015-06-15 12:39:20

程序開(kāi)發(fā)者注意件事

2014-05-13 13:54:35

Esri

2016-04-07 10:49:28

游戲開(kāi)發(fā)者

2019-07-08 09:36:57

Angular前端框架

2013-08-13 09:44:42

iOS 7開(kāi)發(fā)者

2019-04-23 05:35:45

開(kāi)發(fā)碼農(nóng)

2012-03-05 10:01:43

移動(dòng)開(kāi)發(fā)

2018-08-10 14:35:42

程序員技術(shù)代碼

2018-05-13 22:56:20

Go語(yǔ)言語(yǔ)法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)