Google 發表了 Dart , 剛剛看了裡面的Source Code, 它是用Python 來指引整個 Build Process, 我還以為只有我會這麼土炮,我想像中Java 世界的人都愛用ant .
這也讓我想到很多coding style 的問題,最近我的code 都用了大量的 function, 和這份 Dart 的 compiler build script code 是完完全全地不一樣。 這讓我想到有兩種不同面向的可讀性。
這一份code 的 style 是把每一個步驟都一一做給你看,你可以立刻看到他手工打造的過程。
而我自已最近偏愛的方式,是以Top Down, 先把High Level 的函式或是界面先訂好。然後再把實作補齊。
我覺得,我的方式在了解High Level concept 的時候相當很容易,Business Logic 顯而易見。而另一種方式是你可以立刻改變整個流程。
對一個成長中的程式,你有兩個選擇。一個是把Logic 直接曝露,讓你可以隨時可以搞來搞去,另一個是要隨時擁抱Refactoring. 隨然後者是比較好的方式,但看來實際情況,還是前者較省力啊!
2011年5月18日 星期三
Evernote 如何建構服務
http://blog.evernote.com/tech/2011/05/17/architectural-digest/
重點是 用了 Local File System
以及大量的Java ~~
Layout => GWT
Web Framework ==> Strip
ORM ==> Hibernate
SQL ==> MySQL
Container ==> TomCat
看起是不是很樸實呢?
重點是 用了 Local File System
以及大量的Java ~~
Layout => GWT
Web Framework ==> Strip
ORM ==> Hibernate
SQL ==> MySQL
Container ==> TomCat
看起是不是很樸實呢?
2011年4月26日 星期二
用Makefile 寫費式數列
a = 0
b = 1
all:
ifeq ($(time),10)
exit
else
@echo $a $b
@make time=$$((time + 1 )) c=$(a) a=$(b) b=$$(($(a)+$(b)))
endif
這是在看 GNU makefile 的 manual 裡的conditional statement 部份就順手寫的,還可以再精巧嗎? try try try
b = 1
all:
ifeq ($(time),10)
exit
else
@echo $a $b
@make time=$$((time + 1 )) c=$(a) a=$(b) b=$$(($(a)+$(b)))
endif
這是在看 GNU makefile 的 manual 裡的conditional statement 部份就順手寫的,還可以再精巧嗎? try try try
2011年4月11日 星期一
Java Auto Complete in vim
為了得到Java快速開發的好處,往往會借重eclipse的自動完成的功能,但是eclipse的冗長開啟時間是很讓人抓狂的,所以就找了一下這個工具,來讓vim 也有java 自動完成的功能。
http://www.vim.org/scripts/script.php?script_id=1785
安裝的方式很簡單,就是 unzip thezipfile -d ~/.vim 就結束了。
裝完後不免俗的要在 .vimrc 上 加上Java 相關的 auto command.
之後就是 ctrl-x ctrl+u 的 omni completion 了。
希望不要像clang completion 一般,有大檔案過慢的問題。
http://www.vim.org/scripts/script.php?script_id=1785
安裝的方式很簡單,就是 unzip thezipfile -d ~/.vim 就結束了。
裝完後不免俗的要在 .vimrc 上 加上Java 相關的 auto command.
" Java auto complete
" url -- http://www.vim.org/scripts/script.php?script_id=1785
if has("autocmd")
autocmd Filetype java setlocal omnifunc=javacomplete#Complete
endif
" end of Java auto complete
之後就是 ctrl-x ctrl+u 的 omni completion 了。
希望不要像clang completion 一般,有大檔案過慢的問題。
訂閱:
文章 (Atom)