優秀的程式師都有的十條特徵,你中了幾條?

之前的文章給大家分享的都是DevOps、自動化測試、新技術趨勢等前沿知識和科技,實際上現時能完全掌握這些新技術的開發、測試人員都是少數,畢竟大多是人還是專注於自身工作,用於提升、學習新技術的時間較少,而很多新趨勢也並未成熟應用到行業。本期分享一些不依賴於新技術、但作為程式師都可遵循的原則,請根據自身情况取捨、實施。
之前的文章給大家分享的都是DevOps、自動化測試、新技術趨勢等前沿知識和科技,實際上現時能完全掌握這些新技術的開發、測試人員都是少數,畢竟大多是人還是專注於自身工作,用於提升、學習新技術的時間較少,而很多新趨勢也並未成熟應用到行業。囙此,不必為此焦慮,極速變化中總有一些不變,堅守那些基礎的不變的能力,並以積極的心態擁抱變化,才是持續而穩定的成長路徑。本期分享一些不依賴於新技術、但作為程式師都可遵循的原則,請根據自身情况取捨、實施。

及時更新任務清單

當要實現一個功能點時,最好將較大的任務分割成較小且更清晰的任務,這些任務是相對獨立的邏輯單元,可以單獨進行測試。列一張這樣可完成的較小任務的清單,並在完成之後勾選、更新。這樣會形成自我激勵,並促使自己去不斷完成更多的小任務。
現時主流項目管理軟體中,往往內寘任務分解和更新功能。如在老資料網項目管理軟體內,開發負責人進行系統分析,折開成相對獨立的任務並指派給個人,而開發人員可以在自己的頁面清晰地看到任務數量及剩餘工時,完成後進度將同步更新,這種持續的正向迴響會帶來極大的成就感。

遵循適當的版本控制

通過創建開發、特性、主分支和設定適當的存取權限來遵循適當的版本控制策略。無論何時開始編碼,都要確保先獲取代碼庫的最新版本後再開始。在邏輯部分或功能完成後繼續提交/推送程式碼,不要讓代碼庫長時間處於未提交狀態。在將程式碼提交給版本控制之前,始終在本地機器上測試程式碼。無論變更多麼細微,在輸入程式碼時都要檢查修改檔案的差异,這將幫助追溯意料之外的變更,並有效避免不必要的Bug。

持續重構

程式碼重構是在不改變原始程式碼的功能行為的情况下改變原始程式碼的過程,目的是通過提高程式碼的可擴展性、降低程式碼的複雜度,以此來提高程式碼的可讀性和可維護性。未能執行重構可能會導致科技債務的累積,開發人員會在之後的時間裏對這些科技債務付出代價。要知道,沒有任何一個開發人員願意處於這種境况中,他們常常拒絕接觸已經工作了很長時間的程式碼。當需要增强現有特性時,問題就出現了。

如果程式碼的形式不適合進行簡易擴展,那麼它將是開發人員的地獄。囙此,為了避免出現這種情況,需要始終在程式碼中尋找可以改進的地方。如果你自己做不到,那就向團隊尋求幫助。

敲程式碼前先手寫程式碼

在實際將解決方案轉換為程式碼之前,要養成手寫算灋/偽代碼的習慣。手寫還可以幫助你在將程式碼移至電腦之前規劃程式碼。寫出需要的函數和類、以及它們如何互動,可以在之後節省大量時間。儘管要比直接敲程式碼更耗時間,但這種規範會讓你打下牢固的基礎,實現之後更穩健的成長。

給自己的程式碼進行注釋

在自己寫的程式碼中留下注釋,解釋為什麼要做出某些選擇。這將幫助到之後拿到這段程式碼的人,因為不是每個人都清楚你為什麼以這種特定的管道編寫程式碼。不需要對非常明顯的編碼行為進行注釋,因為這無關緊要。正確的程式碼注釋將提高代碼庫的可維護性。

善用搜尋引擎和論壇

並不是你遇到的所有問題都能自己找出明顯的解決方案。所以記得善用搜尋引擎,可能會有數百萬的開發人員遇到過與您相同的問題,並且已經找到解決方案。所以,不要花過多時間獨自尋求解決方案。很多開發人員低估了蒐索作為程式師工作中一部分的重要性。

搜尋引擎方面Google是不錯的選擇,論壇則推薦Stack Overflow。有時候工作需要的更多是知道如何獲取知識和解決方案,而非實際程式設計。

尋求他人幫助

程式設計實際上是一種社交活動。我的程式師朋友都會在某些方面有突出優勢,所以每當我有問題的時候,都知道該請教其中的哪一個。當他們有問題的時候,我也會幫助他們。這真的是完成任務的絕佳方法。

互相合作可以遵循敏捷開發的結對程式設計:兩個程式師在一個電腦上共同工作。一個人輸入程式碼,而另一個人審查他輸入的每一行程式碼。二人經常互換角色,工作交替進行。在結對程式設計中,審查的角色需同時考慮工作的戰略性方向,提出改進的意見或找出將來可能出現的問題以便處理。

雖然不能有完全的人力成本全面推行結對程式設計,但尋求他人建議時,看似無法改變的錯誤或無法學習的話題,可以通過新思維或對這個話題的新的解釋來迅速緩解。所以不要在筒倉裏程式設計,要經常討論並推進。當你重新開始自己編寫程式碼時,接觸到多種想法和思維方式將有助於你解决問題。

記住科技永遠在變化

我將自己的身份首先視為程式師,第二身份才是程式設計語言專家,因為總有一天我們現在使用的所有程式設計語言將不再被使用。比如我從80年代開始使用的某些形式的程式集程式碼,這些程式碼現在大部分都已經不存在了。這將發生在任何科技上,無論其自身好壞。總會有一天,沒有人會再使用Java。

而另一方面,程式設計語言有一個廣泛的範例,存在著相似的族譜。所以,如果你知道一種和另一種語言相似的語言,那麼學會這種語言就很容易。

例如,Python和Ruby幾乎是同一種程式設計語言。二者雖在文化上存在著巨大的差异,但除此之外,它們幾乎完全相同,所以當你知道另一個的時候學習一個是非常容易的。囙此,不要將自己與任何科技或程式設計語言綁定在一起,而只將它們視為幫助自己解决手頭問題的工具。

正視並接受Bug的存在

程式師經常看到在自己開發的功能中報告了很多Bug,這意味著大多數時候,任務是失敗的。但如果我們所有的程式都是功能完整的,並且沒有任何Bug,那麼程式設計就完全不成其為程式設計了。事實上,我們正處於程式設計過程中,這意味著我們要麼還缺乏很多功能,要麼軟件有Bug。所以,在某些方面,你作為一個程式師總是失敗的,因為總是存在Bug。這可能很奇怪,但你確實需要對不完美和不工作的事情保持良好的心態,因為這正是我們的工作。

程式設計是一個長期的過程,在這個過程中,您將一直面臨新的障礙。養成記錄錯誤的習慣,這樣你以後就不會犯同樣的錯誤了,這表明你作為一個開發人員在不斷地學習和提升自己。

讓重複性任務自動化

經常會有一些任務是需要重複做的。例如運行一組命令或執行某些活動,這些活動涉及在多個應用程序和荧幕之間切換,這會佔用您的大部分時間。建議將這些耗時的日常活動轉換為通過腳本或簡單程式(可以通過按一下或命令運行)以某種管道自動化。如針對重複的單元、介面等重複的測試執行,可以進行自動化測試。這將節省你的時間,讓你可以專注於更有意義的任務,而不必擔心日常繁瑣的任務。

做好以上十點,相信你能够從合格的程式師,變為優秀的程式師,那麼對於新技術和新知識的擁抱,就是一件水到渠成的事。“你的職責是平整土地,而非焦慮時光。你做三四月的事,在八九月自有答案。”

*該文為翻譯文章,原文連結:
Nitish Deshpande .10Tips to Become a Software Engineer[OL].(2020-05-27)
https://dzone.com/articles/10-tips-to-become-a-better-software-engineer
資料標籤:
本文標題: 優秀的程式師都有的十條特徵,你中了幾條?
永久網址: https://www.laoziliao.net/doc/1699694591357405
相关資料
理解持續測試,才算理解DevOps
軟體產品的成功與否,在很大程度上取決於對市場需求的及時把控,採用DevOps可以加快產品交付速度,改善用戶體驗,從而有助於保持領先於競爭對手的優勢。DevOps中持續測試對產品開發的好處
標籤:
理解這八大優勢,才算精通單元測試
什麼是單元測試在電腦程式設計中,單元測試是一種軟體測試方法,通過該方法可以測試原始程式碼的各個單元以確定它們是否適合使用。
標籤:
DevOps知識點——3C知多少
CI/CD是任何DevOps操作的兩大基石,這是一種開發軟件的管道,旨在生產快速而强大的軟件,隨時以永續的管道發佈更新。當例行更改程式碼時,開發週期會更加頻繁、更有意義且更快速。
標籤: