IT人物-春樹科技資深前端開發工程師 王景弘(TonyQ)

● 1986年
● 學經歷:元智大學資訊管理學系、波麗斯社群網站、普奇科技(ZK)
● 工作內容:以網站系統規劃設計、前端網頁開發這兩者為主



春樹科技
● 服務項目:致力於社群網站開發暨電子商務平臺的經營,主要產品是社交網站Friendo (粉多),是以興趣圖譜為發展主軸的社交網站。

在JavaScript開發領域中相當知名的TonyQ,本名王景弘,現職為春樹科技資深前端開發工程師,過去曾任職於普奇科技(ZK),負責開發並推廣領域中相當知名的Java ZK Framework。

王景弘也活躍於網路社群,並力行技術的推廣,常出沒於PTT的BBS站,並擔任Ajax與Soft_job版的版主,回答許多新手開發者的問題。他今年並發起JavaScript TW Group的多場開發者討論聚會,以開發的經驗分享為主,目前活動頻率為每月臺中1場、臺北兩場,同時也擔任今年iT邦幫忙「JS上忍極限闖三關」的活動評審。

問:你在JavaScript的圈子已經算是相當知名,可以簡單介紹一下過去的經歷嗎?
答:我從小是在嘉義東石長大,在16歲以前,一直都是生長在鄉下的漁村。高中曾經轉過3間學校,待過升學班,也待過放牛班。

大學念的是元智大學資訊管理學系,大一開始正式接觸寫程式,因家庭環境的經濟關係,大二開始接技術案子賺生活費。不過,我大學並沒有順利修完,由於3年多的時間累積了相當的工作經驗,同時我也花許多時間參與保齡球校隊與童軍社,因此,在休學後我繼續從事接案的工作。這些經驗讓我不需要那張紙,也可以在未來有不錯的出路。

以我這段期間的工作經驗來看,從大二開始,接到的案子至少60個以上,包含學術論文中的程式、進銷存系統等各式不同的案子,負責整體網站系統設計,包含後端資料庫、伺服器,甚至是系統建置,整套都自己做。也做過手機應用程式的開發,寫過IPTV機上盒的前端介面。其實,作案子可以接觸很多不同類型的工作,相當有趣。

大四時,也曾加入名為ppolis波麗斯社群網站,這是一個以物品為主的社群網站,這個網站與地圖日記一樣,在當時曾受到許多關注。服役完,後來在普奇科技待了兩年,春樹科技待了4個月。

在桃園服替代役時,原本我主要是協助社會服務的接待工作,但我也會去幫忙管理內部資訊系統。這些工作雖然不是原本替代役的工作,不過做起來其實相當有趣。起因是,由於該單位懂電腦的人不多,當時要寄約訪公文信給全縣4萬多個低收入戶,但原本的公文系統根本沒法負擔,而且沒有人能夠去分析這些資訊的順序,因此我就幫他們寫程式,讓公文信的寄發與人員約訪更方便,同時也協助管理內部資訊系統。

多數人可能知道我熟JavaScript,但在這段接案子的時間內,也讓我具有相當雄厚的Web後端實力。問:發起JavaScript.tw Group的目的是?有人說,臺灣對JavaScript的深度使用仍不足,你也有這樣的感覺嗎?

答:基本上,大家在工作上所需要用到JavaScript的程度,大多是深淺不一的。以臺灣開發者來說,開發項目幾乎都是瀏覽型的網站,在JavaScript的應用上通常不會太深,使用上也不需要太複雜,其實都只是最基本的應用。而應用類型的網站、內部系統,才是考驗JavaScript功力的地方。

我不否認,JavaScript在大型的專案上是有複雜度,但有機會寫到那麼複雜的內部系統,其實也沒有幾家,以目前多數瀏覽型網站的應用方面來看,需要深度使用的場合並不多。

與其他程式語言相比,臺灣熟JavaScript的開發者比例,相對較少,瞭解JavaScript並能夠精通使用的人更少。這主要是因為在2005到2007年時,多數開發者對於JavaScript抱持不友善的態度,認為JavaScript很可能被Flash或GWT等不同語言取代,而不願投入學習,進而讓學習JavaScript的人在程度上有較大的斷層。

現在,當時很多玩比較深的人,都已經切入到後端的工作,比較少人負責前端的開發,而新學JavaScript的人,由於經驗較少,因此遇到的問題相對較多。

所以,我在今年發起了JavaScript開發者的聚會,希望讓更多人對於JavaScript有正確、基本的認識,希望能推動臺灣前端技術發展,並加強前端知識交流。

我在JavaScript聚會的教學時,設定上多是以瀏覽型網站使用的JavaScript為主,幫助新手解決在入門時會碰到的問題,並希望能讓他們先加強自己的基本功,再深入去應用。以目前來說,我覺得,把底層的人帶起來,比把人教成專家,更有意義。

而且,以我在PTT上超過5年的回應問題經驗來看,其中有8成網路上的發問,都是資料提供不全,問題模糊不清,因此在回應上,並不比聚會直接提問容易,因此,我希望藉由這樣的活動,面對面幫助新手抓到正確的學習方向。問:請問你什麼時候開始對於JavaScript有興趣的?目前多數開發者經常遇到的情況有那些?你對於目前的環境現況有沒有什麼感想呢?

答:會往Web前端部分發展,是因為我覺得可以跟使用者進一步互動,相當有趣,因此著墨比較深,近年也不斷在鼓吹。以前,我會用Java寫一些需要分析的資料,後來我發現,只要開啟瀏覽器,就有一個Console,可以寫JavaScript,當下我覺得這相當方便,可以很快完成許多事。從此,我就習慣用JavaScript做一些簡單的字串處理,最近半年來,我也會使用node.js做一些開發,我覺得更快、更方便。

記得在2006年時,雖然大家不看好JavaScript,而我之所以會一直寫JavaScript,就是因為我覺得它是好用的工具,我也就很頑固地持續去寫。我認為,學JavaScript是因為要讓使用者有更好的體驗,跟使用者更即時的互動,不會讓我自己在用的時候一直等待,可以專注在重要的事情上,因此我學了JavaScript,並花很多時間寫JavaScript。

大家對於JavaScript的認知上有一個問題:其實JavaScript是很單純的,只是我們要做的事情太複雜了。

在過去接專案的經驗中,我習慣用需求分析的角度來看,困難點不是JavaScript,而是需求,工具只是要幫助專案成功而已。開發者應該要瞭解,自己能用JavaScript做到什麼事,其次,以自己的技術能力,應該要能夠做到什麼程度。

如果把所有事情都用JavaScript來做,雖然可以,但是何必呢?這對專案並沒有幫助。在適當的場合使用適當的工具,是很重要的事。

另一個可怕的問題是,對現在的環境而言,需求比較複雜,一般人需要透過許多套件來完成一些效果,而這些效果的再使用率很低,最後只會想學工具怎麼用,對一些細節反而沒那麼在意。

如果你熟悉JavaScript,瞭解細節,你可能根本不需要用到那些套件,往往,面對一個小問題卻用了很大的套件,導致網頁變得很慢。

雖然純JavaScript的概念理解也很重要,但各個專案前端大多處於各種不同的伺服器語言、環境底下,在接觸JavaScript時,也會有許多不同工具的使用者。因此,真正瞭解JavaScript的人其實相當少。最好能看到每個工具就可以分析出背後跟JavaScript的關係,以及它可以用來解決的問題,而不只是單純會用工具。

舉例來說,某個網站讀取一個畫面要花上12秒,因此我就很好奇這是什麼問題,而開始分析它的流量狀況,最後發現,原來是因為沒有把讀取JavaScript的方式正確的設定好,導致讀取其他網站的API時,拖累網頁開啟速度。由於這種基本的問題一直在發生,因此我希望學JavaScript的人,都能先把基礎訓練打好、掌握好細節,其實很快就能夠將問題解決。

此外,目前很多國內開發者遇到的狀況是,沒有太多訓練就直接被指派去寫,因此,可能有人會用基本的技巧,去寫很複雜的系統,導致後續維護時完全被卡住。這樣的狀況就好比如說,齒輪大小不對,讓所有大小不一的齒輪在轉動時很沒有效率。

回頭來看,我只有在寫程式的前三年是為了增進能力而寫程式,後面這幾年都是試著去挑戰一些需求,把需求做到先自己滿意,最好別人還會滿意。同時,我自己也會實做出許多小Project,練習再練習,就是最好的作法。

而且,我認為,要做一個好的前端工程師,後端的經驗是一定要的,也因此讓進入這塊領域的人有較大的困難。問:在ZK工作時,有什麼經驗可以分享?在過程中,你覺得最有成就感的事?

答:在普奇科技上班時,主要是負責Web前端的工作,與過去後端的工作相比,雖然有差異,但其實我很快就已經上手。進公司第2年時,我跟另一位同事一同被派去美國出差,在那段時間的工作經驗中,我認為壓力很重,但實質上的工作內容是輕鬆的,國外對於工作的觀念很我們有很大的不同,也增長了不少的見識。我在這段期間也沒有閒著,花了一個月的閒暇時間,做出一個可以線上分享ZK範例的平臺,這也是目前讓我最有成就感的事。

當時,鑑於使用者分享ZK範例相當困難,而且舊的方法相當沒效率,因而開發出一個線上程式碼分享平臺。這個平臺可以允許使用者線上寫Java類別(Java Class),並且線上編譯、執行。但其實,在構想這個平臺時,一開始就遇到了問題,因為可以線上編譯與執行,就表示使用者也能夠改寫這個平臺,我為了這個問題想了非常久,原來解決問題的方式很簡單,只要將伺服器與虛擬機分開就可以了。

此外,我也辦了多次的ZK讀書會,這是一個自發性的活動,我跟同事會與使用者面對面聊ZK的問題,並且示範一些基本的操作案例。

有人可能會想,多做這些工作以外的事有什麼好處,我之所以會這樣做,並不需要什麼特別的原因,當自己看了這些東西,若是覺得有所不足,就會想提出抱怨、會想改善,這就是程式設計師的基本反應才對。

問:除了寫程式之外,你常在PPT上提到你的興趣是保齡球,你的球技如何呢?
答:在保齡球方面,我從小學3年級就開始接觸,大學時4年校隊,主要球路是飛碟球,2006年時,曾經在全國學生盃保齡球錦標賽男子組,拿下個人全項第1名,6局比賽加總為1,206分。

其實,這次奪冠的過程相當戲劇化,因為在第2局曾打出相當丟臉的137分,抱持平常心後,第4局反而打出267分,最後以一分之差獲得冠軍。現在,我也維持這樣的興趣,加入業餘球隊,自己的球技大概已經介於業餘跟職業的邊界了。但因為對於程式的熱愛,以及我還無法愛保齡球愛到可以當一輩子的職業,所以我沒有選擇保齡球這條路。

我的另一個興趣就是旅行。過去,其實在大學時,我也曾加入童軍社,後來並擔任過社長。當初會加入童軍社,是因為我覺得自己不太會說話,害怕站在臺上,但是,我覺得我想要做一些事情,就必須練習一些技能。

當初,在大學時,我每天幾乎只睡4小時。從平時作息來看,一週之內,我有兩個晚上寫程式、兩個晚上給童軍社,用來安排、策畫活動,有3個晚上則是保齡球,要練球。當然,平時趕專案還是占了較多的時間。我對於我想做的事情,其實都玩得很深,「專注」是很重要的一件事。文⊙羅正漢

馬上按讚加入iThome FB粉絲團

Advertisement

更多 iThome相關內容