想要寫出好程式,你需要具備兩個能力:
價值觀:你能比較實作一個功能,兩個不同寫法之間的優缺點。
實作能力:你能夠實作一個功能,用多個不同的寫法。
case A:
當你還是一個新手,你剛學會寫程式。你不會考慮效能、可讀性、可擴充性等等的問題。你好不容易找到一個寫法可以讓編譯器通過編譯,並且顯示出正確結果。此時的你,沒有價值觀也沒有實作能力。
case B:
你開始看一些如何寫出好程式的原則,知道效能、可讀性、可擴充性等等的問題是重要的。此時的你,有價值觀但是沒有實作能力,你說得一口好程式。
當你面臨一個選擇題,但你只有一個選項,即使你有再好的價值觀也沒用。
case C:
你開始看一些設計模式、繼承、委派、泛型、學會使用套件,學會各種寫法。此時的你,沒有價值觀但是有實作能力,你的程式充滿設計模式,你喜歡過度設計。
當你面臨一個選擇題,而你有上百個選項,但是你不知道哪個選項比較好,你沒辦法選出最佳解。
case D:
於是你學會了應該要實作各種寫法,並認真思考各種寫法之間的優缺點,跟人討論的同時逐漸建立出自己的價值觀,你終於能寫出好程式。
沒有留言:
張貼留言