“我最新嘗試軟件開發(fā)的六種方式!”(軟件開發(fā)方法)
【CSDN 編者按】在工作當(dāng)中,時刻保持對新鮮事物的興趣是很重要的。尤其是在這個科技和信息迅速發(fā)展的世界當(dāng)中,只有對不同情景、科技、以及方法保持開放的態(tài)度,才能最大化我們的工作效率。
原文鏈接:
https://henrikwarne.com/2023/09/10/what-i-have-changed-my-mind-about-in-software-development/
未經(jīng)允許,禁止轉(zhuǎn)載!
作者 | Henrik Warne
譯者|Ric Guan 責(zé)編 | 屠敏
出品 | CSDN(ID:CSDNnews)
我非常喜歡 Jeff Bazos 的這句話:
“任何不經(jīng)常改變想法的人都大大低估了我們生活的世界的復(fù)雜性。”
“Anybody who doesn’t change their mind a lot is dramatically underestimating the complexity of the world we live in.”
最近我一直在思考我對軟件開發(fā)的看法發(fā)生了哪些改變, 以下是我想到的:
-
自行記錄代碼:我曾經(jīng)認(rèn)為編寫代碼中并不需要任何標(biāo)注,只要記住類、方法和變量的名稱就足以理解程序的作用。多年來,我意識到一些標(biāo)注是必要且有用的?,F(xiàn)在,當(dāng)有一些特別棘手的問題發(fā)生時,無論是架構(gòu)中,還是在域中,我都會添加標(biāo)注。這樣每次我回到寫了標(biāo)注的代碼時,我都感到慶幸我花時間去做了。因為我可以很快的看懂我寫了什么,以及我之前遇到的問題。
單元測試私有方法:幾年前,我寫了一篇名為 “單元測試私有方法” 的博客文章,其中我認(rèn)為不妨將它們打包為私有,這樣就可以輕松地為它們編寫測試。然而,有幾個人評論并認(rèn)為我可以通過公共接口測試私有方法。經(jīng)過一番思考,我最終同意了他們的觀點,并改變了我的做法。
使用集成開發(fā)環(huán)境(IDE):很多年前,我在編寫代碼時使用的是 Emacs。我對此很滿意,并沒有特別覺得缺少什么。然而,有一天,我的同事向我展示了 IntelliJ IDEA 的強大功能。我當(dāng)時就被震撼到了,自此再也沒有回頭了。最大的區(qū)別是導(dǎo)航 — 使用導(dǎo)航在代碼庫中移動要容易得多。如今,我無法想象不使用集成開發(fā)環(huán)境會怎樣。
使用調(diào)試器: 我以前喜歡使用日志語句和 printf 來排除故障。它簡單有效,并適用于多種情況。然而,幾年前當(dāng)我開始編寫 Go 代碼時,我的同事向我展示了調(diào)試器在測試用例失敗時探索程序狀態(tài)是多么簡便。我以前使用過調(diào)試器,但他向我展示了它們的一個很好的使用場景。
居家辦公:即使在疫情期間,當(dāng)我全職在家工作時,我也對遠(yuǎn)程工作持懷疑態(tài)度。然而,我現(xiàn)在改變了主意,我認(rèn)為居家辦公很棒??梢宰屛覟橐郧盁o法工作的公司工作。不必通勤是另一個很大的優(yōu)點。缺點是我仍然懷念和人面對面的互動。但總的來說,我認(rèn)為優(yōu)點大于缺點。
使用 ChatGPT:當(dāng) ChatGPT 出現(xiàn)時,我對它的功能印象深刻。然而,我對它在軟件開發(fā)中的具體運作方式有點懷疑。但我的同事告訴了我他使用 ChatGPT 來幫助開發(fā)的諸多場景。所以我決定花更多的精力來看看如何使用它。對我來說,它主要用途是執(zhí)行較小的獨立任務(wù)。例如,生成 Python 腳本的初稿、編寫 SQL INSERT/UPDATE 觸發(fā)器,或者為我提供一個 sed 正則表達式,用于從日志行中刪除初始時間戳(如果存在)。在所有這些情況下,它都節(jié)省了很多時間。
我改變主意的事情夠多了嗎?我不知道。但偶爾檢查一下你對如何看待開發(fā)軟件的信念絕對是值得的。在上述許多案例中,我需要其他人向我展示或說服我其他優(yōu)秀的工作方式。因此我的結(jié)論是,協(xié)作和結(jié)對編程對于傳播好想法非常重要,并且也可以提高工作效率。
那么在軟件開發(fā)方面,你又改變了哪些想法?