KISS原則

Keep It Simple & Stupid

在上研究生課程的時候老師隨口說了這麼一句,當時是講操作系統的設計。

在網上查了一下,原來真的是非常的流行,把KISS用在工作上,生活上,都可以說是一種解決問題的好辦法。

下面是看到的幾篇文章:

KISS原則

Keep It Simple and Stupid!

簡單設計敏捷開發中非常重要的一項實踐,但是這條原則說起來簡單卻做起來難。因爲每個程序員其實都是一個有完美主義的藝術家,所做軟件其實都是一件自己的藝術品,同時受到許多關於設計方面的資料的影響,所以在做設計的時候會情不自禁的加上許多“優雅特性”和“靈活性”。

另一個很重要的原因在於,在產品推出後又不得不疲於應付客戶頻繁提出的許多新增加的需求的時候,會自然而然的想到:當時要是在做軟件的時候能考慮到這些需求該多好啊,現在來改實在是太麻煩了。要是當初改的話,我只用添加幾條代碼就可以了。

其實這兩種原因都能歸結爲一個:程序員希望自己所設計的系統能最大範圍內適應變化!

這種想法的出發點是非常好的,可是在實際中卻往往不是降低了工作量,反而增加了巨大的工作量。根本原因就在於:用戶需求是無限量的,你永遠也無法預測客戶的需求變化。

舉個形象一點的例子,用戶真正的需求就好比是一個1000G甚至更大的硬盤,其大小僅僅只受用戶想像力的約束。而根據軟件技術的發展程度來看,你現在所做的程序很可能只是能滿足了用戶萬分之一的需求,也就是100M左右。你爲了讓以後可能少開發一點程序,花了很多工夫做了個10M的緩存。可是你想想,10M VS 1000G,你的緩存命中率有多高?

即使不是做項目而是做產品,也不能妄自猜度用戶的需求。一個好的產品的功能完善也是從初始的最簡單版本開始,不斷的從實際使用中接受用戶的使用反饋,通過無數次的迭代而產生的。不可能有任何一個產品在第一個版本的時候,就憑着幾個設計人員的想像,就把用戶的需求考慮的面面俱到,完美無缺。

另外軟件是一件非常講究實效性和成本的產品,想推出最完美的產品當然沒錯,但是要考慮當我們在做這些“完美”產品的時候是否會加長實現的時間和成本代價。

道理說了一大堆,但是實際做起來就是非常難。Agilelabs Team內部在開發過程中也經常會討論某項設計是否過度,有時候就連我自己其實也經常犯這樣的錯誤。有時候回憶起自己當初洋洋自得的一些設計,確實有一些不必要的過度設計在裏面。

過度設計的尺度很難把握,錯誤人人都會犯,犯錯誤沒什麼要緊的。但是關鍵在於是否有勇氣推翻自己花了許多心血的勞動成果,做到這一點非常難,但這確實是我們開發人員的基本素質之一。據說John Carmak在寫Doom的時候曾經整整全部重寫了8遍代碼,那時候還是用匯編,真是讓人佩服。

程序員和項目經理的矛盾往往在於對技術方案的爭論。程序員一般會按照自己的理想提出一個比較“完美”的設計方案,而項目經理則更加關心項目的完成時間。我現在更加深刻的理解項目經理的想法,同時我也是從一個程序員過來的,深知一個“設計方案”對項目的重要性。許多人說項目經理可以不懂技術,但是如果不懂技術怎麼能評估“方案”的好處和實施成本?錯誤的否決一個優秀的技術方案和採納一個錯誤的技術方案都會對項目產生致命的影響。項目經理責任重大啊!

扯遠了點。任隨思維的跳躍,隨手寫了這許多,算是對今天關於權限系統設計討論的一個心得記錄。

今天討論中我提出的一個簡單設計的原則就是:只添加目前需要用到的代碼,目前不用的代碼就不要寫,等到以後要用的時候再寫。

希望敏捷實驗室能在一次次的討論中提高自己根據技術方案結合項目的進展要求情況,能綜合各種因素提高對設計尺度的把握能力。

--------------------------------------------------------------------------

KISS原則

 

KISS? 此KISS不是彼KISS, 乃Keep It Simple, Stupid! 直接翻譯過來,就是“保持簡單,傻瓜!”( Stupid這個詞,在英語中含義也很複雜,很難簡單翻譯,這個KISS中的Stupid我認爲更多是語氣詞。關於這個詞,最喜歡的解釋是阿甘的媽媽教育的那個:“Stupid is as stupid does”.)

KISS原則可以用在很多方面,程序設計風格可以KISS, 家庭裝修可以KISS, 美術設計可以KISS, 界面設計當然要KISS, ... 當然情人之間怎麼能沒有KISS. 曾經和我工作過的無論程序員、美工、廣告人恐怕沒人沒聽我不斷說KISS,KISS,KISS...

通俗些說就是“簡單就是美”。 幾年前曾經看過一本“簡單生活就是幸福”,說的是KISS在人生觀,生活方式上的作用。 不幸的是,過去的UUZONE不夠KISS,所以被稱人爲10噸石頭; 而幸運的是,我正在和uuzone的一羣優秀的同學們一起苦練“鍊金術”,這個“鍊金術”的魔咒就是"KISS".

最近忙於點石成金的工作,而且又戒了keso,感覺幾乎和IT界有些絕緣了。沒想到BIDU就此上市而且市值幾乎達到SINA + SNDA, 可喜可賀,無論如何BIDU是比較有技術含量的公司,最近NTES也股價飛漲,這些都說明了知識的價值在逐漸提升中。 BIDU的老師是Google, Google基本是一個典型KISS風格的公司,從其網站設計到其公司環境,無不在KISS中透露中智慧和優雅。

----------------------------------------------------------------------

KISS原則
  
  米爾斯海默教授是美國芝加哥大學著名的國際關係理論家,他的代表作《大國政治的悲劇》由上海人民出版社翻譯出版後非常走俏。前一陣他受邀來中國講學,和《悲劇》一書的譯者王義桅一起到北京來。我有幸得見,得知他的書在中國首印很快告罄,現在正在加印。在向他祝賀的同時,也說到一本學術著作之所以如此暢銷,很大程度上是因爲翻譯的質量。義桅趕緊發揮中國人特有的謙虛品德,說其實是由於米教授的書本來就寫得語句通俗,幾乎不怎麼太費心思就能夠準確翻譯過來。米教授則帶着美國人的自信回答,他在寫書的時候有意使用簡單明白的英文句子,目的就是減輕翻譯者的任務。
  
  然後作者和譯者各自報了幾個在中國如火如荼的外國大師名字,說讀不懂他們的東西。我聽了渾身輕鬆了一下,竊喜“吾道不孤”。
  
  雖說“翻譯是項危險的工作”,但近年來中國對外來著作的翻譯卻越來越興旺,能看到的新書越來越多了,這當然對學術繁榮、思想交流有極爲重要的意義。不過這類書讀多了,有時弄得我到最後連中文的感覺都找不到。究其原因,大概確實有外國著作本身的因素,也有相當多的是翻譯的因素。
  
  外國著作若是語句艱難一些,帶給中文譯者的麻煩就大些,對於這種情況的處理一向有兩種主張。一種是“硬譯”,一種是“意譯”。梁實秋和魯迅就曾就“硬譯”打過筆仗,而且上升到政治取向的高度。有的硬譯能說出道理,比如一些概念確實需要留意,“硬”一下正好讓人的思想停頓片刻,避免一種“望”外國“文”而“生”出中國的“意”來。不過現在的許多硬譯,硬得就太生澀。在這方面,大陸譯者偏“硬”,譯本保留了原著的難懂甚至讓它更難懂;臺灣譯者相對就好,把難的譯簡單,英語的譯出漢語的感覺來,說明譯者的水平確實高出一籌。例子很多,比如比較一下美國政治學的經典著作《聯邦黨人文集》的臺譯本和我們大陸的商務譯本,前者可謂舉重若輕,把200多年前的文字譯活了;後者雖然字字照譯,但終究太刻板,從句、複句什麼的也不重新編排或拆分,不但弄出了無窮的“的”字層次,而且作者真正強調的意思反而損失在這無窮的修飾之中。
  
  最讓人受不了的,是本來人家外國著作寫得並不生澀,卻生生被譯難了。這也有兩種情況,一種是譯者漢語水平所限,無法實現語言之間的巧妙轉換。有個例句,是說現代學術專業的分工越來越細,結果造成人們“know more and more about less and less”,這句話生動有趣,用詞也簡單,我見到最多的翻譯是直譯:“對越來越少的事情知道得越來越多”,意思反而複雜了,不清晰。有一個好很多的翻譯是“知道越來越多的細枝末節”,這就簡單明瞭多了。最近看到甘陽先生的一個翻法更爲巧妙且俏皮:“知道越來越多的雞毛蒜皮”,可謂譯活了。另外一種把易譯難的情況,那隻能歸咎於譯者責任意識太差了,翻譯的時候不走腦子,做出來的東西簡直像是用翻譯軟件搞出來的。愛德華·薩義德是有名的英文大師,他的作品不但思想深刻,而且語言簡明,但他的有些作品翻譯到中國來,實在是有辱清名。這時候,懂些英語的讀者還不如干脆直接讀原著更好一些。
  
  米爾斯海默教授告訴我說,不少知識分子非常重視學術的平民化,往往努力把學術著作寫得深入淺出,這樣自己的作品纔有更多讀者,思想也更容易傳播。“我們在指導學生寫論文的時候,特別強調一個‘KISS’原則”,他說——瞧我們都沒懂這話什麼意思,他喊道:“Keep It Simple, Stupid!”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章