尚學堂【官網】-西安Java培訓|c++培訓|Android培訓|安卓培訓|java視頻教程|軟件工程師|-西安雁塔尚學堂計算機學校
常見問題  尚學堂首頁新聞公告常見問題

西安尚學堂:程序員最應該知道的20件事

www.mdxlln.live 發布人:java  |  來自:本站  |  發布時間:2017-07-14 16:18:00  |  點擊次數:1288

  1.應用函數式編程原則

  引用透明性是一個非常可取的特性。這意味著,不論何時調用它,對于同一組參數它永遠給出同樣的結果,這使它跟那些與其他系統相互交織的東西比起來更易于使用。

  2.從用戶的角度看問題

  你不是用戶。不要把你的想法強加到用戶頭上,每個人的想法都不盡相同。花一個小時去觀察用戶的行為比你花上一天的時間去猜測他們想要什么要有用得多。

  3.心口不一的客戶。

  在你決定客戶需求之前,最好先和他們多討論幾次,重新確認問題。有時候,客戶前后談論的話題以及不同客戶群體之間的想法是會有出入的。如果你想要成功,那么必須得在軟件開發之前先好好解決差異問題。

  在交流時不妨使用一些直觀的輔助工具,例如白板、可視化模型等,有助于客戶的理解和信息保存。

  4.以Why開始

  不要客戶說什么就是什么,多問幾個Why。只有弄清楚需求背后的原因,才能發現新的可能。很多時候,我們可以通過對現有產品的改動來完成需求,大大減少工作量。

  有時候,客戶的想法與你對產品的看法可能達不成一致。那么反過來問自己“Why?”。這能讓你更加明確自己的第一感覺是否對頭。如果還是裁決不了,那么就需要其他主要決策者的參與。

  5.努力并不一定都有回報

  不要工作得太辛苦。減少工作量,增加工作效率,才能完成更多的工作。我可不是在忽悠你。做項目時,如果想減少工作量,那么勢必得找到實現目標的高效途徑。在提高了工作效率的同時還有助于積累經驗。以后碰到這樣的問題不就是三下五除二的事了。

  6.大量刻意的訓練

  我們還可以訓練自己從而提高執行任務的能力。這是一種技巧和技術,也意味著重復——意味著帶著某種目的去執行任務。不斷地重復and重復,一遍又一遍,直到你達到所需的能力級別。

  譯者注:我曾經學asp的時候重復寫了幾十遍數據庫操作的代碼,都會背了:)

  7.做點所謂的“重復工作”

  使用現有的代碼與一步步設計自己的軟件——測試、修復、改進——是完全不同的。這些旁人看來所謂的“重復工作”有助于你更深刻地熟悉并理解現有的各個組件是如何運作的。

  大多數開發人員可能從來沒有創建過核心的軟件庫,因此對它們的工作原理也不甚了解。其結果就是,一旦碰到這些種類的軟件出現問題就會束手無策。了解表面永遠是不夠的,只有將里面隱含的工作原理挖出來,才能讓你真正地在這一行業,獨步武林。

  8.不斷學習

  閱讀  

  獲取并編寫代碼。

  找一個導師。

  了解你正在使用的框架和庫。

  犯了錯誤,需要修復bug或遇到問題時,弄清楚原因。

  教人也是學習的一種好方法,可以教學相長。

  參于用戶組或本地會議。

  加入或啟動研究小組。

  聽講座或在線觀看會談。

  學習一門新的編程語言。

  梳理出新的,可用于技術堆棧的想法和點子。

  9.知道如何使用命令行工具。

  由grep和SED提供的搜索和替換能力往往比IDE的功能更強大。

  如,查找相同名稱的類:

  find . -name ‘*.rb’ | see ’s/.*///‘ | sort | uniq -c | grep -v “^ *1” | sort -r

  10. Unix工具會是你的好伙伴。

  Unix工具是很簡單的擴展工具。只需要謹記以下一些簡單的規則即可:

  程序只需要執行單一任務

  讀取標準輸入文本行數據

  顯示結果為標準輸出

  影響工具的操作參數使用的也是命令行。

  11.自動化,自動化,還是自動化。

  掌握shell語言,如bash和PowerShell,構建自動化系統是不可能一蹴而就的。如果需要網站交互,可以使用如iMacros或Selenium等工具。

  一開始你沒必要去學習所有的bash命令。當你需要的時候再去學也來得及。如果碰到你認為可以自動化的任務,那么盡可能地學習并使用工具來達到自動化的目的。自動化任務越早開始越好。

  12.版本控制

  給軟件版本標記一個象征性的名稱,以便于將來可以輕松找到所需的確切版本。也可以創建并行開發的分支:對于正在積極支持的發布版本,大多數項目有一個活躍的開發分支和一個或多個維護分支就行了。

  13.放下鼠標,離開鍵盤。

  碰到實在解決不了的問題時,不妨放下鼠標,離開鍵盤——可以聽聽音樂也可以出去散散步,休息會兒——讓你的大腦也休息會兒。也許過一會兒你再看這個問題的時候,答案呼之欲出了呢。

  14.錯失采用多態的機會。

  多態允許我們創建小型的本地化執行上下文,而不需要if-else模塊。它可以讓我們寫出的代碼更少更易于理解。

  15.特定領域類型勝過原始類型

  領域類型能使得代碼既易于理解,又容易測試。

  16.為必需行為測試,而不是偶發行為。

  測試的一個常見缺點就是與實現細節焊死在一起,而這些細節都是偶然的,跟所要求的功能關系不大。

  17.測試要準確、具體。

  18.API設計的黃金法則。

  只為你開發的API編寫測試是不夠的,你還需要為使用API的代碼編寫單元測試。

  19.編寫測試程序

  一個優秀的測試程序可以當作開發文檔來使用,因為它們已經描述了代碼是如何工作的。對于每一個場景,測試程序必須做到:

  1、將程序的上下文、運行起點或者必須滿足的前提條件描述清楚。

  2、寫清楚程序是如何被調用的。

  3、將程序運行的期望結果描述清楚。

  當然不同的情況下這3個規則也會略有不同。其他程序員只要看了測試程序就可以判斷軟件會有哪些不同的行為,因此,每一個測試程序應該將程序的因果關系描述清楚。

  20.采用單個二進制文件的發布規則

  建立單個二進制文件可以確保發布流程中的每一個環節順利地進行。把握每一個運行環境的詳細信息,這意味著將這些信息記錄到一個文件中,同時記錄環境信息的文件也需要版本控制。如果環境配置有變化,但是你又沒有控制好版本的話,那么我們就很難知道系統環境哪里發生了變化。同時,這些環境配置信息必須和代碼分離,因為代碼和配置的變化頻率是不同的,當然變化的原因也是不一樣的。

當前文:西安尚學堂:程序員最應該知道的20件事
上一頁:Java初級程序員易犯的10個錯誤
下一頁:6招提高程序員的競爭力
在線報名(*為必填項)
2019刘佰温白小姐一马一肖