來(lái)源:山东烈日网络科技有限公司 | 2019.06.12
開發人(rén)員在(zài)自己的(de)職業生涯、學習經曆中,都會“開發”出(chū)一(yī / yì /yí)些壞習慣。在(zài)這(zhè)篇文章中,作者向讀者展示他(tā)自己有或是(shì)老也(yě)改不(bù)了(le/liǎo)的(de)壞習慣。他(tā)希望如果你剛開始這(zhè)份事業,能夠避免這(zhè)些壞習慣;如果你已經有了(le/liǎo)這(zhè)些毛病,那希望你能夠意識到(dào)它們,并可以(yǐ)開始改變。
1.拒絕尋求幫助
這(zhè)一(yī / yì /yí)條在(zài)學習和(hé / huò)工作場景中都很常見。我們很多人(rén)都不(bù)尋求幫助。原因很多,但我認爲(wéi / wèi)最主要(yào / yāo)的(de)原因無非是(shì)自尊以(yǐ)及害怕讓人(rén)認爲(wéi / wèi)自己啥也(yě)不(bù)會。我們很多人(rén)都有冒名頂替綜合征,覺得自己不(bù)完全勝任自己的(de)工作。我在(zài)公司裏、在(zài)和(hé / huò)客戶打交道(dào)時(shí)、甚至在(zài)上(shàng)課和(hé / huò)輔導中都有這(zhè)種感覺。我們認爲(wéi / wèi)尋求幫助會強化這(zhè)種感覺。但事實上(shàng),它浪費了(le/liǎo)大(dà)量時(shí)間,阻礙了(le/liǎo)你的(de)成長。
其他(tā)真正的(de)開發人(rén)員們都是(shì)視頻或書籍一(yī / yì /yí)般的(de)資源,甚至要(yào / yāo)比這(zhè)些好太多。他(tā)們可以(yǐ)直接回答你的(de)問題,幫助你真正的(de)理解它。
隻有混蛋才會因爲(wéi / wèi)你問問題而(ér)批評你,這(zhè)時(shí)候我會盡力避開這(zhè)些人(rén)。
如果你想要(yào / yāo)自己找到(dào)答案,不(bù)想尋求幫助,那也(yě)沒問題,給自己一(yī / yì /yí)個(gè)時(shí)間限制。當你的(de)前輩就(jiù)在(zài)你旁邊,他(tā)可能知道(dào)或至少可以(yǐ)幫到(dào)你的(de)時(shí)候,千萬不(bù)要(yào / yāo)浪費幾天時(shí)間來(lái)尋找答案。
2.20個(gè)要(yào / yāo)點,列出(chū)錯誤郵件,功能要(yào / yāo)求又有什麽不(bù)一(yī / yì /yí)樣的(de)商品是(shì)一(yī / yì /yí)個(gè)問題。他(tā)們常常導緻的(de)指控,”你爲(wéi / wèi)什麽不(bù)修$XY,當我指出(chū)五周前?“在(zài)你的(de)頭的(de)發展是(shì)不(bù)是(shì)能夠鑽這(zhè)些獨白到(dào)可行的(de)票,你可能忘記的(de)事情。不(bù)是(shì)說(shuō)所有事情你媽媽沒有教你,試圖教育你的(de)客戶或管理者如何使用bug跟蹤系統,或者項目管理工具,這(zhè)樣你既節省時(shí)間發送無數冗長的(de)電子(zǐ)郵件,他(tā)們會有一(yī / yì /yí)個(gè)更好的(de)查看你目前的(de)工作。
3.這(zhè)一(yī / yì /yí)條更多地(dì / de)是(shì)一(yī / yì /yí)種技術習慣,但也(yě)可能意味着很多事情。你應當以(yǐ)一(yī / yì /yí)種直觀、高效、安全的(de)方式寫代碼。這(zhè)在(zài)自學的(de)時(shí)候簡直太難了(le/liǎo),因爲(wéi / wèi)在(zài)相關的(de)課程中,你學到(dào)的(de)不(bù)是(shì)寫某些代碼的(de)最佳方法,而(ér)是(shì)導師認爲(wéi / wèi)這(zhè)麽寫最容易理解一(yī / yì /yí)些核心概念。所以(yǐ),你必須進行一(yī / yì /yí)些額外的(de)研究,找出(chū)清理你代碼的(de)最佳方法。
我絕對建議你使用“避免重複代碼原則”(DRY principle,don’t repeat yourself)。如果你遇到(dào)常見的(de)代碼塊,那就(jiù)創建某種“類”(class)或“函數”(function)來(lái)合并這(zhè)部分功能,而(ér)不(bù)是(shì)僅僅重複它。這(zhè)讓代碼更加簡潔,節省了(le/liǎo)大(dà)量代碼行,并且便于(yú)他(tā)人(rén)使用。
你也(yě)要(yào / yāo)注意性能,比如壓縮圖片、縮小JavaScript和(hé / huò)CSS。你可以(yǐ)使用task runner(如gulp)或其他(tā)工具自動完成壓縮,面對小型任務,你甚至可以(yǐ)使用minifier.org等手動完成。
4.戰争的(de)結束
分裂你的(de)團隊,你的(de)發展固定部分是(shì)一(yī / yì /yí)個(gè)壞主意,居然不(bù)敏捷(别擔心,我們不(bù)習慣用這(zhè)個(gè)詞)。分離的(de)前端和(hé / huò)後端”導緻“grabenkämpfe”(或:戰争的(de)結束),這(zhè)是(shì)–毫不(bù)奇怪–不(bù)是(shì)偉大(dà)的(de)團隊精神。前端開發者會抱怨“後端的(de)變化需要(yào / yāo)很長時(shí)間”,而(ér)後端的(de)開發者會抱怨“第五改變API在(zài)今年“。
5.不(bù)能從錯誤中吸取教訓
作爲(wéi / wèi)一(yī / yì /yí)位開發人(rén)員,你會犯很多錯誤,這(zhè)不(bù)可避免也(yě)沒什麽大(dà)不(bù)了(le/liǎo)的(de)。但如果你總是(shì)犯同樣的(de)錯誤,不(bù)能從中吸取教訓,那就(jiù)有問題了(le/liǎo)。
當你犯錯後,我建議你遵從這(zhè)樣一(yī / yì /yí)個(gè)流程:
找出(chū)錯誤的(de)根本原因是(shì)什麽;
找到(dào)可以(yǐ)防止錯誤再次出(chū)現的(de)流程;
弄清楚如果早先發現了(le/liǎo)錯誤,能否避免後果。
建設性的(de)批評是(shì)學習的(de)絕佳資源,因爲(wéi / wèi)建設性的(de)批評很有針對性,是(shì)你現有的(de)問題,是(shì)他(tā)人(rén)給你的(de)具體解決方案,這(zhè)是(shì)無價的(de)。事實上(shàng),代碼審查簡直太棒了(le/liǎo),你可以(yǐ)得到(dào)其他(tā)人(rén)的(de)建議,改進你的(de)代碼甚至是(shì)你自己。
所以(yǐ)不(bù)要(yào / yāo)把這(zhè)類事情都看成人(rén)身攻擊,除非你真的(de)受到(dào)了(le/liǎo)攻擊,或是(shì)故意的(de)取笑和(hé / huò)不(bù)尊重。聽進别人(rén)的(de)批評或改進建議總是(shì)很難,但最終,這(zhè)會讓你成爲(wéi / wèi)一(yī / yì /yí)個(gè)更棒的(de)開發者。
無論是(shì)新開發人(rén)員,還是(shì)經驗豐富的(de)老手,我都希望這(zhè)些建議能夠幫助到(dào)你們。