基本型個人 IAAS

Douglas Liu
Sohoffice Taiwan
Published in
3 min readMar 9, 2018

現在基本上大家都是用筆記型電腦來工作了,沒有足夠的經驗(年齡 ?)的同學們,可能覺得這沒什麼不好的。但是啊 ~ 一台 Macbook 動輒五萬,貴的要七八萬,用來作粗重的工作(大數據 ?)時,機體的熱氣蒸蒸日上,風扇還發出少見的哀嚎。我這是在虐待電腦嗎 ! 沒有違反勞基法還是什麼異世界的法令嗎?

我其實想過租一個 VPS 耶,不過如果要有足夠的記憶體那一個月也要不少錢。不划算 ~

桌上型電腦來救援了,只要把程式放在桌機跑不就好了嗎?但是啊~鍵盤打不習慣啊~人類可是可以正大光明的宣稱睡覺都要抱同一個小棉被的存在啊,換一個鍵盤什麼的,怎麼可能作得到啊?什麼?遠端桌面?可以再更麻煩一點嗎 ?

其實用桌機是可以的,只是需要一點小技巧

  1. 你的應用程式伺服器或是 framework 要支援 auto reload。我是用 play framework,不過很多其他的 framework 都支援的。
  2. Surprised ! 加上 DROPBOX ,只要把 workspace 丟上去 sync 就搞定了!DROPBOX 在同步小檔案時的效率遠遠的超過競爭對手,雖然是要等一小下,不過剛好用這點時間多眨一下眼睛吧?乾眼症可是很無情的。

我想聰明的你,已經知道要怎麼作了吧。為了節省你寶貴的時間,請特別注意下面這個問題哦

同樣的檔案在同一時間修改會出現 Conflict

以 java 的專案為例,要注意以下幾類的檔案

  1. Compile 出來的 class files
  2. Log files (請在你的 log config 中設定)
  3. .vagrant (僅限有在開發環境有使用 vagrant 的你)
  4. IDE files (目前無解,要使用 dropbox 就不要在多台同時使用同一個 IDE 哦!)

解決方案很簡單,這些檔案不要共用,都設為每台機器個別的路徑就好了。

下面有我的一些小偏方,請斟酌服用。

Vagrant 請設定環境變數 VAGRANT_DOTFILE_PATH 讓 vagrant 在執行時不要使用預設的 .vagrant 目錄

Ex: VAGRANT_DOTFILE_PATH=.vagrant-my-foo-computer

SBT 專案請參考以下的 build.sbt 將 compile 出來的 class 檔案放到不同目錄。

val targetDirectory: Def.Initialize[File] = Def.setting {
sys.props.get("buildBaseDirectory")
.map(x => file(x))
.map(_ / s"target-${organizationName.value}.${name.value}#${version.value}")
.getOrElse(baseDirectory.value / "target")
}
target := targetDirectory.value

本例是使用系統參數 buildBaseDirectory,執行 sbt 時加上這樣的參數即可

sbt -DbuildBaseDirectory=/my/local/build/directory

Save your Macbook and Happy coding !

Did you learn something new? If so please:

clap 👏 button below️ so more people can see this

--

--

Douglas Liu
Sohoffice Taiwan

Problem solver. Found love in Scala, Java, Angular and more …