成為更好的程式設計師必須學習的 4 種程式設計結構
我的小夥伴最近參加了一個線上編碼訓練營。 當我觀看她的第一門程式設計課程時,我很驚訝地發現我在學校學到的很多東西都沒有轉化為工作。
在本文中,我們將確定四種程式設計結構,當您初次發現程式設計的工作原理時,即使相對基礎,但忽略它們仍會拖慢您進階的步伐。
01拋卻迴圈
迴圈是您在計算機程式設計專業中學習的第一批構造之一。一個簡單的while迴圈演示了自動化的力量,您可以在其中重複執行一組指令,直到滿足條件為止。 每當您看到專案集合時,您可能都會嘗試使用while迴圈或for迴圈,但這很難成為最優解。
每當您看到專案集合時,您可能都會嘗試使用while迴圈或for迴圈,但這很難成為最優解。例如,給定一個物件陣列,其中每個物件代表一個雜貨。如果要列印每個雜貨專案的名稱,該怎麼辦?
這種while迴圈當然可以實現所需的功能,但是每次要抓取一件物品時,都必須跟蹤索引以進入雜貨陣列。如果您忘記增加索引,也有進入無限迴圈的風險。
考慮以下替代方法:
forEach是一個高階函式,它將另一個函式作為引數,並對陣列中的每個元素執行一次提供的函式。透過使用forEach,我們刪除了使用索引來跟蹤和訪問陣列的多餘程式碼,並記錄了邏輯的內容-列印出每個雜貨專案的名稱。
while和for迴圈通常太寬泛,無法捕獲我們的程式碼的意圖。如果要編寫更好的程式碼,請首先使用功能更明確的函式替換迴圈。
以下是一些有關使列表變異和彙總列表的相關示例。
02拋卻條件語句
每次新增else語句時,程式碼的複雜度都會增加兩倍。if-else和switch語句之類的條件構造是程式設計領域的基礎塊。但是,當您要編寫簡潔,可擴充套件的程式碼時,它們會妨礙您的工作。
幸運的是,有一些技巧可以擺脫條件限制。
資料結構
考慮以下用於計算折扣的函式:
每次要新增新的程式碼時,都必須在switch語句中新增新的案例。而且,如果您犯了一個錯誤,則會破壞整個計算。
現在,讓我們將條件替換為物件。
這種重寫有效地將資料與核心計算邏輯解耦,從而更容易地獨立修改它們。
多型性
替換條件的第二種方法是利用物件導向程式語言的一個關鍵功能-多型。
用於處理各種付款方式的程式碼行散佈在switch語句中,使程式碼難以閱讀。而且,如果要修改特定付款方式的邏輯,還會給人帶來傷害,這是冒著破壞其他兩個風險的風險,因為它們都屬於同一功能。
多型有助於我們打破冗長的switch語句。每個Class僅負責一種付款方式。
這裡要注意的一件事是,即使我們成功地從重構程式碼中刪除了條件語句,實際上,我們只是將選擇付款方式的決定移到了上游。建立客戶的人現在負責分配付款方式類。
03拋卻文字變數名稱
程式設計教程中充斥著糟糕的變數和函式名,部分原因是程式碼示例通常不需要提供完整的上下文來說明其試圖解釋的任何要點。例如:
該程式碼塊很好地演示了findIndex的用法,但完全不適用於實際專案。變數名稱沒有告訴我們它們為什麼存在。當我們對他們的服務目的一無所知時,對讀者來說很難,甚至更難修改。
要寫出更好的變數名字,我們必須從瞭解上下文開始。這裡有一個常見的雜貨店過道名稱列表。過渡名稱以有意義的方式排序,以便當我們使用給定的過渡名稱呼叫該函式時,我們將返回其在此列表中的位置,代表過道編號。我們可以如下重寫程式碼:
當您提出正確的變數名稱時,它表明您真正掌握了程式碼要解決的問題的上下文。有目的的變數名將使您的程式碼從單純的計算指令升級為使用者指南,以幫助讀者瞭解您的工作。
04拋卻Global Scope
第一次學習程式設計時,您可能會從一個簡單的hello world程式開始。然後,您將學習在單個檔案中編寫程式碼,並觀察程式從上到下逐行執行程式碼。您永遠不會懷疑在檔案開頭宣告的變數在其他地方不可用。
您編寫的所有內容的想法都存在於所有人都可以訪問的全域性空間中,這是有效使用抽象的障礙。您沒有動力建立封裝程式碼的抽象。
我的建議是忘記Global Scope。將每個函式,物件和類都視為一個新的Universe。專注於如何建立摘要來表示您的想法以及這些想法如何相互影響。
TLDR 原 則
-
用高階函式替換迴圈
-
將條件替換為資料結構和多型
-
用有目的的變數名替換文字變數名
-
忘記Global Scope
?
原文連結
以上資訊來源於網路,由“京東智聯雲開發者”公眾號編輯整理,不代表京東智聯雲立場
歡迎點選“
京東智聯雲
”瞭解開發者社群
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69912185/viewspace-2726247/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式設計師成為大佬必須學的演算法程式設計師演算法
- 成為更好程式設計師的8種途徑程式設計師
- 程式設計師必須掌握的資料結構 1程式設計師資料結構
- 程式設計師必須掌握的資料結構 2程式設計師資料結構
- 讓我們成為更好的程式設計師程式設計師
- 五個方法成為更好的程式設計師程式設計師
- 如何成為更好的Java程式設計師?- javarevisitedJava程式設計師
- PHP程式設計師必須知道的兩種日誌PHP程式設計師
- 程式設計師必須克服的十大程式設計禁忌程式設計師
- 如何利用Google成為一個更好的程式設計師Go程式設計師
- 三個方法讓你成為更好的程式設計師程式設計師
- 每個程式設計師都必須遵守的程式設計原則程式設計師
- 成為優秀程式設計師的最佳學習方式程式設計師
- 半路學程式設計,可以成為大牛程式設計師嗎?程式設計師
- 作為程式設計師必須知道的程式語言編年史程式設計師
- 程式設計師必須要了解的web安全程式設計師Web
- 為什麼Linux運維工程師必須學習Shell程式設計?Linux運維工程師程式設計
- 2014,成為更好程式設計師的7個方法程式設計師
- 一句話讓你成為更好的PHP程式設計師PHP程式設計師
- iOS 程式設計師必須收藏的資源大全iOS程式設計師
- Java 程式設計師必須掌握的 Linux 命令Java程式設計師Linux
- 程式設計師必須進行的10項投資程式設計師
- 15個IT程式設計師必須思考的問題程式設計師
- 程式設計師必須走向專業化程式設計師
- 有理想的程式設計師必須知道的15件事程式設計師
- 10個程式設計師必須學會接受的殘酷真相程式設計師
- Java程式設計師在2021年必須學習的幾項技能。Java程式設計師
- Java程式設計生涯你必須要了解的資料結構Java程式設計資料結構
- 成為聰明程式設計師必知的5個技能程式設計師
- 成為程式設計師之前必知的七件事程式設計師
- 成為最好的程式設計師的迷茫程式設計師
- Java程式設計師如何成為優秀的架構師Java程式設計師架構
- 想要成為一個合格的Java程式設計師, 你必須要做到這些!Java程式設計師
- iOS 效能調優,成為一名合格 iOS 程式設計師必須掌握iOS程式設計師
- 成為一名更好的程式設計師:如何閱讀原始碼程式設計師原始碼
- 學習譚浩強老師的《C程式設計》,必配《C程式設計伴侶》!C程式程式設計
- 聊聊程式設計師面試時,那些必須注意的事情程式設計師面試
- Java程式設計師必須掌握的5個註解!Java程式設計師