Inside 硬塞的網路趨勢觀察

“我們來聊聊 Twitch,還有為什麼它值 10 億美金” 與新的 2 篇文章 - Inside 網路趨勢行銷與開發

Link to Inside 硬塞的網路趨勢觀察

我們來聊聊 Twitch,還有為什麼它值 10 億美金

Posted: 21 May 2014 05:20 AM PDT

我們來聊聊 Twitch,還有為什麼它值 10 億美金


昨天Google傳出以10億美元的價格,要怒收線上遊戲直播平台Twitch,到底為什麼?

從兩年前接觸Twitch到現在代理Twitch,在筆者個人的臆測中,Google 跟 Yahoo! 可能都會想去吃掉這個最大的線上遊戲影音平台。雖然報導的可信度還不是100%準確,Google 可能性的確不小,是因為Twitch在影音市場算是有威脅性,也跟Youtube屬性有強烈的區隔,eSports的人氣又扶搖直上,於是策略性的併下來有如虎添翼。雖然沒確定花落誰家,這條新聞倒是為Twitch標出了一個10億美元的價碼,在此,筆者就小小分享一些個人觀察。

(首圖: 這是麻吉大哥在Twitch上直播的畫面,近日他也成立了LOL電競職業隊 "Machi"。)

(今天二月發表的報表,顯示Twitch已經超越Hulu跟Facebook成為美國網路使用的第四名)

原本知道Twitch的人,是一群很鮮明的小眾: 遊戲玩家。這網站在做啥?就是直播自己打電動給別人看。就是這樣一個概念,光是在台灣流量就很驚人,每個月創造了2500萬次影音曝光的機會,單月超過150萬獨立訪客,如果是處於賽季還不止於此,在遊戲類網站裡是台灣第二名,僅次於巴哈姆特。其實就如同很多人說的,Twitch 是遊戲界的ESPN。

(Quantcast上,台灣是Twitch在全世界第五大流量來源)

Twitch有兩種主要的影音內容,eSports比賽的直播,電玩高手的個人直播

簡單說明一下關於電子競技(eSports),這個概念已經行之有年,基本上只要是用電子遊戲進行的比賽,就是一種eSport,所以最早還可以追朔到1972年史丹佛大學舉辦的Spacewar遊戲比賽,還有90年代後期因為開始有網路,開始線上進行互動的遊戲比賽如Netrek。在我們比較熟悉的近期比賽,不管是星海爭霸還是CS:GO,國際賽事裡台灣的選手也不缺席。不少網路界裡的大大也是過來人,如敝站Fox似乎也有過一段輝煌的CS歲月(遠目)。關於eSports得開另一篇來寫,來說說Twitch的角色。

Twitch為什麼值錢? 其實不完全在他驚人的流量。

Twitch在遊戲界,是一個扭轉乾坤的存在。

前身是justin.tv,由於遊戲類的流量在各種直播中拔得頭籌,又比較沒有版權爭議,在2011時被獨立出來做成Twitch TV。 當年在Twitch成立的同時,原本還有一家性質一樣的網站叫做Own3D,後來不幸於2013年倒閉,Twitch順勢接收了Own3D的內容與觀眾,正式成為全球性的霸主,所有最重要的比賽如IEM,LCS,IGN,GPL,WCG,基本上都是在Twitch上直播。

因為競技型的遊戲,尤其是英雄聯盟 (League of Legends, LOL),正在火速竄紅,英雄聯盟原廠Riot Games砸錢大推eSports,產生了很多線上觀看競賽的需求,也出現許多職業隊跟名人,在這樣的先天後天環境下,造就今天英雄聯盟在Twitch的收視率,在各類遊戲中仍然保持領先。在台灣由於2012年以黑馬之姿奪得世界冠軍,抱走100萬美金的獎金,人氣更是高漲。策略型遊戲吸引觀眾不只玩,還想看,如重口味的二戰系列遊戲 World of Tanks 戰車世界,也在母公司Wargaming 的加持下,在世界各地舉辦比賽,吸引戰爭迷觀賞。需要技巧的遊戲會產生觀戰效應,這個需求,被Twitch抓個正著。

(台灣英雄聯盟隊伍TPA奪得世界冠軍,愛國主播長毛內牛滿麵,截自Twitch.tv)

這一群打電動的人,多少錢?

扭轉乾坤的地方就在這裡,Twitch提供電競產業裡一直很缺乏的鏈結,把原本零散的資源,整合進一個更容易monetize的經濟圈。

一,打開世界級全球流的電競文化

eSports的環境原本很niche,資源很零散,而且很難吸引到非遊戲電腦相關的產業來投資,一來是因為遊戲之前非主流娛樂,二來局限於傳統媒體時,收視規模無法做大,然而在2010年左右,線上直播這個選項迸出,讓許多原本關在家裡或是展場發生的事情,輕鬆得讓全世界的人看到,於是延燒起了遊戲直播的熱潮。世界級的比賽,不論發生在何處,觀眾在家垂手可得。這些可以數據化的收視率,整合出了電競的市場規模,帶動各種品牌投入預算,讓eSports的前景變得更明朗。例如台灣出現了電競專門公關公司4Gamers,利用直播平台替不少大廠舉辦比賽。又例如美國大型賽事的贊助商,可以跳脫電腦周邊大廠,找到美國運通來贊助。這對於eSports來說,都是一種商業時代的全新展開。

(2012年英雄聯盟冠軍賽全球820萬人收視。2013年則達到3200萬人收視。eSports的魅力因為直播而飆漲。)

(周邊與遊戲大廠因為Twitch曝光的管道明確,觀眾輪廓清楚,成效可追蹤,更願意投資在電子競技上,圖截自4Gamers網站)

二,觀眾參與

舉例來說,筆者個人喜歡看我弟打電動多過於自己打,因為他比較強不會卡關,看得比較過癮,而這樣的心態,也可以反應在Twitch的觀眾群身上。觀眾可以在網路上,看遊戲高手的各種神操作,也可在聊天室裡跟高手互動,甚至跳上Skype一起聊天,培養出一群忠誠,目的性清楚,定位鮮明的收視群。今年三月裡,更出現一個風靡全球的Twitch Plays Pokemon,是一個由觀眾開發的互動遊戲,去爬聊天室裡的文字,轉換成指令來遙控直播中的遊戲,16天吸引至少116萬人次來玩,超過5500萬的觀看數,有興趣的人現在也可以去玩一下,很混亂就是了,幾千人一起操作有種玩碟仙的感覺,小智就一直撞牆XD。更有人在Kickstarter上募資,想開發一款專門給Twitch的直播互動遊戲,吸引Twitch自己跑去投了15000美金!

遊戲公司的互動舞台

許多新款遊戲,原廠都會指定在Twitch上開直播,讓開發人跟觀眾來個Q&A,Demo一下Alpha或是Beta中的作品,集結觀眾的建議,作為開發時的參考,也順勢當成前導宣傳。還有在遊戲上市時,廣邀直播名人來開箱直播試玩,當成一種廣告,讓遊戲公司多了一個公關操作神器,而且使用是免費的。

(激戰2在推出前,辦了很多場的 "與開發者對談" 直播,讓觀眾跟遊戲的故事作者,機關設計者,美術設計人等多方對話。截圖自Twitch.tv)

四,職業玩家的新收入來源

Twitch會把廣告收益分潤給他的直播主,這件事情對於有熱誠投入Professional Gaming的玩家而言,有著極大的重要性,過去希望把打電動當飯吃的人,唯一的途徑就是高人一等,進入戰隊,並且領著略遜的月薪。但是今天在Twitch上,只要你有特色,有個人魅力,不管是不是高手都可能擁有一批死忠的粉絲,讓自己可以有一份收入,這份收入可以很驚人,任何人都可以來使用,提供了有夢想的人一個實際的商業舞台。

以上,都是Twitch讓全球遊戲界脫胎換骨的功效 (講得跟在賣藥一樣),但是說真的,這轉變才剛剛開始。除了PC game之外,Twitch最近順勢進入了所有新的遊戲主機如Xbox One跟PS4,加載了直播的功能,在手游上也跟Gameloft結盟,讓手機遊戲的直播更輕鬆,這些平台的內容整合未來會帶來的產業衝擊,應該不小。

當許多人都在討論Twitch的流量表現時,我們回過頭來看原因: 一個平台打通了 professional gaming 的任督二脈,把遊戲原廠,玩家,廣告主兜到一個經濟圈,讓市場供需找到可以交易的平台,牽起了一條新時代的產業鏈。今天Twitch的流量對Google來說值10億美金,筆者卻也認為,它對遊戲產業帶來的各種商機牽成,難以估價。

最後,也私心的希望台灣的電競跟遊戲產業,能跟著世界一起飛高高。:)

 

軟硬整合依舊、女性撐起半邊天——AppWorks 第八屆 Demo Day 活動報導

Posted: 21 May 2014 05:09 AM PDT

軟硬整合依舊、女性撐起半邊天——AppWorks 第八屆 Demo Day 活動報導

今天台灣育成中心 AppWorks 在台大國際會議中心舉行第八屆 Demo Day,共有 19 組團隊輪番上陣。合夥人林之晨分享過去七屆優秀的團隊表現:全體 AppWorks 校友總共募得 13.9 億元(包括 AppWorks 投入的 2.5 億元);整體營業額達到 15.1 億台幣,並且創造 873 個工作機會。同時他也說明 AppWorks 未來的展望,善用台灣相對優勢如工程師素質、更友善的創投、IPO,打造為東南亞的矽谷,他也預告,未來幾屆大家將會看到更多東南亞創業者上台。

林之晨也提到過去幾年表現特優的團隊,EZTABLE 突破 400 萬人訂餐,今年挑戰台幣 10 億營業額,預計 2017-2018 年上市。網路自動廣告投放服務 Tagtoo 廣告瀏覽量也預計達 6 億;Mamibuy 今年營業額達 1.2 億。

與會的群聯電子董事長潘建成則以「船到橋頭自然直,但是也得先把船划到橋頭」勉勵創業者努力致志,「划到最對的方向,時間到了,成果就長出來了。」他也對台灣成為東南亞矽谷樂觀其成,特別是因政局相對穩定。

以下為本日 19 組上台 Demo 的團隊:

MasVidia

因倒車而起的意外事故時有所聞,一般的倒車攝影機的角度約為 120 度,MasVidia 創辦人憑藉豐富的數位影像處理與軟硬整合經驗,開發出 Nu View 180 ——一款小體積高品質的超廣角 180 度車用攝影機,使汽車駕駛可以在倒車過程中看到車後盲點與死角,藉由攝影機觀察車輛周邊障礙人、物,還可以看見兩旁的來車,減少事故發生的機率。Nu View 180 售價新台幣 2,900 元,目前在台灣、英國銷售,看準美國廣大的汽車市場與相關法令規定,目前 MasVidia 正在與美國第一線車廠洽談合作。

rooti

共同創辦人黎克邁先前在鴻海工作,領導 150 億台幣營業額的事業單位,但有感於自己與同仁的身體恐怕不堪負荷,辭職出來為千萬爆肝上班族設計可以監測健康狀況的手環 Phyode,於 KickStarter 募資成功,去年九月上市至今全球賣出逾一萬個。

不過由於使用者回饋表示「希望 24 小時全天候監控」,而且不必多戴一個手環,於是他們研發出不鏽鋼金屬纖維與一般衣物混紡的 Rooti,金屬會有特殊接點偵測使用者的運動與睡眠狀態,並將資訊回傳手機、雲端,隨時發出警訊「你累了請休息」,或者「你還不夠累請再撐一下下」,未來希望利用特殊演算法發送專屬每個使用者的每日分析報告。這件衣服可以直接以洗衣機清潔,無需額外負擔。另外他們預計近期也會將另一個也命名為 Rooti 的智慧型環境偵測器公開上架募資,

對於創業,黎克邁雖然一開始是想從高壓的工作環境中出走,不過他說,開始創業之後,才發現這條路還真的沒有比較好走,既無領薪,還得倒貼,大小事都得自己張羅,他開玩笑說「AppWorks 才是真正的血汗工廠」。以前折磨供應鏈,現在倒是得學著謙卑邀約合作。

foundi

foundi 提供買屋族房地產相關整合資訊的服務,包括生活機能、房屋行情與買賣紀錄、居住安全(治安、周遭土石環境如順向坡、使用分區)等等來自政府的開放資料,讓使用者了解目標區域的資訊,在與賣家或房仲斡旋時握有更多籌碼。

2013 年,台灣房屋買賣交易金額約三兆台幣,平均每一筆 1,000 萬元,在台北市更是高達 2,400 萬元,過去曾主持 Google 地圖台灣區計畫的創辦人希望市場上能有一個由買家角度出發、解決買賣雙方資訊不對稱的問題。目前網站上線三週,每天流量為 2.6 萬。

SISGO

SISGO 聲稱自己是台灣目前最大的國際團購平台,一個月約有 1,500 團以上的淘寶團、韓國團。同時致力於購物社群經營,網站上線一年半下來,會員數已成長一倍,討論區累積超過三萬篇討論文章,其中包含七成開箱文。

台灣過去一年,網路上的賣家有四分之一貨源來自於淘寶等海外網站,SISGO 企圖為使用者解決資訊、金流和物流的問題。SISGO 的目標是成為台灣最具影響力的女性購物社群網站。

Traiwan

Traiwan 是一套一站式的民宿管理系統,從空房查詢、訂房、訂單查詢、對帳、住房率、空房率等等一套系統自動完成。二人團隊從墾丁出發,800 多間民宿目前有 150 多家使用他們的系統,市佔率逾 18%。搜集大量民宿的房價、空房數字、照片之後,他們轉與旅遊網站、旅行社、社群網站等通路合作,協助民宿推銷空房,第一年交易額達 1300 萬,未來目標是推廣到全台。

Airsig

我們使用智慧型手機時,首先要先「解鎖」。使用者可透過 Airsig 將手機當成筆在空中簽名,即可辨識是否為使用者本人。比現有手機認證技術,包括指紋辨識技術、臉部辨識技術等更安全更簡便,成本更低,甚至可以用特定手勢直接解鎖後並直接打開特定 app。

Airsig 是一套演算法,目前有 7,000 多名使用者在 500 種 Android 手機上使用,也容易被移植到平板裝置,除了作為解鎖用途,也可以用在電子商務、金流作為身分驗證,也可運用在遊戲設計。

SimpleAct

SimpleAct 已是成立十年的「新創公司」,早期專注於自然語言,後來開發 QR Code 解碼軟體,全球超過一千萬下載量,每月超過 135 萬活躍使用者,累積 5000 萬筆資料。在這些資料中同步留存使用者當下的人事時地物資訊,利用這些資訊歸納出使用者特性與產品關聯性,累積龐大消費記錄。SimpleAct 投放與之匹配的廣告試驗結果,CTR 比起業界多出 90 倍、轉換率也有 80 倍。「有興趣的廣告是資訊,沒興趣的廣告是雜訊」,希望準確傳遞精准行銷資訊給目標客群,讓廣告主得到數倍行銷效益。

自造傢

「自造傢」開發出一種模組化的 DIY 家具系統,他們從角鋼發想,以金屬為主體結構、無螺絲設計、組裝極為快速,將取代現有廚具系統;後期預計逐漸延伸發展收納、客廳、衣櫥、商用辦公等家具。台灣自從邁入系統廚具後,外銷數量一落千丈,自造傢計畫先從網路銷售出發,未來將逐步拓展至海外市場。

BASEQI

BASEQI 開發隱形 SD 卡「HiddenSuit」,可以應用在 Macbook、Ultrabook 與 Chromebook,價格便宜不到台幣 300,且完全不會外露,並且可以直接以指甲取出。去年五月在淘寶、亞馬遜、ebay 販售至今賣出 5000 多片,一半以上對消費者直接銷售。未來他們打算改良外觀,主打鋁合金材質。

AppWorkout

AppWorkout 標榜「隨身的飛輪教練」,將運動教練的專業服務整合至 app,讓原本是團體性質的飛輪課程可以不受時間和地點的限制。目前已在 App Store 推出「音樂MV騎飛輪 Cycling VJ」app(App Store 下載連結)。

FitMe

為健身族群量身定做低油低鹽的健康餐盒,特邀前喜來登廚師針對性別、年齡設計。使用者可以上網訂購,並在健身房、捷運站外定點取餐,比起一般外送省 15 分鐘時間。這兩個禮拜在特定健身房外試賣,10 天賣出 160 盒,回購率 50%,並有 20 位訂閱長期購買方案。共同創辦者林明志表示,健身族群相當注重效率,卻無法快速取得令自己滿意的料理,經常只能以豆漿、茶葉蛋果腹。他們看准一年 60 億市場缺口,希望為健身族群帶來健康與美味。

Sentri

Sentri 的團隊分別來自宏碁、宏達電與華碩,他們設計了 Sentri 這個智慧家庭中樞,配備 10 吋螢幕、夜視功能,可以透過鏡頭、溫度和濕度等感應器蒐集屋內的各種資訊,學習使用者的生活習慣,並透過藍牙與 Wi-Fi 搭配智慧型手機 app。未來 Sentri 計畫開放 API,盡可能與市面上現有具備物聯網能力的產品連結,目前正在準備於群眾募資平台上架。

HIIN MUSIC

YouTube 上百萬首歌曲,一年內請超過一千使用者對音樂做描述,請他們敘述客觀的音樂特徵、主客觀的適合情境、主觀的情境與感受,累積上百個如「旅行」、「俏皮」、「沮喪」、「振奮」音樂情境標籤,捨去演算法以「工人智慧」提供使用者源源不斷相似情境的音樂,商業模式則是推送與情境相關的廣告給使用者。推出一個月播歌數逾一萬。不過歌曲來源大多來自 YouTube,唯某些台灣獨立音樂人或地下樂團有取得版權。

DIY plus

DIY plus 發現,在台灣的手作市場有一個現象:愛好者找不到手做商品,廠商不容易找到消費者。他們相信手作的精神是「改變」,所以創造了一個提供手作資訊、創意設計、材料的專屬分享平台,同時採用移動教室的概念,不定期舉辦手作相關活動。DIY plus 試圖透過手作品味風尚改變生活,結合公益宣揚 DIY 價值精神,讓使用者「找到好設計,動手做出來」。

Artbloom

與國內外藝術家洽談授權,允許複製,目前獲得的授權數量有 9 萬幅。並與餐廳、服飾店合作,在這些裝飾需求很強的公共場合掛上複製畫,並在旁邊安裝 QR Code,消費者只需一掃就可直接購買,期望讓一般人也能用平價享受藝術。

SmartAD

來自香港的 SmartAD 曾經替當地的大型賣場設計購物促銷、顧客導入,以及餐廳排隊系統。以無線室內定位技術,讓購物商場、百貨公司及零售店舖的商家能準確接觸到潛在消費者,傳遞多樣化促銷方案至其行動裝置上,吸引潛在消費者進入店內,並有效提升客戶停留時間及消費金額。SmartAD 亦可以簡化會員積點及點數設立,讓顧客有更大誘因再次回來消費,同時提供報表給店家,使其能更加了解消費者需求。SmartAD 也跟上一屆的團隊太和光合作,由後者供應 iBeacon 裝置。下半年 SmartAD 會在香港推出服務,台灣市場則要再晚一些。

Eros 戀愛形象

最初以網路聊天室「尋夢園」起家,會員 250 萬人,每日訪客人數超過 100 萬人。2006 年成立戀愛形象顧問網站「Eros 戀愛形象」,以實體活動撮和單身男女。今年在聊天室會員的力基礎上,開拓形象改造市場,舉辦講座說明外貌儀態對於婚戀的重要性,並於會後提供一對一諮詢,若有興趣即可付費進行彩妝、髮型、穿搭、語言表達等「改造」。最近首次試辦 30 人參加、18 人參與諮詢、10 人付費改造,創造 30 萬營業額。

Blink

Blink 讓使用者放入各式各樣的入場券、集點卡、會員卡、學生會卡等等,透過 QR Code 與儲值帳戶支付,網路購物、買票、實體店面付款都能快速完成,提供學生現金以外的交易方式,現在約有 6 萬名學生會員。Blink 目前與玉山銀行合作儲值業務,並與威秀、The Wall 等商家合作推行電子票券。對 Blink 來說,現階段也許應該增加合作對象才能成為名符其實的「電子錢包」。

怪獸社區

Inside 的讀者可能有些人在玩 Google 結合現實與虛擬的遊戲「Ingress」,而「怪獸社區」結合 GPS 定位方式讓玩家走上街頭真人進行互動遊戲,結集夥伴在真實世界中進行遊戲冒險,或組隊來合作擊敗魔王,並破解各項設置在真實世界中的冒險任務。

職場老將成創業新手

延續去年第七屆 AppWorks 團隊的特色,本屆 AppWorks 的團隊不少是由過去在知名企業如 Google、鴻海、華碩、宏達電等等的職場老將組成,或是已有商品在市場銷售,另一點值得注意的是女性創辦人的比例也較過往幾屆來得更高(有一半團隊的共同創辦人是女性),這是大家樂見的情形。

不過我們也發現,團隊似乎不是那麼重視投影片的設計,但林之晨指出,產品本身、是否具備 traction,才是團隊最關心的,然而,我們認為簡報的團隊在挑選照片和影片時應該要特別注意,差勁的影音品質會嚴重影響產品的吸引力,某種程度上也反映出團隊細節處理的態度,不是嗎?

如何成為一個偉大的開發者

Posted: 20 May 2014 09:08 PM PDT

如何成為一個偉大的開發者

本文轉自合作媒體雷鋒網〈如何成為一個偉大的開發者〉,原文來自 How to be a great software developer
作者簡介: Peter Nixey,Ruby on Rails 工程師,前電腦視覺學者、企業家,Clickpass 公司 CEO,YC 育成中心的企業規劃導師,Brojure 公司 CTO。

作為一個開發者,最關心的不外乎提高自己的軟體開發水準。那要從何做起呢?積累技術知識(比如 Node 或者 No-SQL)?死命嗑那些經典的算法問題(比如氣泡排序或者網址縮短)?或者是穩固基礎?

作為一個工程師你的價值不是由你知道什麼來衡量的,而是由你能做出什麼來衡量的。兩者看起來相似,但有著天壤之別。你的價值在於如何將專案不斷向前推進,並帶領團隊一起進步。15 年的開發生涯中,我從未需要去實現一個氣泡排序算法或是網址縮短程式。我要做的是花成千上萬個小時來編寫和重構帳戶管理工具、郵件系統,編輯套件、測試套件,整理業務邏輯,部署腳本、JS 層,進行架構分析以及文檔管理等等。這些才是真正有意義的東西,完成了這些我們才能邁上新台階。

開發這些組件,就像搭建專案的一磚一瓦,需要花費幾百上千小時的努力來琢磨。它們組成了複雜的系統,但它們本身卻保持簡單。軟體之美就是「簡單」。這些年的經驗讓我悟出的道理是,把時間花在編碼和重構上,這比純粹靠「才華」和空想更能實現目標。

執行、完成任務然後迭代,才能實現軟體開發「簡單和高效」的目標。深植於我們腦海深處的關於創業的宗旨,就是先構建基礎,然後迭代。軟體開發亦是如此。先開發一個粗糙的版本,然後重構、修補錯誤、精簡。要得到結果,你得老老實實去寫程式!去執行!

一些聰明的懶人,總是炫耀自己的才華,讓同齡人為之驚嘆。但一個公司這樣做是不能成功的,偉大的產品不會靠吹噓而來。公司要依靠的是那些早起、團結協作、踏實編碼的人。吹噓容易,實幹不易,且行且珍惜。

業界一直存在這樣的誤解:一個商業公司要完成偉大的產品,需要靠那些小圈子的名人怪咖。可在現實生活中,這樣恃才傲物的一小部分人雖然在感興趣的方面有著驚人的才華,但與團隊相處很不融洽,工作起來也很不沉穩。他們不僅沒有實際成果,自以為是的優越感還會影響團隊的氛圍。他們總認為自己天賦異禀,想幹才幹,愛幹才幹,但他們影響了團隊,還會扭曲其他人的價值觀。

要成為真正偉大的開發者,應該從實幹做起,遵循以下準則。

規範的函數和變量命名

難以置信,在編程中這是如此簡單卻又如此重要的法則。清晰的函數命名,常常伴隨著清晰的邏輯實現。例如:

def process_text string

end

這樣的函數命名方式完全不能傳達出來函數的功能是什麼。而:

def safe_convert_to_html string
……
end

這樣的函數命名方式,準確反映出了函數有且僅有什麼作用。

除了「轉換文本到 HTML」之外,可能有開發者願意實現其它功能,例如自動嵌入視頻等,但通常這是不需要的。清晰規範的函數命名不僅能讓人一眼看出它能做什麼,也能讓人知道它不能做什麼。良好的命名規範可以提升程式可讀性,讓程式間關係更加清楚明白。不規範的命名,常常伴隨著混亂的程式、BUG、糟糕的邏輯。

規範變量命名也同樣重要,例如:

if (u2.made < 10.minutes.ago)
&& !u2.tkn
……

這樣的命名方式很難讓人讀懂,即便讀懂了,也很難保證完全了解的作者的意圖。這個變量命名很糟糕,不能傳達任何信息。而且「並且不(&& !)」這樣的語句本來就非常晦澀難懂,更別說在語句後面還跟著一個名詞了。如果有人要重構這段程式的話,恐怕需要先費盡腦子搞清楚原作者是在幹什麼。如果將變量命名規範​​化,情況會很不一樣。

if (new_user.created_at < 10.minutes.ago)
&& !new_user.invitation_token

……

當然,變量命名太過畫蛇添足也不行。例如我們將這段程式,進一步註釋成這樣:

user_is_recently_created = user.created_at < 10.minutes.ago
invitation_is_unsent = !user.invitation_token

if user_is_recently_created
&& invitation_is_unsent

user_recently_created,這個變量命名實在是浪費時間來解釋顯而易見的東西。

就像 DHH 說的那樣,註釋是個麻煩的東西,一旦邏輯改變,註釋也要改變。如果程式能好的反映自身邏輯,便不需要註釋。

累積——先求深,再求廣

工程師在開發過程中,常常會遇到各種各樣的問題,但很少是完全陌生、其它團隊也沒有遇到過的。在 Stack Overflow 上最吸睛的提問,大多曾在其它地方出現過。

多數時候,工程師所用的程式語言本身就帶有解決方案。筆者曾經調用一個封裝好的內建函數,將一段 60 行程式重構到 1 行。

重複造車輪般的過程去實踐那些程式語言內建的函數不僅浪費時間,也意味著程式將更冗長,還可能引入 bug,需要更多的單元測試和註釋文檔。

好好穩固自己的基礎吧!如果你是一個 ruby 工程師,就好好學習 Ruby 豐富的數組方法;如果是 Node 開發者,就好好去理解 node.js 的架構;如果是 Angular 工程師,就去理解其內核背後的邏輯。在動手實現之前,先仔細查閱文檔。記住,我們都站在巨人的肩膀上。把時間花去學習那些頂尖工程師的思路和方法,要正確的多。

培養對程式的嗅覺

很多工程師水準不錯但是遇到了撞牆期,問題常常出在他們不知道如何提升自己。這也許是技術生涯裡能夠遇到的最糟糕的事情了。要想知道如何提升自己,首先得知道需要在哪方面有所提升。一個優秀的象棋手,總是會花時間研究其他優秀棋手的路數,對於一個優秀的工程師來說,也是如此。

要想提升自己,最好的辦法莫過於培養對程式的嗅覺。哪怕不能清楚地說出原因,也能察覺到一段程式的問題在哪裡。什麼是程式嗅覺?比如讀到一段很難懂的程式,會察覺到哪裡有問題。面對一個很基礎的功能,你會覺得語言本身應該有函數封裝。要培養對程式的嗅覺,需要培養對程式的審美水準。程式之美,簡單優雅!

在開發的過程中,應該力圖將程式寫的簡單優雅。如果只能用複雜醜陋的方法實現,那起碼要邏輯清晰。沒有對優雅和糟糕程式的嗅覺,技術水準將難以提升。

提升程式可讀性

Joel Spolsky 曾經說過,Stack Exchange 不僅造福那些提問者,也造福那些看到提問的閱讀者。為什麼?因為許多人遇到的問題都是相似的,這些相似的問題都可以參考這個解決方案進行處理,效用便最大化了。

工程師寫程式時也應採用類似的策略。也許程式僅由你自己寫,且只寫了一次,但它會被很多人閱讀、修改。所以,在寫程式的時候,除了完成任務以外,還應力圖不給後來人造成麻煩。在開發過程中,除了有良好的命名規範,還需要用嚴格的單元測試來保證程式足夠耐用,經得起考驗。種因得果,設想一下,一年之後在完全沒有耐心,時間又緊迫的情況下,讓你來讀現在寫下的程式,你理解那種心情吧!

重視產品的生命週期成本

新手開發者們熱衷探索和折騰。他們熱愛那些最新最閃亮的技術,不管是 No-SQL 數據庫還是高並發的移動服務器,總是恨不得把所有新工具新特性全部使用起來,但這往往給後來的開發者留下一堆爛攤子。

功能和架構的選擇會影響到建於其上的一切。潛在的抽象洩露風險,引發的後果將不堪設想。除非你有足夠的理由,否則千萬不要使用那些尚處於測試中的功能。所有主要專案的開發,都應該小心翼翼。如果非要嘗試這些新特性,最好在那些輔助專案上嘗試,這樣保險得多。為了將來不把大量的時間都用來彌補前期捅的婁子,要謹慎使用新特性。

理解技術負債

技術負債是指那些混亂糟糕,但還能工作的程式。比如一個本應該用面向服務的架構,卻單獨開發了的 APP;或者一個重構後只需要十分之一執行時間的 Cron 任務腳本。

技術負載不僅會累加,還會帶來複合效應。愛因斯坦說過,「世界上最強大的力量是複利」。類比到軟體開發上,技術負載的複合效應也最具有毀滅性。多數開發者遭遇過這樣的專案:哪怕是一點輕微改變,都不得不花費幾個月的時間。這種情況下,你會失去保持程式整潔優雅的興趣和耐心,只求不要搞壞整個服務。

技術負債還有一個特點是:你不需要償還。當開發的一個功能最後發現是錯誤的、不工作的,你會直接放棄它,同時也放棄所有的優化、測試及重構。所以,如果不是真正需要的話,那就不要去開發。將效用最大化,忽略錯誤。

技術負債,就像一個蛙跳遊戲。最初的程式都只是嘗試,只要能實現目標快速推進就好。這讓我們有足夠的時間來提出解決方案,足夠的空間來建立基礎設施。產品的生命週期越長,投入在基礎設施上的時間就越長。有了穩固可靠的基礎設施架構,才能支撐起一個高品質的產品。

總結並分享所完成的工作

不管用什麼樣的風格來註釋文檔,不管是用郵件還是 Wiki,一定要花時間記錄開發流程以及所用到的資料,並分享給其他團隊成員。他們和你一樣,也會遇到各種安裝和調試的​​問題。軟體開發中,最令人頭疼的事情就是花費大量的時間來解決 bug 和安裝調試。如果你用一點時間來製作文檔或者教程的話,將為團隊省下更多的寶貴時間。

把握好測試的平衡

軟體開發中的測試活動是強有力的工具,它能讓你為產品發布做好準備。走過測試流程,新版本的發布對你來說應該是件信心滿滿的事,不會感到恐慌,新版本的發布也會進展的更快。經過的測試流程太少,有可能會出大亂子。當然,如果測試流程過頭了,你會變得綁手綁腳。

至於進行多少量的測試,沒有直接的答案。每個專案需要的測試總量和測試點都不同。在開發的過程中,我們應該下點功夫理解什麼部分是真正需要測試的,什麼時候測試才會產生價值。不要害怕進行測試,也不要害怕不進行測試,只要找到其中的平衡點就好。

讓團隊進步

你的存在,是讓你的團隊變得更好了?還是拖了團隊的後腿?你的程式品質、文檔和技術水平,是不是幫助周圍的人有所提升?你有沒有啟發和​​鼓舞隊友,讓他們變得更好?或者,你是那個 Bug 製造者,浪費時間爭論無意義的架構問題,到最後沒有實際產出的人?

一個偉大的開發者,應該影響他周圍的人,讓團隊一起進步。

成果最重要

「你是誰並不重要,重要的是你做了什麼」,電影《蝙蝠俠》裡這句台詞很適合用在軟體開發者身上。

作為一個開發者,你有多聰明,了解多少技術知識並不能衡量你的能力。你的簡歷上,會寫你會什麼語言、在哪裡上的大學、在哪家公司工作過等等,這些只能顯示出你會什麼,能做什麼。但真正衡量你作為一個開發者的價值的是,你做了什麼,專案和團隊因你而改變了什麼!

via peter nixey

arrow
arrow
    全站熱搜

    投機客的行銷世界 發表在 痞客邦 留言(0) 人氣()