前言:所謂削足适履,就是把解決問題的辦法弄得本末倒置,使用了錯誤的方式去解決問題,自然就得不到好的結果。那麼如何才能更好的解決問題呢,對于本章,我已經反複讀了5遍了,然而苦于自己的了解能力,我仍然一知半解,但是我必須要邁過這個章節,不然我在目前階段下,就無法讀完這本書,而下一章節可能就會告訴我更多有用的辦法。對于本章我沒有弄明白的地方,以後等我再次翻讀本書的時候可能就會得到答案。
作為成本的程式空間
我顯然沒有弄明白到底什麼是程式的空間,也許作者是指程式運作時占用的記憶體空間、硬碟空間。不過有一句話是很明白的:“ 作為我們程式開發者來說,如果能夠把程式對磁盤的操作提升到對記憶體的操作後,性能就會得到大幅度的提升”,這個在我負責的交易平台項目中就得到了驗證,對于使用者的持倉資料,如果都通過資料庫的讀寫來完成,其性能就會很差,因為使用者的持倉資料是實時的,并且是大量變化的,讀寫資料庫的頻率很高,這必然會造成性能的下降,那麼行之有效的解決辦法就是,把資料存儲在記憶體當中,大量的讀操作就通過記憶體來完成,寫操作會同時更新資料庫和記憶體資料,這樣就會讓性能得到大幅度的提升。那麼問題來了,就目前為止,記憶體的價格遠遠高于磁盤的價格,然而我們不能隻利用相對低廉的磁盤來取代記憶體,這個時候,必要的成本花費是值得的。
規模控制
對于這個小節的内容,是我無法弄明白的地方,就隻能把我認為作者想要表達的記錄下來:
和指定駐留白間預算一樣,應該制定總體規模的預算;和制定規模預算一樣,應該控制背景存儲通路的預算。
在指明子產品有多大的同時,确切定義子產品的功能。
對于項目中的優化,不僅僅是要程式員對自己負責的内容進行優化,同時要有從整體上正視項目的覺悟。
空間技能
作者提到有兩個技能,一個是用功能交換尺寸,另外一個是考慮空間-時間的折中。對于功能和尺寸的關系,對于使用者,我們提供的功能有很多,如果細分到每一個功能顯然會帶來更大的成本,如同我們在京東上買東西的時候,如果不滿足79元(銀牌會員,原來是59,扯淡的成了79),就要多付額外的運費,也就意味着适當的捆綁功能組成一個小組,其成本就會降低。雖然我還沒有弄明白空間-時間的折中問題,但是我很喜歡作者的兩個方法:
在程式設計技能上進行教育訓練,之前我在富士通的時候,就曾負責過對新人的教育訓練,這個辦法很好,因為一個有些經驗的前輩通過一個小型的教育訓練,會讓很多新人在短時間内得到很好的技能提升。
在程式設計技術上積累,就是說開發并且積累很多團隊所能共用的元件包。
資料的表現形式是程式設計的根本
這裡,作者的觀點我依然非常的認可,“ 技藝上的改進往往是戰略上的突破,而不僅僅是技巧上的突破,而戰略上的突破來自于資料或者表的重新表達”。我覺得這些話真的非常的有用,很多時候,如果我們隻是不斷強迫自己去挖掘資料,而沒有一個行之有效的表格整理,效率就會非常低,而如果通過表格去觀察資料的時候,往往就能得到突破。之前我在研究資料丢包的問題時,使用了大量的資料對比,通過輸出資料把我想要找的問題定位出來,進而解決了資料丢包的情況。