發(fā)布于:2021-01-26 10:20:18
0
199
0
在今天的Java和.NET世界中,我開始擔心我們正在做很多事情,因為“你就是這樣做的。”我認為這是一個危險的地方。
在這個地方,教育和理解被盲目地遵循最佳實踐所壓倒,而沒有真正思考為什么或何時應用它們。
這里不是要抨擊Ruby,但是我認為最近從C#和Java到Ruby的撤離在很多方面都是由于許多有經(jīng)驗的C#和Java開發(fā)人員降低了實用性。
我必須承認,我自己也有罪,我盲目地將接口添加到不需要它們的類中,這樣我就可以依賴性地將它們注入到我的類中,這樣我就可以使用模擬框架編寫行為驅(qū)動的單元測試。
我該怎么辦?
我想我會寫一系列的博客文章,目的是回到最基本的方面。我想仔細看看:
為什么存在一些當今最佳實踐
他們正在嘗試解決什么問題
在依靠這些技術之前我們做了什么
適用時
我想回到非常清楚的一點,當我采用以下最佳實踐之一時:
我有充分的理由這樣做
它正在解決一個特定的問題
有凈收益
我的目標是采取一種“沒有什么是神圣的”方法來進行軟件開發(fā),并將任何東西和所有東西分開。
我想先看一些基本的東西,比如界面,然后問一些問題,比如“我們?yōu)槭裁匆褂媒缑妫康鹊戎惖膯栴}
老實說,我不知道這條路到底會走向何方,但我要走下去,看看它會走向何方。
但是向前的進展呢?
今天所有的最佳實踐和技術不是軟件開發(fā)行業(yè)多年向前發(fā)展的結(jié)果嗎?
是的,但這并不意味著他們是對的。
進步是如何運作的,這有點奇怪。我們在一條道路上走了很長一段時間,以為自己在進步,直到走到一條死胡同,但我們在這條道路上學到的一些東西讓我們在另一條道路上走得更遠,或者完全開辟新的道路。
只有在制定問題的解決方案時,我們才能發(fā)現(xiàn)由這些解決方案引起的其他問題,而這些問題又反過來使我們回到過去,用新知識武裝起來,以不同的方式解決原來的問題。
想舉個好例子嗎?
看看JavaScript的使用在過去的5年里發(fā)生了怎樣的變化,JavaScript已經(jīng)存在了很長一段時間,但是現(xiàn)在的使用方式與5年前完全不同。
語言本身沒有改變,但是我們使用它的方式已經(jīng)完全改變了。
我說這句話的唯一目的是打開你的心扉,讓你認識到這樣一種可能性,即我們認為今天完全必要的事情,例如單元測試,在將來甚至可能不會被認為是有價值的。
為什么這很重要?
改變你的信仰,時不時地向他們提問,這是件好事。
任何你認為正確的信念都應該能夠經(jīng)得起堅實的推理。每隔一段時間測試我們自己的信念以確保它們?nèi)匀挥行呛苤匾摹?/span>
測試我們的信念可以幫助我們在正確的人身上獲得更多的信心,并且不再糾纏于那些錯誤的人。