prism

2018-03-06

Practical Go Benchmarks

msgpack 根本爆快

https://stackimpact.com/blog/practical-golang-benchmarks/

部落格網址更換

再一些時間後,Chrome 就會把沒有加密的網站都列為
不安全的網站了,目前 Blogger 轉址服務,不支援 https
所以只好先把,部落格的網址就是

新的 https://blog.lifetaiwan.net 要加 https 加密

舊的 https://terryhtp.blogspot.com


感謝,Blogger 這麼多年的穩定服務,最後我還是移到簡單的靜態網頁的方式

目前就是放在 GCP 給每一個帳號,美國地區,免費的 最小 instance 裡,我想應該是很夠用了

自己只是單純地寫寫筆記,應該是不會遇到什麼流量的問題才對

NativeScript Vue 1.0


原作者說大約發展了一年的時間,覺得可以
發布 1.0 的版本,讓有興趣的人用用看了

如果您原本有用 NativeScipt 或是 Vue 的人,絕對可以把玩了

https://nativescript-vue.org/en/docs/introduction/

這裡補一下,簡單的 NativeScript 及 Vue 的特點

NativeScript https://www.nativescript.org/

你可以這麼想,就是類似 React Native 的方式,在手機上開發,利用 javascript,或是可以轉譯成 js 的語言去開發原生
的手機應用程式,利用 NativeScript 的 runtime 和原生的手機服務介面溝通,已達到,原生程式的介面,或是行為

Vue.js https://vuejs.org/

一種漸進式的 js 框架,讓網頁應用程式,寫起來,比較接近 js 的寫法,範本的部分,也是接近,原本的 html
雖然也可以用轉譯成 jsx 的寫法,可以適用於,小到大的應用場景

簡單的說,就是比較不潮的 React,但是,簡單,直觀,是他最大的優點

golang crawler demo

最近有個面試的回家作業,做了一個簡單的爬蟲

單純只有爬一下,家樂福,還有大潤發的網站,一家是用 HTML 不斷的翻頁下去,爬完休息
另一家,直接找他的 json api ,直接抓 api 的結果就可以了

目前整個 code base 挑出來的毛病,或是說,用一個微小的專案,來看軟體開發這件事,需要具備的東西
也是一個不錯的自我成長方式,可以一步一步看,目前用 golang 來實作一些,像是後端服務的一些處理模式

會寫出來,主要是也許會對剛好有機會碰到,這些問題的人有幫助

code reference https://github.com/terryh/honestman

我先列一些一般來說用 golang 來寫一些像是 api 服務的問題,或是比較像是軟體的架構模式來討論

1) crawler (爬蟲) 的 go routine 模式

2) 要用 ORM 來抽象化 SQL 的操作好,還是不用 ORM 來操作

3) 你需要用 framework 嗎?

4) simple test case and benchmark ?


由於,這其實是一個可大可小的題目,但是,我還是來簡單說一下,目前,一般用 golang 做 web service ,或是給手遊用的
後端服務介面,或是手機應用程式的 api 介面,大概會用哪一些函式庫

如果,開發團隊人員不多,對整個 http/s 或是網路服務認識不多,會選,既有的框架
目前,比較受歡迎的有

https://github.com/gin-gonic/gin

https://github.com/astaxie/beego

https://github.com/labstack/echo

我個人比較推薦是相容於 golang http library http.HandlerFunc 的 framework

如果不要框架,選擇更多,但是,這種人必須比較專業,也要更了解要處理的問題,還有 golang standard library ,因為,要有能力可以判斷,
像大家建議的 COMPOSITION 方式 https://www.youtube.com/watch?v=194blNHDdd0

自己組建比較多,就是選用一個 http router dispacher
這個則是有很多的參考,或是選擇 https://github.com/julienschmidt/go-http-routing-benchmark

剩下的大概就是組建自己的服務了

需要 HTML, JSON render 的,或是需要驗證身份,或是希望引用 ORM 來達到和 DB 層的抽象化,這些每一種都一個選擇,伴
隨著也都是取捨的問題

未完待續,接下來,上面列出的點,會做作小筆記,也希望對需要的人有幫助 ;-)