JavaRush /Java Blog /Random-TW /喝咖啡休息#83。傑出程式設計師的性格特質是什麼?簡單程式設計指南:函數與方法

喝咖啡休息#83。傑出程式設計師的性格特質是什麼?簡單程式設計指南:函數與方法

在 Random-TW 群組發布

優秀程式設計師的性格特質是什麼?

資料來源:Hackernoon 偉大的程式設計師與優秀的程式設計師有何不同?我發現了偉大的程式設計師共有的兩個性格特徵:一致和持久。這些特質本身並不是天才的標誌,如果他們願意,任何人都可以發展這些特質,然後將其應用到工作中。 喝咖啡休息#83。 傑出程式設計師的性格特質是什麼? 簡單程式設計指南:函數與方法 - 1

1. 保持一致

優秀的程式設計師不會偶爾編程。相反,他們有一個特定的時間表來在空閒時間(工作之前或之後以及週末)提高他們的知識和技能。例如,我認識的一位程式設計師將每天的前兩個小時(每週六天)花在個人學習專案或任務上。這並不是說這些人晝夜不停地寫程式碼。他們和我們所有人一樣,有時間處理自己的個人生活、義務和興趣。但他們的觀點是一致的:程式設計已經成為他們的習慣。你怎樣才能變得一致?這就是我們許多人正在努力實現的目標。我發現有幾種方法可以做到這一點。首先,確定每周可以花在程式設計上的小時數。這個數字就是您每週的「計畫里程」。作為一名前長跑運動員,我每週跑一定的英里數。這是我每週的跑步。現在我有了我的程式設計經驗:這是我每週花在程式設計上的小時數。大多數人都忽略了這個階段。他們直接跳到他們想要完成的專案或他們想要研究的主題,而不考慮如何找到時間來做這件事。因此,他們晚上工作或每天工作 16 個小時。這種方法有一個問題:長遠來看是不可持續的。磨練你作為程式設計師的技能並不是你在一兩週的忙碌中就能完成的事情。相反,你必須長期持續地努力。這就是為什麼確定您的程式設計經驗如此重要。為此,請考慮使用時間日誌來查看您在何處以及如何度過時間。拿一張紙寫下你每天做的所有事情以及做的時間,包括花五分鐘查看社交媒體或電子郵件。這將使您更容易在日程中找到空閒時間。您甚至可能可以獲得一些額外的時間做家事或看電視。然後,您可以建立一個需要堅持的程式設計培訓計劃。培訓計劃是保持一致性的最有效方法之一。它允許您提前分發所有詳細資訊。你所要做的就是每天把這個計劃付諸行動。我的跑步訓練計劃概述了我每天需要跑多少英里以及需要跑多快。現在,我創建的程式設計運動計畫有相同的目的:它們告訴我每天需要做什麼。一天結束時,我在電腦上打開 E​​vernote,制定第二天的日程安排。這是一個例子:
6:30 - 8:30 - 編程
  1. Python Anki 抽認卡複習(20 分鐘)。
  2. 解決詞雲資料問題。
我在整個工作日都遵循這個過程:我指定我將花在一項任務上的時間以及我想在這段時間內完成的任務。我還制定了每月培訓計劃。其中,我列出了我想在下個月完成、學習或完成的三件事。我曾經制定季度計劃。但後來我發現三個月的時間可以改變太多。每月規劃可以讓您有足夠的時間在訓練中採取重要步驟。

2. 堅持不懈

優秀程式設計師的第二個特質是堅持。他們研究解決問題的所有選項並找到答案。這似乎是秘密。我遇到的偉大程式設計師都具有分解問題並針對困難情況提出不同解決方案或解決方案的不可思議的能力。簡而言之,他們有一個解決問題的系統。我在高中時從未有過解決方案系統。每當我在數學課上遇到問題時,我都會全速投入其中。然後當我開始編程時我繼續這樣做。沒有計劃。沒有系統。沒有時間思考。沒有分析。不出所料,在這兩種情況下,我都在不必要地打轉,並且不斷遇到障礙。我現在擁有一個解決問題的系統,可以幫助我分解問題以找到不同的選擇。例如,我解決問題過程的第一步是陳述問題。這是第一個。一旦我理解了問題,我就會專注於以下每個步驟。
  • 分析輸入資料和預期結果。
  • 創建動作演算法。
  • 編寫偽代碼。
  • 解決問題的簡化版本。
希望你能明白。這些階段可能不容易,但它們是可以管理的。透過解決難題,我們可以成為更好的人。這也灌輸了信心。一旦我們解決了一個難題,我們就為新的難題做好了準備。

3.對待問題的態度?

在成為更好的程式設計師的道路上,我們還需要考慮其他一些事情:態度。您必須對問題和歧義採取新的方法。有一天,我向一位資深開發人員詢問了一些我遇到的問題。我感到困惑和失望。起初,開發商也很困惑。然而,他的回答讓我震驚。「哇,這是一個很酷的問題,」他說。他發現的細節激起了他的興趣。這並不是說優秀的程式設計師也不會陷入某些問題。他們被困住了。但差別在於態度。那天我學到的教訓是:優秀的程式設計師不害怕冒險進入未知領域。他們明白,透過研究這個問題,他們一定會學到新的東西。透過研究其他程式設計師,我們可以學到很多東西。但最終責任在於我們:我們需要每天開始工作並採取行動。

簡單程式設計指南:函數與方法

資料來源:DZone 什麼才是好的函數或方法?這需要多種因素的結合,每個因素都很重要。讓我們看看其中四個最重要的。 喝咖啡休息#83。 傑出程式設計師的性格特質是什麼? 簡單程式設計指南:函數與方法 - 2

有意義的名字

函數應該有描述其目的或功能的名稱。當函數有一個有意義的名稱時,就很容易閱讀和理解它的用途。例如,如果函數的目的是透過 ID 來尋找客戶,則findCustomerById(id: String)可能是一個好的名稱。另一個選擇可能是findCustomer(id: String)。這裡的函數簽名意味著買家是透過他的 ID 找到的。「找到」一詞也意味著可能會或可能不會找到買家。如果函數名稱更改為getCustomer(id: String),則其意義會發生變化,因為它現在意味著不回滾;客戶端要么被發現,要么函數失敗並可能引發異常。這兩個名稱都是函數的有效名稱,但具有不同的含義,因此它們的實作也必須不同。

參數盡可能少

我喜歡遵循三法則。這意味著該函數必須具有三個或更少的參數。當函數需要三個以上的參數時,應該重寫它,並將參數放置在資料持有者中,例如它的類別、資料類別、JavaScript 物件等。這是減少應用程式中參數數量和組織資料的簡單方法。我們以一個具有相同行為但不同簽章的函數為例:
fun addCustomer(
  firstname: String,
  lastname: String,
  streetAddress: String,
  city: String,
  zipCode: String
)
這是另一個選擇:
data class Address(
  val street: String,
  val city: String,
  val zipCode: String,
  val streetNumber: String
)

data class Customer(
  val firstname: String,
  val lastname: String,
  val address: Address
)

fun addCustomer(customer: Customer)

該函數執行預期的操作

函數必須執行預期的操作。不多也不少。如果函數名為findAddress(latitude, longitude),那麼它應該會找到給定座標處的位址,或者,如果位址無法轉換為座標,則傳回NonenullEmpty或任何適合給定語言的類型。該函數不應該執行任何其他操作,例如查找附近的地址或建立座標記錄。函數可能有副作用,例如日誌記錄或分析,但這些對於輸入和輸出來說是不可見的。

功能可以測試一下

功能必須經過設計才能進行測試。在前面的程式碼範例中,我定義了addCustomer函數,但沒有定義任何傳回類型,因此它的可測試性值得懷疑。當然,可以使用模擬或間諜進行測試,具體取決於內部實現,這可以透過簡單地提供返回類型來實現:
fun addCustomer(customer: Customer): Customer
透過這個函數簽名,我們可以將新增的客戶端實體傳回給被呼叫的元件。我們也可以檢查該函數是否對該客戶端物件執行了預期的操作(即為其指派唯一識別碼)。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION