沒有耐心看經(jīng)過的請直接拉到末尾看slide列表。
這個聚會是由江宏首先提議的,我參與協(xié)助。目的是讓長三角地區(qū)對clojure語言感興趣,或者正在使用的朋友當(dāng)面認(rèn)識和交流一下。會議的組織過程一波三折,首先是會議地點(diǎn)本來定在了上海google辦公室,但是后來google那邊又說不讓過去,我再聯(lián)系了原來淘寶網(wǎng)的同事火狐,經(jīng)過他的努力和幫助,最終將地點(diǎn)確定在了上海大眾點(diǎn)評。要感謝大眾點(diǎn)評網(wǎng)和火狐的幫助,不然這次活動估計就黃了。會議的日期選定也比較偶然,跟七夕撞在了一天,并且8月6號這天說臺風(fēng)“梅花”要在江浙一帶登陸,上海要刮多少級多少級的大風(fēng),加上我和杭州的幾個朋友過去要坐高鐵,那心里就七上八下了,搞不好就要被“掩埋”了。我們還開玩笑說最好買火車中段車廂的票為妙。
8月6日一早,和同在淘寶的楊冬,加上兩位做ROR的朋友一起出發(fā),天氣沒有想象的糟糕,高鐵一個小時就到了,轉(zhuǎn)地鐵到大眾點(diǎn)評網(wǎng)大概也才中午12點(diǎn)左右。打了電話給火狐,一起吃了飯然后就直奔大眾點(diǎn)評網(wǎng)。大眾點(diǎn)評網(wǎng)的前臺大廳裝修也是非常熟悉的橙色,很意外周6有很多人,后來才知道是在搞招聘會和培訓(xùn)。這時候,江宏他們也從昆山趕到了,火狐幫我們定的會議室很大,足夠容納20號人左右。陸續(xù)有人達(dá)到,到約定的1點(diǎn)的時候,我記的是來了大概11還是12個人,還有幾個朋友在路上,因此我們決定推遲到1點(diǎn)半再開始。最終來的人估計有15個以上,估計報名的都來了。
1點(diǎn)半正式開始,首先是我來講《clojure概覽》這個topic,主要是一個clojure語言的介紹。這個是我上周開始準(zhǔn)備的,在去年《clojure的魅力》的基礎(chǔ)上做了刪減和增加,聽取江宏的意見增加了示例和引子。上周也在我們的團(tuán)隊(duì)講過一次。輕車熟路,也為了給后面的topic留出時間,我講的比較快,大概40分鐘就結(jié)束了。
接下來是孫寧(sunng87)講《clojure開發(fā)的生命周期管理》,我對clojure的周邊工具并不熟悉,趁機(jī)更好地了解了很多 clojure開發(fā)過程中用到的工具和資料,推薦對clojure開發(fā)感興趣的朋友看下。嘗試了下clooj,比我預(yù)期的要好,遺憾的是還沒有語法高亮,推薦初學(xué)clojure的朋友可以嘗試下這個輕量級的IDE。目前最好的clojure IDE還是idea里的La Clojure插件。最后孫寧順便廣告了下lein-control插件,這是孫寧構(gòu)建的一個clojure-control的lein插件,他還貢獻(xiàn)了一個類似python里fabric的clojure DSL實(shí)現(xiàn),讓clojure-control更易用。
接下來是江宏介紹他們開發(fā)trakrapp.com這個純clojure實(shí)現(xiàn)的網(wǎng)站中使用的技術(shù),以及遇到的問題和經(jīng)驗(yàn)。這個網(wǎng)站基于compojure這個框架實(shí)現(xiàn)的,前端采用backbone.js,后端是MongoDB和postgresql,可以說都是非常“新潮”的技術(shù)。他在談遇到問題的時候,提到clojure的stack trace又長又丑,這一點(diǎn)深有體會,clojure的異常堆棧包含了java和clojure的,整個調(diào)用鏈相對較長,非常不利于問題的排查,不知道后續(xù)clojure會不會對這一點(diǎn)做出改進(jìn)。
接下來是林晴介紹他們一個用scala實(shí)現(xiàn)的類似domino的企業(yè)OA系統(tǒng),不過他這個例子給我的感覺更多是發(fā)揮了mongodb的schema free的特點(diǎn),沒有體現(xiàn)出使用scala的好處來。我對scala的觀點(diǎn)一直很明確,scala想做JVM上的c++,從個人角度不喜歡這種多范式的語言,并且語法不符合我的胃口,特別是類型系統(tǒng)這塊特別復(fù)雜,我怕我在寫scala的時候還要參考一本厚厚的reference,這不是我想要的。而clojure的核心就非常小,相對符合我的期望。
作為東道主的火狐介紹了大眾點(diǎn)評網(wǎng)的新架構(gòu)以及他們從.net往java遷移的經(jīng)驗(yàn),他們的新架構(gòu)也是做服務(wù)化和中心化,對于.net和java平臺來說,遷移更多是從人力成本和一些其他因素決定的,當(dāng)然,遷移最重要的還是要有公司高層的全力支持,特別重要的一點(diǎn)是如何讓老員工也參與這個過程。因?yàn)槔蠁T工對現(xiàn)有系統(tǒng)和業(yè)務(wù)最熟悉,將他們排除在外閉門造車是注定要失敗的。
最后是同樣來自昆山文石的吳哲介紹如何在半天內(nèi)實(shí)現(xiàn)一個HTML 5的游戲,他介紹的processing.js非常有趣,processing本身是一門編程語言,有人將它移植到了js上,可以直接在支持html5上瀏覽器展現(xiàn),效果相當(dāng)cool。巧合的是我在回去后的第二天去書店的時候,竟然在某個角落看到《processing互動編程藝術(shù)》這本書,買了下來準(zhǔn)備了解下。做數(shù)據(jù)圖形化的同學(xué)可以關(guān)注下。
總體來講,這次聚會的效果超過我的預(yù)期,在超強(qiáng)臺風(fēng)的陰影下和七夕愛情的感召下還有這么多人趕過來,作為組織者之一非常感動。并且topic講座也讓我學(xué)習(xí)了一些東西,最重要的是當(dāng)面認(rèn)識了一些網(wǎng)上交流過的朋友,給我印象深刻的是看起來非常老成的孫寧,完全不像個85后。還有個印象深刻的細(xì)節(jié)是現(xiàn)場的5,6臺mbp,這里面還是因?yàn)橛型瑢W(xué)是在搞ROR的因素。
最后,給下slide的鏈接如下:
1,我的《clojure概覽》,源碼在github上。
2,孫寧的《Clojure開發(fā)的生命周期管理》,lein-control和clojure-control。
3,江宏的《Clojure web development》,他們開發(fā)的網(wǎng)站
4,吳哲的《How to build a html5 game in half a day》
5,火狐的《大眾點(diǎn)評網(wǎng)新架構(gòu)》
6,cn-clojure主頁
這個聚會是由江宏首先提議的,我參與協(xié)助。目的是讓長三角地區(qū)對clojure語言感興趣,或者正在使用的朋友當(dāng)面認(rèn)識和交流一下。會議的組織過程一波三折,首先是會議地點(diǎn)本來定在了上海google辦公室,但是后來google那邊又說不讓過去,我再聯(lián)系了原來淘寶網(wǎng)的同事火狐,經(jīng)過他的努力和幫助,最終將地點(diǎn)確定在了上海大眾點(diǎn)評。要感謝大眾點(diǎn)評網(wǎng)和火狐的幫助,不然這次活動估計就黃了。會議的日期選定也比較偶然,跟七夕撞在了一天,并且8月6號這天說臺風(fēng)“梅花”要在江浙一帶登陸,上海要刮多少級多少級的大風(fēng),加上我和杭州的幾個朋友過去要坐高鐵,那心里就七上八下了,搞不好就要被“掩埋”了。我們還開玩笑說最好買火車中段車廂的票為妙。
8月6日一早,和同在淘寶的楊冬,加上兩位做ROR的朋友一起出發(fā),天氣沒有想象的糟糕,高鐵一個小時就到了,轉(zhuǎn)地鐵到大眾點(diǎn)評網(wǎng)大概也才中午12點(diǎn)左右。打了電話給火狐,一起吃了飯然后就直奔大眾點(diǎn)評網(wǎng)。大眾點(diǎn)評網(wǎng)的前臺大廳裝修也是非常熟悉的橙色,很意外周6有很多人,后來才知道是在搞招聘會和培訓(xùn)。這時候,江宏他們也從昆山趕到了,火狐幫我們定的會議室很大,足夠容納20號人左右。陸續(xù)有人達(dá)到,到約定的1點(diǎn)的時候,我記的是來了大概11還是12個人,還有幾個朋友在路上,因此我們決定推遲到1點(diǎn)半再開始。最終來的人估計有15個以上,估計報名的都來了。
1點(diǎn)半正式開始,首先是我來講《clojure概覽》這個topic,主要是一個clojure語言的介紹。這個是我上周開始準(zhǔn)備的,在去年《clojure的魅力》的基礎(chǔ)上做了刪減和增加,聽取江宏的意見增加了示例和引子。上周也在我們的團(tuán)隊(duì)講過一次。輕車熟路,也為了給后面的topic留出時間,我講的比較快,大概40分鐘就結(jié)束了。
接下來是孫寧(sunng87)講《clojure開發(fā)的生命周期管理》,我對clojure的周邊工具并不熟悉,趁機(jī)更好地了解了很多 clojure開發(fā)過程中用到的工具和資料,推薦對clojure開發(fā)感興趣的朋友看下。嘗試了下clooj,比我預(yù)期的要好,遺憾的是還沒有語法高亮,推薦初學(xué)clojure的朋友可以嘗試下這個輕量級的IDE。目前最好的clojure IDE還是idea里的La Clojure插件。最后孫寧順便廣告了下lein-control插件,這是孫寧構(gòu)建的一個clojure-control的lein插件,他還貢獻(xiàn)了一個類似python里fabric的clojure DSL實(shí)現(xiàn),讓clojure-control更易用。
接下來是江宏介紹他們開發(fā)trakrapp.com這個純clojure實(shí)現(xiàn)的網(wǎng)站中使用的技術(shù),以及遇到的問題和經(jīng)驗(yàn)。這個網(wǎng)站基于compojure這個框架實(shí)現(xiàn)的,前端采用backbone.js,后端是MongoDB和postgresql,可以說都是非常“新潮”的技術(shù)。他在談遇到問題的時候,提到clojure的stack trace又長又丑,這一點(diǎn)深有體會,clojure的異常堆棧包含了java和clojure的,整個調(diào)用鏈相對較長,非常不利于問題的排查,不知道后續(xù)clojure會不會對這一點(diǎn)做出改進(jìn)。
接下來是林晴介紹他們一個用scala實(shí)現(xiàn)的類似domino的企業(yè)OA系統(tǒng),不過他這個例子給我的感覺更多是發(fā)揮了mongodb的schema free的特點(diǎn),沒有體現(xiàn)出使用scala的好處來。我對scala的觀點(diǎn)一直很明確,scala想做JVM上的c++,從個人角度不喜歡這種多范式的語言,并且語法不符合我的胃口,特別是類型系統(tǒng)這塊特別復(fù)雜,我怕我在寫scala的時候還要參考一本厚厚的reference,這不是我想要的。而clojure的核心就非常小,相對符合我的期望。
作為東道主的火狐介紹了大眾點(diǎn)評網(wǎng)的新架構(gòu)以及他們從.net往java遷移的經(jīng)驗(yàn),他們的新架構(gòu)也是做服務(wù)化和中心化,對于.net和java平臺來說,遷移更多是從人力成本和一些其他因素決定的,當(dāng)然,遷移最重要的還是要有公司高層的全力支持,特別重要的一點(diǎn)是如何讓老員工也參與這個過程。因?yàn)槔蠁T工對現(xiàn)有系統(tǒng)和業(yè)務(wù)最熟悉,將他們排除在外閉門造車是注定要失敗的。
最后是同樣來自昆山文石的吳哲介紹如何在半天內(nèi)實(shí)現(xiàn)一個HTML 5的游戲,他介紹的processing.js非常有趣,processing本身是一門編程語言,有人將它移植到了js上,可以直接在支持html5上瀏覽器展現(xiàn),效果相當(dāng)cool。巧合的是我在回去后的第二天去書店的時候,竟然在某個角落看到《processing互動編程藝術(shù)》這本書,買了下來準(zhǔn)備了解下。做數(shù)據(jù)圖形化的同學(xué)可以關(guān)注下。
總體來講,這次聚會的效果超過我的預(yù)期,在超強(qiáng)臺風(fēng)的陰影下和七夕愛情的感召下還有這么多人趕過來,作為組織者之一非常感動。并且topic講座也讓我學(xué)習(xí)了一些東西,最重要的是當(dāng)面認(rèn)識了一些網(wǎng)上交流過的朋友,給我印象深刻的是看起來非常老成的孫寧,完全不像個85后。還有個印象深刻的細(xì)節(jié)是現(xiàn)場的5,6臺mbp,這里面還是因?yàn)橛型瑢W(xué)是在搞ROR的因素。
最后,給下slide的鏈接如下:
1,我的《clojure概覽》,源碼在github上。
2,孫寧的《Clojure開發(fā)的生命周期管理》,lein-control和clojure-control。
3,江宏的《Clojure web development》,他們開發(fā)的網(wǎng)站
4,吳哲的《How to build a html5 game in half a day》
5,火狐的《大眾點(diǎn)評網(wǎng)新架構(gòu)》
6,cn-clojure主頁