最近一直在思考技術與工具之間的關系。在談及這個話題之間,我先來講一個例子。
在一個武俠小說里,一個小孩父母被仇人所殺害。這個小孩立志要為父母血仇。于是,不遠千辛萬苦找一到一個世外高人,求高人傳授其絕世武功。那么這位世外高人有兩條不同的方式教育這個小孩。
方式一:放眼當今武林,最厲害的神器非屠龍刀莫屬,憑自己的身手,奪得屠龍刀乃囊中取物,信手拈來。于是,輕松得到屠龍刀之后,然后對小孩體質、骨骼進行分析,再自創立一套路適合小孩體質的屠龍刀法。以屠龍刀最大的維利來配合小孩的體制,以便讓小孩與屠龍刀發揮出最大的威力。
方式二:世外高人考驗小孩的體制,摸其骨骼,分析其聰慧程度。通過對百家兵器譜中各種神兵厲器的分析,發現屠龍刀最適合小孩來用。于是,輕松盜來屠龍刀,配合小孩學習武功,讓其達到自身最大能力的發揮。
前面兩種方式,雖然最終的結果是完全一樣的,但其過程是截然不同的。第一種方式是根據現有工具來解決問題,第二種方式是根據現有需求來選擇工具。
再回歸到我們對技術與工具的探討。
大家都知道平面設計是一門技術,photoshop是一個工具,photoshop幾乎平面設計領域的大部分問題,所以photoshop幾乎是平面設計的代名詞。你會說還有coreldraw 、 Illustrator、 PageMaker 等很多平面設計工具。對啊,他們都只是一個個的工具而已,難我們學習一門技術都就只是學習一個工具的使用么?那么技術包含的除了工具還應該有什么呢?思想,對思想,什么是思想呢?;蚨颊f什么樣的思想的呢? 首先了解什么是平面設計,或平面設計的原理,我們的世界是立體的,或者說是一個空間的概念,但人的肉眼在一個位置去觀察一個物體,只能看到這個物體的一個面。那么我們通過平面的畫怎樣欺騙人的眼睛產生立體的效果? 把立體的細節展現出來,比如一個物體的斜面,顏色的漸變,物體的陰影等等,可以通過這些方式來欺騙人的眼睛。
其實,許多平面工具都是包含這些思想的,或者把思想換成技術更為貼切---大部分工具都是包含這些技術的。(ps:高中傻帽的輟學半年去學平面設計)
再回到我的性能測試上討論,其實關于技術與工具的思考,也是由些而發的。性能測試肯定是一個技術類別,而loadrunner或其它工具是一個性能測試工具。再說到我前面介紹小孩為提父母報仇而學習武功的方式,很明顯第二種方式更為合理,因它的出發點是需求。方式一的出法點是工具。但是,在某工具可以完全某需求的前提下,我們先選擇某工具,還是先分析某需求,其結果應該是一樣的。
這就一讓我突然覺得,需求引導流程,需求選擇工具的思想有點鉆牛腳尖了。做測試的朋友都知道,loadrunner在性能測試領域,就像photoshop在平面設計領域一樣。占領著很大的市場,能滿足大部分的需求。學會用loadrunner并不代表會性能測試,這句話無可厚非。但學會的性能測試(概念、思想、流程),唯獨不會工具,那算你會做性能測試么?紙上談兵,怕是所有人都很瞧不起這種人吧。至少,你還是應該熟練的使用一種工具的吧。其實,你在學習工具的時候,思想也在慢慢的滲透,如果不理解其它原理,又怎么使用工具,平面設計中,如果你不能理解圖層的概念,又怎么能很好的使用平面設計工具呢。
再來談談程序語言上,java 與 c/c++ 是一門技術還是一門工具呢?老實說,這個我真的分不清楚。如果你是一名java或C/C++程序員,當你拿到一個項目需求時,肯定會用自己會的語言去考慮程序上的實現。其實,你這個時候就是在得到屠龍刀之后去考慮如何讓小孩練習刀法。又有幾個牛人可以達到精通天下所有語言,java、c、c++、c#、php、ruby、匯編、等等。因為每種語言都有其有優,有的效率高,有的實現速度快。其實,我們更應該抽離出來的是一種思想。為什么說一個編程5年(這個時間看造詣)的人,學習一門新的語言只要一個月或者更少時間(這個也看造詣)。在學習某種語言時更多的應該是將思想剝離出來。有的思想,如何去實現只不過一個方式而已。
-------------------
ps:本來是想繼續性測試系列文章的整理,原來我越來越不務正業了。
原文轉自:http://www.cnblogs.com/fnng/archive/2012/08/20/2648348.html