標籤:
最近通勤的路上一直在讀《走出軟體作坊》。書中以業務為中心的思想讓我感受頗深。雖說作者一直專註在企業管理軟體行業,書中的很多具體案例方法也是就這個行業而展開,但是就軟體開發而言,乃至放大到做事情而言,道理都是一樣的。讓我印象最深的一個段落是講作者手下一個新手,在開發中極度追求OO與設計模式,搞得代碼很麻煩,自己看自己的代碼賞心悅目,別人看他的代碼雲裡霧裡;而作者的代碼簡潔清晰,從中很容易就可以看出商務程序。新手問作者是怎麼做到的,作者說:
“我的心中只有業務,業務和代碼,我認為只是英語和漢語的區別,表達的是同一個思路。而在你心中,業務是DOC上的文字,代碼是你的技術表現,你老需要把業務和代碼映射擰在一起,我則不需要。商務程序如何,My Code流程就是如何。”
我以前讀研時還有跟師兄合作時的設計風格真是像極了這位新手。現在我則越來越傾向於扁平化的設計,甚至“沒設計”,這都是在實際的生產開發環境中,在業務中被逼出來的。不過雖說如此,自己那完美主義的本性還是比較根深蒂固,編碼時還是會有不少糾結的時候,尤其是在寫一個新東西的時候。去年的年終總結裡也提到了這點。
一個重要原因是我一直比較鑽技術鑽底層,寫過的業務還是比較少,尤其還沒有自己從零開始寫過一個完整的商務程序和業務系統——對遊戲開發而言,也就是像公會、商店、背包這種遊戲邏輯系統。雖說我也經手過一些業務,而且在老東家時還經手過像物品的掉落和拾取這種關鍵的業務系統,但那都是維護或二次開發。最近幾次跟主程的聊天中,主程也說我缺乏這方面的鍛煉,需要找個機會自己寫寫大系統。
其實我雖然一直很喜歡鑽研技術原理和學術方面的東西,但對業務也是不排斥的,而且我現在越來越覺得很多時候業務才是更重要的——當你站在策劃、老闆和使用者的角度來看待這個問題時,就會更加理解這點。所謂以業務為中心,其實也就是以目標為驅動的做事態度。另外,我覺得即便是要往技術層面發展的引擎和工具程式員,花些時間來寫業務也是有必要的,因為只有這樣,你提供的工具和介面才能貼近項目,真正好用,而不會成為空白中樓閣,孤芳自賞。曆史上的很多技術前進都是來源於實際的業務需求。
我對寫業務還是挺期待的。
該多寫寫業務了