0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

程序員的15個編程障礙

工程師人生 ? 來源:簡書網(wǎng) ? 作者:忻峰作浪 ? 2020-01-12 11:25 ? 次閱讀

沒有人滿意開發(fā)人員這種已經(jīng)“竭盡全力”改變世界的速度,每個人都希望代碼像消防水管里的水一樣能夠源源不斷地流出來,但沒有人愿意提供給開發(fā)人員更好地完成工作的條件。正如那個想要我們昨天就完成工作的老板,他不愿意雇傭更多的人,不愿意購買速度更快的機器,也不愿意做任何其他可以讓程序員專注于編程的事情,又想馬兒跑,又不給馬兒吃草。

下面就是現(xiàn)實世界中的15個編程障礙。

編程效率障礙No.1:會議

最常見的抱怨是打斷開發(fā)人員編碼思緒的會議。如果老板信任該程序員,就會要求他們時不時地去那間數(shù)周甚至數(shù)年昏昏暗暗的會議室閑聊有關細節(jié)。盡管程序員通常歸咎于是管理人員毀了會議,但他們偶爾也會指責其他的程序員老是跑過來詢問有關或bug或功能或架構(gòu)策略的問題。

雖然有些抱怨是愚蠢的——但程序員依然會埋怨,如果老板讓他們自己在黑暗中摸索,沒有一點溝通——任他們自己在軟件的抽象世界里埋頭苦干,自己去面對各種困境??觳蛷N師和咖啡調(diào)配師或許還能夠兼顧不同的需求,但如果是切換大腦到正確的模式來操作抽象算法則通常需要時間。從會議模式中切換回編碼模式,可能會浪費一個小時左右的工作時間。

編程效率障礙No.2:答復所有的電子郵件

如果說會議很糟糕,那么這一種可能更糟糕:需要查看發(fā)來的無窮無盡的郵件?;貜袜]件需要時間,而且沒人會對回復結(jié)果表示滿意。然后那些最不耐煩的開發(fā)人員或許會選擇簡單的回復——“tl;dr”(即too long,didn’t read。篇幅過長,沒有閱讀)。

有的團隊試圖開設每周一天的禁郵日。還有的團隊就完全不用郵件。雖然解決了郵件過載的問題,但卻是以溝通為代價的。要是突然不在一起工作。這還能算是好辦法嗎?

編程效率障礙No.3:試圖衡量生產(chǎn)力

總會有管理團隊受那些所謂“你不能管理你無法衡量的東西”的書籍啟發(fā),于是開始衡量提交的或代碼庫或軟件代碼行或bug修復。他們認為,計數(shù)就是衡量,而且衡量一定是好事。

但是程序員并不是砌磚工,不能數(shù)數(shù)砌了多少磚就知道其效率。相反,為了寫出更好的代碼,程序員需要或?qū)W⒂诰帉懙拇a行,或解決bug,或提交到代碼倉庫,或做一些無法計數(shù)的事情。如果bug修復可以加分,那么一些微小bug的報告就會激增,bug修復也會如此。有人因為報告bug得到了獎勵,然后另一個人因為修復它也能得到獎勵。或者,如果是計數(shù)代碼行數(shù),那么那些可以用10行代碼解決問題的程序員,可能就會轉(zhuǎn)而表示5000行的代碼將更靈活或功能更兼容——任何可以添加到5000行中的都加進去。

衡量效率實際上會因為鼓勵功能豐富,代碼過度設計的長文件,而讓代碼庫變得更糟。

對于此問題還沒有真正的解決方法。我們需要跟蹤bug。我們需要組織工作流程,協(xié)調(diào)軟件的創(chuàng)建。這種優(yōu)雅是無法衡量的。

編程效率障礙No.4:妄自尊大的開發(fā)人員

對于程序員而言,有這樣一個同事比Boss更難以忍受:創(chuàng)建了代碼的最后一次迭代,卻不再工作于這個項目。正如每個房屋裝修承包商會貶低上一個木匠的技能,每個程序員也會快速指出可怕的,不可原諒的,完全是死腦筋的上一代的行為。

當然,這可能是事實,但它很少像程序員說得那么糟糕。如果有什么區(qū)別的話,問題通常也不是由于技能匱乏而引起的。主要還是風格的不同,并且風格還會隨著時間而改變。上一代和我們今天訪問的庫不同。他們也不曾閱讀過有關最佳做法的最新著作。

妄自尊大的編程態(tài)度往往會減緩項目。驕傲和利己主義的混合發(fā)酵會導致程序員拋棄完全能夠勝任的代碼,只為了按照他們認為的“正確方式”重建。

編程效率障礙No.5:“以后修復”的思維定式,又名“技術債”

我們總感覺不夠時間在項目中按計劃構(gòu)建我們想要構(gòu)建的東西。于是,我們偷工減料,給代碼打補丁,纏滿了虛擬膠帶。曾有明智的經(jīng)理將此稱為是“技術債”,因為“債”是以后必須要還的。即使他們不理解代碼,也知道“債”的含義。

每個項目都有一定的技術債務。有時它會快速見效,但通常直到下一代才會發(fā)現(xiàn)這已經(jīng)成為了一個坑。他們需要構(gòu)建上一代沒有做到的東西。就像滾雪球一樣,越滾越大。

編程效率障礙No.6:非程序員經(jīng)理

總會有那些面帶微笑,西裝筆挺,卻不是主修計算機科學,也不懂編程項目的家伙成為了經(jīng)理。也許他們?nèi)⒘死习宓呐畠海灰苍S他們正好在“正確”的時間出現(xiàn)在了“正確”的地方。但是,老板讓他們擔任了經(jīng)理,即使他們一竅不通。更糟的是,他們會用外行人的眼光來看待問題,哪怕不倫不類,文不對題。

有一些程序員表示很歡迎這樣的經(jīng)理,因為愚弄他們很容易。而且他們還承擔了來自于更高管理層的炮火。但也有人承認,這些人只會不斷地開會,只會妨礙編程。他們幾乎給不了任何有用的指導,他們可以提供的只是那么一點質(zhì)量檢測。

編程效率障礙No.7:程序員經(jīng)理

雖然程序員可能會因為不得不與非程序員經(jīng)理打交道而抱怨,但他們經(jīng)常悄悄地表示,編程人員去做管理人員更糟糕——有時甚至更糟糕得多。

他們是前任的天才,可能會決定微觀管理項目,然后果決地撕裂大片的代碼,因為他們有了一個新的展望?;蛘撸苍S他們會閑談,對于同樣的事情,他們是如何用8080匯編或C或Java編程寫了一半的代碼。在任何情況下,他們更癡迷于技術細節(jié)而不是大局,雖然他們被雇來的目的是盯牢后者。

編程效率障礙No.8:善于社交的程序員,又名“brogrammer”

雖然程序員可以將每個問題和任何中斷的責任歸咎于巧言令色的銷售團隊,但編程人員也必須承認,有一些問題在于他們自己。程序員被聘請的目的在于他們的計算機技術,而不是他們的人際交往能力。

程序員通常不善于溝通,不知道如何表達他們的感受和思維。他們可以準確抓住技術參數(shù),就像庖丁解牛一樣迎刃有余。無論客戶想要改變什么都不要緊:程序員總是時刻思索著技術參數(shù),即使是在公司野餐上也不外如是。

盡管程序員通??梢赃^濾掉對方的特質(zhì),但當程序員之間發(fā)生磕磕絆絆時也會讓團隊失敗。當同一個團隊中兩個人有著不同的政治觀點,比方說,動態(tài)語言或NoSQL,那么團隊就會永無寧日。一切都像是在戰(zhàn)場一樣,戰(zhàn)火紛飛,硝煙彌漫。

編程效率障礙No.9:自私或牛仔程序員

你從他的代碼里發(fā)現(xiàn)一個空指針?捕捉空指針于是成為了你的工作。你最好多想一遍要不要傳遞一個零,因為自私的程序員不會檢查除以零錯誤。這也成為了你的工作。

牛仔程序員的工作又酷又快,但這是因為他的代碼中遺留了許多漏洞,并且沒有經(jīng)過測試。于是這也成為了你的工作,因為如果你不處理這些瑣事的話,代碼就會崩潰。

很多團隊在最終認識到這一點的時候已經(jīng)為時已晚。代碼塊在早期測試中運行良好,但當輸入真正的數(shù)據(jù)之后,各種問題就開始暴露出來。真是一場災難。

編程效率障礙No.10:可憐的文檔

寫文檔需要時間。但由于老板雇我們來是來寫代碼的,并且通常通過我們寫的代碼行數(shù)來衡量我們的效率。因此既然你想要結(jié)果,那么我們就只做你想要的那部分。當然最終我們還是會寫文檔的,但質(zhì)量的好壞就不論了。

有時候,文檔雖然很多,但卻是幾個月或幾年前老代碼的版本。我們只是還沒來得及修改這些舊文檔而已,但是,以后我們會同步的——相信我。

編程效率障礙No.11:成為文檔的奴隸

雖然我們都經(jīng)歷過沒有文檔的項目,但是空話太多、編碼太少反而導致項目失敗也很常見。曾有幾個人指著滿滿一書架的文件夾,向我炫耀說:“我專門請人來寫文檔。”然而要讀完這么多文檔需要一年的時間。

程序員通常在處理需求時,會寫一些評論和注釋,之后充作文檔。因此這樣的文檔,都是一些微小的細節(jié),沒有經(jīng)過認真地總結(jié)或沒有說到要點上。這在文檔中將可能是致命的,當他們沒有提供太多的抽象和理解,就只寫代碼流水賬的時候。這樣的文檔并不具啟發(fā)性,只是翻譯下代碼而已。

編程效率障礙No.12:很容易導致分心的環(huán)境

有一個客戶堅持要我每天去他們的辦公室,堅持要我使用他們的電腦。然后,他們沒有提供任何的辦公空間,所以我只能和六個實習生在會議室寫代碼,此外,這些實習生還需要我用半天的時間回答他們前一天晚上碰到的問題。另外半天的時間則用來指示今天晚上做什么。于是,我基本上做不來自己的工作。

雖然銷售和營銷團隊可以在背景噪音的環(huán)境下茁壯成長,但程序員通常需要圖書館般安靜的背景。閑聊,令人心煩意亂的敲擊聲,或鈴聲將驅(qū)逐程序員的思維走出抽象的工作區(qū),回到現(xiàn)實中。然后,需要幾分鐘的時間才能重新沉浸于工作區(qū)。

有一位開發(fā)人員告訴我,他恨他的新辦公桌,因為它靠攏空調(diào)出風口,噪音令人難以置信的響,使得他真的很難集中注意力。這可能略有夸張,但的確是一個事實。

雖然許多企業(yè)會提供程序員類似乒乓球桌的娛樂活動,但他們往往忘記了開發(fā)人員需要在安靜的氛圍中集中精神。甚至,他們還將程序員轉(zhuǎn)移到大房間,認為這可以促進合作,殊不知卻會導致一有風吹草動,整個房間的程序員都受到干擾。

編程效率障礙No.13:“文化契合”

你想擁有自己的辦公室?或者你更喜歡團隊化的辦公室,這樣你就可以直接喊出你的問題?你喜歡在清晨開始工作,亦或是你更喜歡熬夜?

如果團隊成員之間的風格相似。那么這支團隊往往才能更好地工作。無法找到共同點的團隊很快就會失敗。沒有溝通,最后只會南轅北轍,不知所謂。

編程效率障礙No.14:死守傳統(tǒng)技術

很多捍衛(wèi)者認為古老的技術依然很偉大,依然能夠完成任務。因此對于為什么要重寫代碼表示疑慮重重。

他們想得沒錯,但他們忘記了保持這些古老代碼的成本。所有一切通常都需要用自定義代碼進行翻譯。某些代碼甚至寫在ASCII之前,這意味著需要轉(zhuǎn)換輸入和輸出。舊系統(tǒng)經(jīng)常會計數(shù)空格字符只是為了在數(shù)據(jù)庫中指出這是什么。這就更加需要轉(zhuǎn)換了。

當然程序員可以通過屏幕抓取,重新格式化,臨時構(gòu)建系統(tǒng)來做大量的工作,但一段時間以后,他們往往需要花費更多的工作來清理混沌的邏輯,以致于騰不出時間來寫新的邏輯。

編程效率障礙No.15:對最新的渴望

最新的工具自然有意思,但卻在沒有經(jīng)過大量時間再次編碼以往的工作之前,是不會被開發(fā)工作室采用的。走在時代尖端的人總是會扔掉API的整個部分,并重新編寫,從而迫使我們這些下游的程序員不得不跟著一起改寫代碼。我厭煩過,當我不得盡力用Python 2.7的代碼對付Python 3.0的代碼時,因為依現(xiàn)在的情況,Python已經(jīng)是一種相對穩(wěn)定的代碼庫。

在許多情況下,新的工具并沒有戰(zhàn)斗化。例如,Node.js,雖然說相當快,但是只有當你重新學習所有關于死鎖的經(jīng)驗教訓之后,知道線程優(yōu)先的時候才能發(fā)揮作用。世上沒有免費的午餐,工具雖好但都是有代價的。

責任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 程序員
    +關注

    關注

    4

    文章

    948

    瀏覽量

    29734
收藏 人收藏

    評論

    相關推薦

    程序員將消失”,李彥宏/黃仁勛都贊同,三大方向可“自救”

    電子發(fā)燒友網(wǎng)報道(文/吳子鵬)日前,百度創(chuàng)始人、董事長兼首席執(zhí)行官李彥宏在央視《對話》?開年說的訪談中表示,以后其實不會存在“程序員”這種職業(yè)了,因為只要會說話,人人都會具備程序員的能力?!拔磥?/div>
    的頭像 發(fā)表于 03-12 00:18 ?3320次閱讀
    “<b class='flag-5'>程序員</b>將消失”,李彥宏/黃仁勛都贊同,三大方向可“自救”

    第五屆長沙·中國1024程序員節(jié)開幕

    據(jù)官方媒體報道,10月24日;? 第五屆長沙·中國1024程序員節(jié)在湖南湘江新區(qū)開幕;本次中國1024程序員節(jié)以“智能應用新生態(tài)”為主題。設置有岳麓對話、技術英雄會、主題峰會及賽事、展覽等活動,一場
    的頭像 發(fā)表于 10-25 15:42 ?47次閱讀

    程序員節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎

    10月24日,程序員專屬的節(jié)日里,我們盛大開啟“程序員節(jié)視頻創(chuàng)意大賽”特別活動!這不僅是一場視覺的盛宴,更是智慧與創(chuàng)意的璀璨碰撞。我們誠摯邀請每一位程序員編程愛好者,拿起你的鏡頭,記
    的頭像 發(fā)表于 07-08 10:38 ?72次閱讀
    <b class='flag-5'>程序員</b>節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎

    程序員節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!

    10月24日,程序員專屬的節(jié)日里,我們盛大開啟“程序員節(jié)視頻創(chuàng)意大賽”特別活動!這不僅是一場視覺的盛宴,更是智慧與創(chuàng)意的璀璨碰撞。我們誠摯邀請每一位程序員編程愛好者,拿起你的鏡頭,記
    的頭像 發(fā)表于 07-04 09:00 ?67次閱讀
    <b class='flag-5'>程序員</b>節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!

    數(shù)控程序編程通??煞譃槟膬纱箢?/a>

    編程的定義 手工編程是指數(shù)控程序員根據(jù)零件的加工要求和機床的性能,通過人工編寫數(shù)控程序的過程。手工編程是一種傳統(tǒng)的
    的頭像 發(fā)表于 07-01 14:17 ?695次閱讀

    適者生存,程序員最終會流向哪……

    程序員沒有永遠的護城河??!就目前的互聯(lián)網(wǎng)大環(huán)境來看,it行業(yè)已經(jīng)是……
    的頭像 發(fā)表于 03-11 17:11 ?335次閱讀
    適者生存,<b class='flag-5'>程序員</b>最終會流向哪……

    瑞薩Flash程序員V3 發(fā)布說明

    電子發(fā)燒友網(wǎng)站提供《瑞薩Flash程序員V3 發(fā)布說明.pdf》資料免費下載
    發(fā)表于 02-19 09:37 ?1次下載
    瑞薩Flash<b class='flag-5'>程序員</b>V3 發(fā)布說明

    2024程序員的未來方向如何走?還看今朝

    這幾年的IT行業(yè)想必大家已經(jīng)感受到了,Android、Java、前端等等程序員都經(jīng)歷了大廠……
    的頭像 發(fā)表于 02-02 09:45 ?736次閱讀
    2024<b class='flag-5'>程序員</b>的未來方向如何走?還看今朝

    1月18號“純鴻蒙”千帆啟航,程序員預備!

    。 如何正確看待鴻蒙? 我作為程序員來說,首先是看鴻蒙的發(fā)展、市場開發(fā)崗位、薪資以及前景。 這幾年對鴻蒙的發(fā)展情況來分析,從2019年開始鴻蒙的出來今天,華為鴻蒙取得了很大的成就。從“不兼容
    發(fā)表于 01-16 22:13

    “GPT 驅(qū)動的新程序員時代 ,我們該如何編程”分論壇圓滿舉辦

    的 AI 工具已經(jīng)將全球的知識庫和代碼庫變得觸手可及,只要有足夠的創(chuàng)造力和想象力,幾乎每個人都能成為“新程序員”。在這一背景下,軟件工程領域正在經(jīng)歷一場巨變,那么開發(fā)者如何適應這種變化? 12 月 17 日,2023 開放原子開發(fā)者大會
    的頭像 發(fā)表于 12-25 14:40 ?390次閱讀
    “GPT 驅(qū)動的新<b class='flag-5'>程序員</b>時代 ,我們該如何<b class='flag-5'>編程</b>”分論壇圓滿舉辦

    誠邀報名 | GPT驅(qū)動的新程序員時代,開發(fā)者如何編程?

    2023開放原子開發(fā)者大會 . OPENATOM DEVELOPERS CONFERENCE GPT驅(qū)動的新程序員時代 我們該如何編程 2023.12.17 生成式AI正以旋風般的速度重塑我們的工作
    的頭像 發(fā)表于 12-11 22:20 ?482次閱讀

    程序員表白程序

    電子發(fā)燒友網(wǎng)站提供《程序員表白程序.rar》資料免費下載
    發(fā)表于 11-21 10:41 ?16次下載
    <b class='flag-5'>程序員</b>表白<b class='flag-5'>程序</b>

    嵌入式程序員應知道的幾個基本問題

    電子發(fā)燒友網(wǎng)站提供《嵌入式程序員應知道的幾個基本問題.pdf》資料免費下載
    發(fā)表于 11-20 11:21 ?0次下載
    嵌入式<b class='flag-5'>程序員</b>應知道的幾個基本問題

    智能低代碼洪流涌動程序員節(jié),華為云 Astro 觸發(fā) 1024 的乘法效應!

    ? 從人工智能至量子計算,再到最新的云原生技術,越來越多的榮耀被程序員斬獲。今年 1024 程序員節(jié),華為云 Astro 向全民致敬:「低代碼高產(chǎn)出?拓荒數(shù)字化版圖——人人皆是程序員」,為全球工程師
    的頭像 發(fā)表于 11-13 09:39 ?414次閱讀
    智能低代碼洪流涌動<b class='flag-5'>程序員</b>節(jié),華為云 Astro 觸發(fā) 1024 的乘法效應!

    中軟國際鴻蒙生態(tài)實踐成果閃耀程序員節(jié),以智聯(lián)創(chuàng)新碼動程序世界

    10月24-25日,由中國軟件行業(yè)協(xié)會、中軟國際有限公司聯(lián)合主辦的2023中國程序員節(jié)活動在北京展覽館隆重舉辦。作為面向程序員群體的年度盛會,本屆中國程序員節(jié)以“技術創(chuàng)新與開源合作”為主題,盛邀院士
    的頭像 發(fā)表于 10-27 09:30 ?450次閱讀
    中軟國際鴻蒙生態(tài)實踐成果閃耀<b class='flag-5'>程序員</b>節(jié),以智聯(lián)創(chuàng)新碼動<b class='flag-5'>程序</b>世界