大家如何編寫 erlang 的程式碼?

109 views
Skip to first unread message

Shian

unread,
Feb 29, 2012, 3:40:21 AM2/29/12
to erlang...@googlegroups.com
今天看到 vimerl 的 announcement, 簡單試用了一下,感覺還不錯,該有的功能都有了,想說順便問問看大家是怎麼編寫 erlang 的程式碼?無意挑起編輯器大戰,只是想看看有沒有什麼可以互相參考的。

就我自己的經驗,一開始是用 eclipse 的 erlide,當時還不是很穩定,常常掛機,由於是使用 eclipse 的平台,因此最容易上手。後來實在受不了了就改用 erlang 界推薦的 emacs,由於之前沒有使用 emacs 的經驗,一切從頭學起。erlang 本身就有支援 emacs,現在新版的 emacs 也已經內建支援 erlang mode,因此安裝上並不會太複雜。我又參考網路上的介紹多裝了個 distel 和 flymake。distel 提供許多功能,不過我還不會用 :P 。 flymake 是個好物,推薦一定要裝,尤其是新版的支援 rebar 的目錄結構。flymake 可以在編輯檔案時就一邊編譯檔案,找出語法或拼字上的錯誤,可以節省很多時間。目前我在 emacs 上 code completion 的功能還沒試出來,有成功的人可以順便教一下嗎?

前些日子有再試用新版的 erlide,感覺上是穩定多了,原本想切換過去卻發現他不能透過 rebar 來編譯檔案,且 erlide 還不支援命令列編譯,沒有辦法用在 CI 的環境下。如果 erlide 要用在真正的專案上,就必須能支援 CI 或和 rebar 或 erlang-maven 這類編譯工具整合。

目前我的工作流程是用 emacs 來編輯檔案,開兩個終端機,一個執行 make ,一個執行 erlang vm,vm 中會跑 reloader 來自動載入更改的檔案。檔案改好後執行 make 編譯,編譯完成後就自動載入,然後在 vm 上執行測試。

omusico

unread,
Feb 29, 2012, 4:44:10 AM2/29/12
to erlang...@googlegroups.com
請問vm的 reloader
如何實現!!?



--
您已訂閱「Google 網上論壇」的「Erlang_Taiwan」群組,因此我們特別傳送這封郵件通知您。
如要在網路上查看這項討論,請造訪 https://groups.google.com/d/msg/erlang_taiwan/-/-WDjZYN4FikJ
如要在此群組張貼留言,請傳送電子郵件至 erlang...@googlegroups.com
如要取消訂閱此群組,請傳送電子郵件至 erlang_taiwa...@googlegroups.com
如需更多選項,請造訪此群組:http://groups.google.com/group/erlang_taiwan?hl=zh-TW

Shian

unread,
Feb 29, 2012, 5:18:01 AM2/29/12
to erlang...@googlegroups.com
我是拿 mochiweb 中的 reloader.erl 來用
看起來就是定時的去掃檔案,有改變的話就用 code:purge code:load_file 來讀入新的檔案
請問vm的 reloader
如何實現!!?

如要取消訂閱此群組,請傳送電子郵件至 erlang_taiwan+unsubscribe@googlegroups.com
如需更多選項,請造訪此群組:http://groups.google.com/group/erlang_taiwan?hl=zh-TW

omusico

unread,
Feb 29, 2012, 5:27:05 AM2/29/12
to erlang...@googlegroups.com
https://github.com/mochi/mochiweb/blob/master/src/reloader.erl
改變用code:purge code:load_file 讀入新檔案
新檔案是指beam嗎!還是erl


如要在網路上查看這項討論,請造訪 https://groups.google.com/d/msg/erlang_taiwan/-/cC-5JAtL7mUJ

如要在此群組張貼留言,請傳送電子郵件至 erlang...@googlegroups.com

黃耀賢 (Yau-Hsien Huang)

unread,
Feb 29, 2012, 11:09:12 AM2/29/12
to erlang...@googlegroups.com

2012/2/29 Shian <shi...@gmail.com>

今天看到 vimerl 的 announcement, 簡單試用了一下,感覺還不錯,該有的功能都有了,想說順便問問看大家是怎麼編寫 erlang 的程式碼?無意挑起編輯器大戰,只是想看看有沒有什麼可以互相參考的。

就我自己的經驗,一開始是用 eclipse 的 erlide,當時還不是很穩定,常常掛機,由於是使用 eclipse 的平台,因此最容易上手。後來實在受不了了就改用 erlang 界推薦的 emacs,由於之前沒有使用 emacs 的經驗,一切從頭學起。erlang 本身就有支援 emacs,現在新版的 emacs 也已經內建支援 erlang mode,因此安裝上並不會太複雜。我又參考網路上的介紹多裝了個 distel 和 flymake。distel 提供許多功能,不過我還不會用 :P 。 flymake 是個好物,推薦一定要裝,尤其是新版的支援 rebar 的目錄結構。flymake 可以在編輯檔案時就一邊編譯檔案,找出語法或拼字上的錯誤,可以節省很多時間。目前我在 emacs 上 code completion 的功能還沒試出來,有成功的人可以順便教一下嗎?


emacs裝了,然後裝erlang,去翻erlang安裝的文件中,有提到 emacs erlang-mode 的設置方式。大概就是在 ~/.emacs 填制式的Lisp程式,指定erlang-mode.el 檔案位置。
(emacs 的外卦檔案是 *.el )
填好並重新啟動 emacs ,之後寫 *.erl 檔案會自動開啟 erlang模式,而且之後按 Ctrl+C Ctrl+K 會自動開另一個 emacs buffer ,系統自動把 erlang shell 掛進去,而且載入你正在編輯的 erl 檔案並且編譯。下次再輸入 Ctrl+C Ctrl+K 也會重新編譯一次。

我是用 emacs + erlang-mode 來寫東西。雖然還沒有達到一個 IDE 的便利,但我覺得這樣就夠了。
 
前些日子有再試用新版的 erlide,感覺上是穩定多了,原本想切換過去卻發現他不能透過 rebar 來編譯檔案,且 erlide 還不支援命令列編譯,沒有辦法用在 CI 的環境下。如果 erlide 要用在真正的專案上,就必須能支援 CI 或和 rebar 或 erlang-maven 這類編譯工具整合。


如果有什麼東西稱為IDE的話,我會期待下列功能:
1. 建立空專案:建立新專案時,會把 build 檔和比較基本的 *.erl 檔開出來。如果指定專案要有erlang的behaviour(模組),也會自動把behaviour框架檔建立出來。甚至如果IDE比較優秀,應該要能直接產生基本的特定模型專案,例如 server/client 就是一種可以自動產生的模型,我印象中 Mochi 有這個能力。
2. 加入新檔案:要可以加普通的 *.erl 、可以加制式的behaviour 或 interface 框架。
3. 程式碼即時提示:這個功能是走物件導向風格或模組元件風格的語言及系統的宿命。是這一類的語言卻沒有引導功能,可說幾乎是該死 (以工程觀點而言) 。
 
目前我的工作流程是用 emacs 來編輯檔案,開兩個終端機,一個執行 make ,一個執行 erlang vm,vm 中會跑 reloader 來自動載入更改的檔案。檔案改好後執行 make 編譯,編譯完成後就自動載入,然後在 vm 上執行測試。

--
您已訂閱「Google 網上論壇」的「Erlang_Taiwan」群組,因此我們特別傳送這封郵件通知您。
如要在網路上查看這項討論,請造訪 https://groups.google.com/d/msg/erlang_taiwan/-/-WDjZYN4FikJ
如要在此群組張貼留言,請傳送電子郵件至 erlang...@googlegroups.com
如要取消訂閱此群組,請傳送電子郵件至 erlang_taiwa...@googlegroups.com
如需更多選項,請造訪此群組:http://groups.google.com/group/erlang_taiwan?hl=zh-TW



--

Best Regards.

--- Y-H. H.


Shian

unread,
Feb 29, 2012, 10:05:39 PM2/29/12
to erlang...@googlegroups.com
新檔案是指 beam 檔,所以要先用 make 編譯過
另外 sync (https://github.com/rustyio/sync) 這個 application 可以偵測 erl 然後自動幫你編譯、載入。可是目前不支援 rebar 的設定,如果有特定的編譯選項可能會不適用。

Shian

unread,
Feb 29, 2012, 10:24:34 PM2/29/12
to erlang...@googlegroups.com


On Thursday, March 1, 2012 12:09:12 AM UTC+8, Yau-Hsien Huang wrote:

如果有什麼東西稱為IDE的話,我會期待下列功能:
1. 建立空專案:建立新專案時,會把 build 檔和比較基本的 *.erl 檔開出來。如果指定專案要有erlang的behaviour(模組),也會自動把behaviour框架檔建立出來。甚至如果IDE比較優秀,應該要能直接產生基本的特定模型專案,例如 server/client 就是一種可以自動產生的模型,我印象中 Mochi 有這個能力。
 
2. 加入新檔案:要可以加普通的 *.erl 、可以加制式的behaviour 或 interface 框架。

我是自己用了一個空專案的樣本,當我要開新專案的時候就複製一份,然後用 rebar create-app appid=<myapp> 來建立必要的檔案 (https://bitbucket.org/shian/erlang_env/)
erl 的框架: emacs 的 erlang-mode 中有提供,rebar 中也有 template 可以用,erlide 也有
 
3. 程式碼即時提示:這個功能是走物件導向風格或模組元件風格的語言及系統的宿命。是這一類的語言卻沒有引導功能,可說幾乎是該死 (以工程觀點而言) 。

同意。被 vs eclipse 養壞了胃口,沒有這個寫起 code 來常常要一直翻找 document 才知道參數有哪些,十分不便。erlide 有提供這項功能,emacs 的我一直弄不出來,現在常透過 http://erldocs.com/ 或用 erl -man 來查找
 
--
Shian

omusico

unread,
Mar 1, 2012, 2:49:41 AM3/1/12
to Erlang_Taiwan
居然有erl -man這東西 我孤陋寡聞~~~剛剛試了一下
好像/usr/lib/erlang/man/ 下有的指令才有說明

> 有提供這項功能,emacs 的我一直弄不出來,現在常透過http://erldocs.com/或用 erl -man 來查找
>
> --
> Shian

黃耀賢 (Yau-Hsien Huang)

unread,
Mar 1, 2012, 9:01:54 AM3/1/12
to erlang...@googlegroups.com
順道問一問,近來有做什麼project嗎?

2012/3/1 Shian <shi...@gmail.com>

Shian

unread,
Mar 1, 2012, 10:47:07 PM3/1/12
to erlang...@googlegroups.com

目前在玩 nitrogen
個人比較喜歡這種只要用一種程式語言然後編譯成其他語言的作法,像是 nitrogen、GWT 等
其他在 HTML 中寫一堆標籤或內嵌程式碼的總覺得維護上不大容易 :P

--
Shian

黃耀賢 (Yau-Hsien Huang)

unread,
Mar 2, 2012, 9:27:32 AM3/2/12
to erlang...@googlegroups.com
意思是說你都做動態網頁的project嗎?或者是編譯成靜態網頁?
如果要弄個 "ESP" (Erlang Server Page) 還要準備專屬的網站主機才行。


2012/3/2 Shian <shi...@gmail.com>
--
您已訂閱「Google 網上論壇」的「Erlang_Taiwan」群組,因此我們特別傳送這封郵件通知您。
如要在網路上查看這項討論,請造訪 https://groups.google.com/d/msg/erlang_taiwan/-/rJ_SkjW3hGMJ

如要在此群組張貼留言,請傳送電子郵件至 erlang...@googlegroups.com
如要取消訂閱此群組,請傳送電子郵件至 erlang_taiwa...@googlegroups.com
如需更多選項,請造訪此群組:http://groups.google.com/group/erlang_taiwan?hl=zh-TW

Shian

unread,
Mar 4, 2012, 10:52:39 PM3/4/12
to erlang...@googlegroups.com
hi

我現在不確定 nitrogen 有沒有把程式碼在編譯時先轉成靜態網頁,理論上是可以作到,不過現在我沒辦法連上 http://nitrogenproject.com/ 作進一步的確認。
其實我現在做的是一些 web service ,吐 json 或 xml 的資料,基本上也不一定要 nitrogen ,webmachine 或用 mochiweb 硬刻也是可以。寫一些 html 是為了作測試及讓前端的人參考。因為系統規模不會大到幾萬個連接,我想 nitrogen 應該綽綽有餘。

常見的網頁開發應該都是以 template 為主,由 designer 設計 html 然後在要顯示內容的地方插入程式碼,像 erlang 也有 erldtl (https://github.com/evanmiller/erlydtl)。HTML 寫起來會像這樣:

<body> <h1>{{ content }}</h1> </body>

以上的 HTML 如果以 nitrogen 來寫就會變成這樣:

#body{body=[ #h1{ text = content() } ] }

個人是比較喜歡在一個環境中作所有的事,況且一個檔案中同時有多個語言,有些編輯器也不支援。

我不確定你說的 "ESP 需要專屬的網站主機" 是什麼意思,可以再說詳細一點嗎。


On Friday, March 2, 2012 10:27:32 PM UTC+8, Yau-Hsien Huang wrote:
意思是說你都做動態網頁的project嗎?或者是編譯成靜態網頁?
如果要弄個 "ESP" (Erlang Server Page) 還要準備專屬的網站主機才行。


2012/3/2 Shian <shi...@gmail.com>

目前在玩 nitrogen
個人比較喜歡這種只要用一種程式語言然後編譯成其他語言的作法,像是 nitrogen、GWT 等
其他在 HTML 中寫一堆標籤或內嵌程式碼的總覺得維護上不大容易 :P

--
Shian


On Thursday, March 1, 2012 10:01:54 PM UTC+8, Yau-Hsien Huang wrote:
順道問一問,近來有做什麼project嗎?

2012/3/1 Shian <shi...@gmail.com>
On Thursday, March 1, 2012 12:09:12 AM UTC+8, Yau-Hsien Huang wrote:
3. 程式碼即時提示:這個功能是走物件導向風格或模組元件風格的語言及系統的宿命。是這一類的語言卻沒有引導功能,可說幾乎是該死 (以工程觀點而言) 。

同意。被 vs eclipse 養壞了胃口,沒有這個寫起 code 來常常要一直翻找 document 才知道參數有哪些,十分不便。erlide 有提供這項功能,emacs 的我一直弄不出來,現在常透過 http://erldocs.com/ 或用 erl -man 來查找
 
--
Shian


--
您已訂閱「Google 網上論壇」的「Erlang_Taiwan」群組,因此我們特別傳送這封郵件通知您。
如要在網路上查看這項討論,請造訪 https://groups.google.com/d/msg/erlang_taiwan/-/rJ_SkjW3hGMJ

如要在此群組張貼留言,請傳送電子郵件至 erlang...@googlegroups.com
如要取消訂閱此群組,請傳送電子郵件至 erlang_taiwan+unsubscribe@googlegroups.com
如需更多選項,請造訪此群組:http://groups.google.com/group/erlang_taiwan?hl=zh-TW


2012/3/2 Shian <shi...@gmail.com>

如要在此群組張貼留言,請傳送電子郵件至 erlang...@googlegroups.com
如要取消訂閱此群組,請傳送電子郵件至 erlang_taiwan+unsubscribe@googlegroups.com
如需更多選項,請造訪此群組:http://groups.google.com/group/erlang_taiwan?hl=zh-TW


2012/3/2 Shian <shi...@gmail.com>

如要在此群組張貼留言,請傳送電子郵件至 erlang...@googlegroups.com
如要取消訂閱此群組,請傳送電子郵件至 erlang_taiwan+unsubscribe@googlegroups.com
如需更多選項,請造訪此群組:http://groups.google.com/group/erlang_taiwan?hl=zh-TW

黃耀賢 (Yau-Hsien Huang)

unread,
Mar 5, 2012, 6:18:09 AM3/5/12
to erlang...@googlegroups.com


2012/3/5 Shian <shi...@gmail.com>

hi

我現在不確定 nitrogen 有沒有把程式碼在編譯時先轉成靜態網頁,理論上是可以作到,不過現在我沒辦法連上 http://nitrogenproject.com/ 作進一步的確認。
其實我現在做的是一些 web service ,吐 json 或 xml 的資料,基本上也不一定要 nitrogen ,webmachine 或用 mochiweb 硬刻也是可以。寫一些 html 是為了作測試及讓前端的人參考。因為系統規模不會大到幾萬個連接,我想 nitrogen 應該綽綽有餘。

曾經見過一個連線規模的測試報告,apache一下子就掛了,但Erlang server連線數多出個幾百倍應該有。
 
常見的網頁開發應該都是以 template 為主,由 designer 設計 html 然後在要顯示內容的地方插入程式碼,像 erlang 也有 erldtl (https://github.com/evanmiller/erlydtl)。HTML 寫起來會像這樣:

<body> <h1>{{ content }}</h1> </body>

以上的 HTML 如果以 nitrogen 來寫就會變成這樣:

#body{body=[ #h1{ text = content() } ] }

專業的網頁開發工具,近來都講MVC模式,應該有會也Erlang的MVC可用。
 
個人是比較喜歡在一個環境中作所有的事,況且一個檔案中同時有多個語言,有些編輯器也不支援。

我不確定你說的 "ESP 需要專屬的網站主機" 是什麼意思,可以再說詳細一點嗎。

ESP這裡是針對所謂動態網頁開發,與ASP, PHP等等相比,但不管是什麼什麼P,
做網頁開發的會碰到網頁發佈方面的需求。網頁發佈時,開發者要去找一台網站主機
(WWW Server) 。在Windows平台準備網站主機很簡單,而如果寫PHP也很容易
去外面租用一台網站主機。但是 Erlang 嘛...... 我所指的只是這件事情。

 
如要在網路上查看這項討論,請造訪 https://groups.google.com/d/msg/erlang_taiwan/-/DuyzysdwttcJ

如要在此群組張貼留言,請傳送電子郵件至 erlang...@googlegroups.com
如要取消訂閱此群組,請傳送電子郵件至 erlang_taiwa...@googlegroups.com
如需更多選項,請造訪此群組:http://groups.google.com/group/erlang_taiwan?hl=zh-TW

omusico

unread,
Mar 5, 2012, 9:33:34 PM3/5/12
to erlang...@googlegroups.com
不知有沒有 在線上的Erlang web server實例 因為如果就線上同時併發數 我相信Erlang可以做的很好
但不知在實務面 是否有數據可參考

Shian

unread,
Mar 5, 2012, 11:45:37 PM3/5/12
to erlang...@googlegroups.com

『Erlang 中的 MVC』 ,這是個有趣的題目,我想我們可以另外開個主題來聊聊。

Erlang 要發布網頁應該也不是難事,Erlang 內建的模組中的 inets 就有包含 httpd ,設定上跟 apache 差不多,用來提供靜態的網頁也是足夠了。而其他的像 yaws, nitrogen, webmachine, cowboy 等等 web server 更不用說。因此只要你租用的主機能夠裝 erlang 應該就可以了,像是 AWS, Linode 等 VPS 的服務。如果你是指提供 erlang hosting 的廠商,印象中沒有看過,不過我也不喜歡這樣的服務。因為他提供的 erlang 版本可能是舊版或是客製化過的,或未來 erlang 有新版時,更新又慢吞吞的。

--
Shian

Shian

unread,
Mar 5, 2012, 11:57:17 PM3/5/12
to erlang...@googlegroups.com

目前用 erlang 作 web server 的網站還不多,畢竟不是主流的技術。
線上的 erlang web server 實例可以參考 http://erlang.org 他是用 erlang 內建的 inets 搭出來的。要看同時併發數的話,我想可以參考 https://irccloud.com/ ,他是用 erlang 寫的線上 irc 我想應該同時會有很多人掛在上面 :P


On Tuesday, March 6, 2012 10:33:34 AM UTC+8, omusico wrote:
不知有沒有 在線上的Erlang web server實例 因為如果就線上同時併發數 我相信Erlang可以做的很好
但不知在實務面 是否有數據可參考

黃耀賢 (Yau-Hsien Huang)

unread,
Mar 6, 2012, 6:33:20 AM3/6/12
to erlang...@googlegroups.com
我覺得MVC不特別。只要想辦法在一開始先設立一套雛型網站結構,將三個部份的填寫位置確定好,接下來就看網站開發者如何讓每個網頁檔案尺寸增加了。

2012/3/6 Shian <shi...@gmail.com>
如要在網路上查看這項討論,請造訪 https://groups.google.com/d/msg/erlang_taiwan/-/D38M7Xso6E8J

如要在此群組張貼留言,請傳送電子郵件至 erlang...@googlegroups.com
如要取消訂閱此群組,請傳送電子郵件至 erlang_taiwa...@googlegroups.com
如需更多選項,請造訪此群組:http://groups.google.com/group/erlang_taiwan?hl=zh-TW

Shian

unread,
Mar 6, 2012, 10:58:25 AM3/6/12
to erlang...@googlegroups.com

On Tuesday, March 6, 2012 7:33:20 PM UTC+8, Yau-Hsien Huang wrote:
我覺得MVC不特別。只要想辦法在一開始先設立一套雛型網站結構,將三個部份的填寫位置確定好,接下來就看網站開發者如何讓每個網頁檔案尺寸增加了。

願聞其詳

--
Shian
 

omusico

unread,
Mar 6, 2012, 10:10:21 PM3/6/12
to Erlang_Taiwan
我也認同Erlang來作MVC並不能發揮他的特性 已經有太多類似且主流的框架
應該強調 高併發 跟 連網透明的特性
對Heroku 的routing mesh很有興趣 不知是否有clone的版本 或各位的相關心得

On Mar 6, 7:33 pm, 黃耀賢 (Yau-Hsien Huang)


<g9414002.pccu.edu...@gmail.com> wrote:
> 我覺得MVC不特別。只要想辦法在一開始先設立一套雛型網站結構,將三個部份的填寫位置確定好,接下來就看網站開發者如何讓每個網頁檔案尺寸增加了。
>
> 2012/3/6 Shian <shi...@gmail.com>
>
>
>
>
>
>
>
>
>
> > 『Erlang 中的 MVC』 ,這是個有趣的題目,我想我們可以另外開個主題來聊聊。
>
> > Erlang 要發布網頁應該也不是難事,Erlang 內建的模組中的 inets 就有包含 httpd ,設定上跟 apache
> > 差不多,用來提供靜態的網頁也是足夠了。而其他的像 yaws, nitrogen, webmachine, cowboy 等等 web server
> > 更不用說。因此只要你租用的主機能夠裝 erlang 應該就可以了,像是 AWS, Linode 等 VPS 的服務。如果你是指提供 erlang
> > hosting 的廠商,印象中沒有看過,不過我也不喜歡這樣的服務。因為他提供的 erlang 版本可能是舊版或是客製化過的,或未來 erlang
> > 有新版時,更新又慢吞吞的。
>
> > --
> > Shian
>
> > On Monday, March 5, 2012 7:18:09 PM UTC+8, Yau-Hsien Huang wrote:
>
> >> 2012/3/5 Shian <shi...@gmail.com>
>
> >>> hi
>

> >>> 我現在不確定 nitrogen 有沒有把程式碼在編譯時先轉成靜態網頁,理論上是可以作到,**不過現在我沒辦法連上
> >>>http://nitrogenproject.com/作進一步的確認。


> >>> 其實我現在做的是一些 web service ,吐 json 或 xml 的資料,基本上也不一定要 nitrogen ,webmachine

> >>> 或用 mochiweb 硬刻也是可以。寫一些 html 是為了作測試及讓前端的人參考。**因為系統規模不會大到幾萬個連接,我想
> >>> nitrogen 應該綽綽有餘。
>
> >>> 曾經見過一個連線規模的測試報告,apache一下子就掛了,**但Erlang server連線數多出個幾百倍應該有。


>
> >>> 常見的網頁開發應該都是以 template 為主,由 designer 設計 html 然後在要顯示內容的地方插入程式碼,像 erlang 也有

> >>> erldtl (https://github.com/**evanmiller/erlydtl)。HTML<https://github.com/evanmiller/erlydtl%29%E3%80%82HTML>寫起來會像這樣:


>
> >>> <body> <h1>{{ content }}</h1> </body>
>
> >>> 以上的 HTML 如果以 nitrogen 來寫就會變成這樣:
>
> >>> #body{body=[ #h1{ text = content() } ] }
>

> >>> 專業的網頁開發工具,近來都講MVC模式,**應該有會也Erlang的MVC可用。
>
> >>> 個人是比較喜歡在一個環境中作所有的事,**況且一個檔案中同時有多個語言,有些編輯器也不支援。


>
> >>> 我不確定你說的 "ESP 需要專屬的網站主機" 是什麼意思,可以再說詳細一點嗎。
>
> >>> ESP這裡是針對所謂動態網頁開發,與ASP, PHP等等相比,但不管是什麼什麼P,

> >> 做網頁開發的會碰到網頁發佈方面的需求。網頁發佈時,**開發者要去找一台網站主機
> >> (WWW Server) 。在Windows平台準備網站主機很簡單,**而如果寫PHP也很容易


> >> 去外面租用一台網站主機。但是 Erlang 嘛...... 我所指的只是這件事情。
>
> >>> On Friday, March 2, 2012 10:27:32 PM UTC+8, Yau-Hsien Huang wrote:
>

> >>>> 意思是說你都做動態網頁的project嗎?**或者是編譯成靜態網**頁?


> >>>> 如果要弄個 "ESP" (Erlang Server Page) 還要準備專屬的網站主機才行。
>
> >>>> 2012/3/2 Shian <shi...@gmail.com>
>
> >>>>> 目前在玩 nitrogen

> >>>>> 個人比較喜歡這種只要用一種程式語言然後編譯成其他語言的作法,****像是 nitrogen、GWT 等


> >>>>> 其他在 HTML 中寫一堆標籤或內嵌程式碼的總覺得維護上不大容易 :P
>
> >>>>> --
> >>>>> Shian
>
> >>>>> On Thursday, March 1, 2012 10:01:54 PM UTC+8, Yau-Hsien Huang wrote:
>
> >>>>>> 順道問一問,近來有做什麼project嗎?
>
> >>>>>> 2012/3/1 Shian <shi...@gmail.com>
>
> >>>>>>> On Thursday, March 1, 2012 12:09:12 AM UTC+8, Yau-Hsien Huang wrote:
>

> >>>>>>>> 3. 程式碼即時提示:**這個功能是走物件導向風格或模組元件風格的語言******及系統的宿命。**是這一類的語言卻沒有引導功能,可說幾乎是該死


> >>>>>>>> (以工程觀點而言) 。
>
> >>>>>>>> 同意。被 vs eclipse 養壞了胃口,沒有這個寫起 code 來常常要一直翻找 document
> >>>>>>> 才知道參數有哪些,十分不便。erlide 有提供這項功能,emacs 的我一直弄不出來,現在常透過

> >>>>>>>http://erldocs.com/或用 erl -man 來查找
>
> >>>>>>> --
> >>>>>>> Shian
>
> >>>>>>  --
> >>>>> 您已訂閱「Google 網上論壇」的「Erlang_Taiwan」群組,**因此我們特別**傳送這封郵件通知您。
> >>>>> 如要在網路上查看這項討論,請造訪https://groups.google.com/d/**ms**
> >>>>> g/erlang_taiwan/-/rJ_**SkjW3hGMJ<https://groups.google.com/d/msg/erlang_taiwan/-/rJ_SkjW3hGMJ>
> >>>>> **。
>
> >>>>> 如要在此群組張貼留言,請傳送電子郵件至 erlang...@googlegroups.com****。
> >>>>> 如要取消訂閱此群組,請傳送電子郵件至 erlang_taiwan+unsubscribe@**goog**legroups.com<erlang_taiwan%2Bunsu...@googlegroups.com>
> >>>>> 。
> >>>>> 如需更多選項,請造訪此群組:http://groups.**go**ogle.com/group/erlang_**taiwan?**
> >>>>> hl=zh-TW <http://groups.google.com/group/erlang_taiwan?hl=zh-TW>。


>
> >>>> --
>
> >>>> Best Regards.
>
> >>>> --- Y-H. H.
>
> >>> On Friday, March 2, 2012 10:27:32 PM UTC+8, Yau-Hsien Huang wrote:
>

> >>>> 意思是說你都做動態網頁的project嗎?**或者是編譯成靜態網**頁?


> >>>> 如果要弄個 "ESP" (Erlang Server Page) 還要準備專屬的網站主機才行。
>
> >>>> 2012/3/2 Shian <shi...@gmail.com>
>
> >>>>> 目前在玩 nitrogen

> >>>>> 個人比較喜歡這種只要用一種程式語言然後編譯成其他語言的作法,****像是 nitrogen、GWT 等


> >>>>> 其他在 HTML 中寫一堆標籤或內嵌程式碼的總覺得維護上不大容易 :P
>
> >>>>> --
> >>>>> Shian
>
> >>>>> On Thursday, March 1, 2012 10:01:54 PM UTC+8, Yau-Hsien Huang wrote:
>
> >>>>>> 順道問一問,近來有做什麼project嗎?
>
> >>>>>> 2012/3/1 Shian <shi...@gmail.com>
>
> >>>>>>> On Thursday, March 1, 2012 12:09:12 AM UTC+8, Yau-Hsien Huang wrote:
>

> >>>>>>>> 3. 程式碼即時提示:**這個功能是走物件導向風格或模組元件風格的語言******及系統的宿命。**是這一類的語言卻沒有引導功能,可說幾乎是該死


> >>>>>>>> (以工程觀點而言) 。
>
> >>>>>>>> 同意。被 vs eclipse 養壞了胃口,沒有這個寫起 code 來常常要一直翻找 document
> >>>>>>> 才知道參數有哪些,十分不便。erlide 有提供這項功能,emacs 的我一直弄不出來,現在常透過

> >>>>>>>http://erldocs.com/或用 erl -man 來查找
>
> >>>>>>> --
> >>>>>>> Shian
>
> >>>>>>  --
> >>>>> 您已訂閱「Google 網上論壇」的「Erlang_Taiwan」群組,**因此我們特別**傳送這封郵件通知您。
> >>>>> 如要在網路上查看這項討論,請造訪https://groups.google.com/d/**ms**
> >>>>> g/erlang_taiwan/-/rJ_**SkjW3hGMJ<https://groups.google.com/d/msg/erlang_taiwan/-/rJ_SkjW3hGMJ>
> >>>>> **。
>
> >>>>> 如要在此群組張貼留言,請傳送電子郵件至 erlang...@googlegroups.com****。
> >>>>> 如要取消訂閱此群組,請傳送電子郵件至 erlang_taiwan+unsubscribe@**goog**legroups.com<erlang_taiwan%2Bunsu...@googlegroups.com>
> >>>>> 。
> >>>>> 如需更多選項,請造訪此群組:http://groups.**go**ogle.com/group/erlang_**taiwan?**
> >>>>> hl=zh-TW <http://groups.google.com/group/erlang_taiwan?hl=zh-TW>。


>
> >>>> --
>
> >>>> Best Regards.
>
> >>>> --- Y-H. H.
>
> >>> On Friday, March 2, 2012 10:27:32 PM UTC+8, Yau-Hsien Huang wrote:
>

> >>>> 意思是說你都做動態網頁的project嗎?**或者是編譯成靜態網**頁?


> >>>> 如果要弄個 "ESP" (Erlang Server Page) 還要準備專屬的網站主機才行。
>
> >>>> 2012/3/2 Shian <shi...@gmail.com>
>
> >>>>> 目前在玩 nitrogen

> >>>>> 個人比較喜歡這種只要用一種程式語言然後編譯成其他語言的作法,****像是 nitrogen、GWT 等


> >>>>> 其他在 HTML 中寫一堆標籤或內嵌程式碼的總覺得維護上不大容易 :P
>
> >>>>> --
> >>>>> Shian
>
> >>>>> On Thursday, March 1, 2012 10:01:54 PM UTC+8, Yau-Hsien Huang wrote:
>
> >>>>>> 順道問一問,近來有做什麼project嗎?
>
> >>>>>> 2012/3/1 Shian <shi...@gmail.com>
>
> >>>>>>> On Thursday, March 1, 2012 12:09:12 AM UTC+8, Yau-Hsien Huang wrote:
>

> >>>>>>>> 3. 程式碼即時提示:**這個功能是走物件導向風格或模組元件風格的語言******及系統的宿命。**是這一類的語言卻沒有引導功能,可說幾乎是該死


> >>>>>>>> (以工程觀點而言) 。
>
> >>>>>>>> 同意。被 vs eclipse 養壞了胃口,沒有這個寫起 code 來常常要一直翻找 document
> >>>>>>> 才知道參數有哪些,十分不便。erlide 有提供這項功能,emacs 的我一直弄不出來,現在常透過

> >>>>>>>http://erldocs.com/或用 erl -man 來查找
>
> >>>>>>> --
> >>>>>>> Shian
>
> >>>>>>  --
> >>>>> 您已訂閱「Google 網上論壇」的「Erlang_Taiwan」群組,**因此我們特別**傳送這封郵件通知您。
> >>>>> 如要在網路上查看這項討論,請造訪https://groups.google.com/d/**ms**
> >>>>> g/erlang_taiwan/-/rJ_**SkjW3hGMJ<https://groups.google.com/d/msg/erlang_taiwan/-/rJ_SkjW3hGMJ>
> >>>>> **。
>
> >>>>> 如要在此群組張貼留言,請傳送電子郵件至 erlang...@googlegroups.com****。
> >>>>> 如要取消訂閱此群組,請傳送電子郵件至 erlang_taiwan+unsubscribe@**goog**legroups.com<erlang_taiwan%2Bunsu...@googlegroups.com>
> >>>>> 。
> >>>>> 如需更多選項,請造訪此群組:http://groups.**go**ogle.com/group/erlang_**taiwan?**
> >>>>> hl=zh-TW
>
> ...
>
> read more »

Message has been deleted

黃耀賢 (Yau-Hsien Huang)

unread,
Mar 7, 2012, 7:32:43 AM3/7/12
to erlang...@googlegroups.com

抱歉關於這個我沒有 "詳" 可述。所提只是指MVC的結果,即每一種類型的
書寫內容,包括程式、網站內容、網站格式,是放在幾個分門別類的檔案位置上。
像是Ruby on Rails,敲一個指令 (指令格式非常類似 Ubuntu的aptitude或
Haskell的的命令工具的指令) 就會自動產生一組網站架構。其中有一個目錄
的檔案是網站引擎,絕對不可以更動。有一個目錄放少許幾件簡便的設定檔。
而其他目錄則提供 M, V, C 三類的程式內容儲存,於是可自由擴充。

至於Erlang如何實作MVC 架構,則是另一個故事。


2012/3/6 Shian <shi...@gmail.com>

黃耀賢 (Yau-Hsien Huang)

unread,
Mar 7, 2012, 7:53:08 AM3/7/12
to erlang...@googlegroups.com
翻到Heroku網站的一頁,提到HTTP Routing Mesh,我覺得... 這是不是更有效地
用大量連接轟炸掉一個網路?

說起併發,或許相當符合需要矩陣運算的計算類型,也適合動態規劃的填表求值,
不過,後者的求值過程versioning最好弄清楚,也就是在併發的情況下,一致性
是相當關鍵。

2012/3/7 omusico <omu...@gmail.com>

Shian Wu

unread,
Mar 7, 2012, 9:11:47 PM3/7/12
to erlang...@googlegroups.com
如果是指框架中的 MVC ,那的確沒有什麼,照著框架的定義來作就好。我比較有興趣的是怎麼去實作它,能不能利用 erlang 的一些特性讓 MVC 這個模式有更好的表現。
erlang 中比較完整的 MVC web framework 應該是 Chicago Boss http://www.chicagoboss.org/
昨天稍微看了一下,在 model 這塊 CB 的作法的確讓人印象深刻,可惜 view 這塊是用 template 來作
我在想也許能把 nitrogen 中產生 html/javascript 的部份獨立出來,然後在 CB 中使用

---
Shian Wu

--
您已訂閱「Google 網上論壇」的「Erlang_Taiwan」群組,因此我們特別傳送這封郵件通知您。
如要在此群組張貼留言,請傳送電子郵件至 erlang...@googlegroups.com

黃耀賢 (Yau-Hsien Huang)

unread,
Mar 7, 2012, 10:25:54 PM3/7/12
to erlang...@googlegroups.com
我認為實作MVC架構是跟Erlang距離比較遠。相對的,距離比較近的是有關於
網站開發方面的普遍知識,包括一個網站的組成單元有哪些、多少個層次、
每個層次負擔什麼責任及提供什麼功能。基本上,給你任何一個語言,你都可以
投入MVC層次的思考模式,而實作出MVC架構。

以我所熟悉的ASP來看,ASP提供六個基本物件類型:server, request, response, session, application, object ,設計為MVC模式大概是這樣,
1. Model (data & database) :用一些物件類別資料欄位定義好,其中會借用ADO的
                                           Recordset來定義collection。
2. View :
    2.1. 模版文件:內容包含HTML及HTML文件中內嵌的slot格式文字。
    2.2. 模版文件產生器:這個部份用您在前幾封信所列的Erlang產生網頁的程式寫法
                                    應該是很好用的作法。
    2.3. 變數管理:用ASP的陣列管理網站內部變數與模版中嵌入的slot格式文字之間
                           的對應 (key-value set)。
3. Control:核心是程式載入框架,譬如它會固定讀取一個目錄中的 *.asp文件,之後
                 做簡單的parsing確定 *.asp 的程式內容沒有問題,然後將 *.asp 的程式
                 匯入 (<!--#include ... -->) 然後讓程式流程進入主要的程式段落。

以上提ASP的部份寫這麼多,不過那些細節都不重要,反正只是還沒設計系統之前的
一些遐想或者嘴炮。我想說的重點是要用Erlang設計MVC架構,就要一方面很熟悉網站
怎麼寫、網站資料流權限怎麼控管等等,另一方面是熟悉Erlang有哪些資料類型和程式
寫法可以符合你在這個架構中想做的某些東西,例如亂數產生器、序列數字產生器
等等。因為Erlang是函數語言,我相信做這種高階框架應該蠻輕鬆。

2012/3/8 Shian Wu <shi...@gmail.com>

Shian Wu

unread,
Mar 8, 2012, 1:54:21 AM3/8/12
to erlang...@googlegroups.com

感謝,解釋的非常清楚

---
Shian Wu

On Thu, Mar 8, 2012 at 11:25 AM, 黃耀賢 (Yau-Hsien Huang) <g9414002.p...@gmail.com> wrote:
我認為實作MVC架構是跟Erlang距離比較遠。相對的,距離比較近的是有關於
網站開發方面的普遍知識,包括一個網站的組成單元有哪些、多少個層次、
每個層次負擔什麼責任及提供什麼功能。基本上,給你任何一個語言,你都可以
投入MVC層次的思考模式,而實作出MVC架構。

以我所熟悉的ASP來看,ASP提供六個基本物件類型:server, request, response, session, application, object ,設計為MVC模式大概是這樣,
1. Model (data & database) :用一些物件類別資料欄位定義好,其中會借用ADO的
                                           Recordset來定義collection。
2. View :
    2.1. 模版文件:內容包含HTML及HTML文件中內嵌的slot格式文字。
    2.2. 模版文件產生器:這個部份用您在前幾封信所列的Erlang產生網頁的程式寫法
                                    應該是很好用的作法。
    2.3. 變數管理:用ASP的陣列管理網站內部變數與模版中嵌入的slot格式文字之間
                           的對應 (key-value set)。
3. Control:核心是程式載入框架,譬如它會固定讀取一個目錄中的 *.asp文件,之後
                 做簡單的parsing確定 *.asp 的程式內容沒有問題,然後將 *.asp 的程式
                 匯入 (<!--#include ... -->) 然後讓程式流程進入主要的程式段落。

以上提ASP的部份寫這麼多,不過那些細節都不重要,反正只是還沒設計系統之前的
一些遐想或者嘴炮。我想說的重點是要用Erlang設計MVC架構,就要一方面很熟悉網站
怎麼寫、網站資料流權限怎麼控管等等,另一方面是熟悉Erlang有哪些資料類型和程式
寫法可以符合你在這個架構中想做的某些東西,例如亂數產生器、序列數字產生器
等等。因為Erlang是函數語言,我相信做這種高階框架應該蠻輕鬆。

Best Regards.

--- Y-H. H.


Reply all
Reply to author
Forward
0 new messages