包括我自己在內,寫測試有時候是一個非常不想面對的工作。也有很多剛入門的工程師覺得很難去分辨該怎麼去寫測試,在今天跟同事說明完一些技巧後就決定來寫一下這篇分享一下我自己的經驗。
關於 #Rails 的內容
關於 Rails 中的 Form Object / Presenter 這些物件該怎麼用(一)
前陣子在 Review 新專案中同事的程式碼時,發現同事對像是 Service Object / Form Object 這類物件不太有概念。不過這個新專案因為是接手其他公司的專案,所以有不少地方要微調。至少那個值得吐槽的「因為 Controller 程式碼太長不知道放哪裡,就都丟去 Service Object 好了!」的神奇用法,完全沒有幫助改善程式碼。
也因為這個機會,我用了一點時間跟專案的同事分享了一下我對這些物件的看法。畢竟當出我也是搞不太懂,不過隨著了解物件導向和 Ruby 的語言特性,從這些角度切入後,就比較能理解該怎麼使用。
如何在沒有任何設定下產生 Rails 的 Docker Image
前陣子看到 Throughbot 這間在 Ruby 圈 算是蠻有名的公司做了一個叫做 Suspenders 的 Gem 主要是對 Rails 擴充,簡單說就是基於原本的 rails new
做了一個替代品,而這個替代品會自動幫你先做好一些原本要手動做的事情。
像是安裝好常用的 Gem、套版之類的,想了一下覺得五倍其實也很需要,不少新專案也都是從我這邊經手初始化的,有一個這樣的工具會省下不少時間。
所以 Bankai (卍解) 這個 Gem 就樣做出來了,裡面基本上就是設置好在五倍大多數時候用的標配 Ex. GitLab CI 設定、RSpec 等等
但是又發現好像不太夠用,有些時候有 Docker 會方便很多,但是 Bankai 現在做不到!
Rails 串接 ProxmoxVE API 自動化教學用虛擬機分配
之前有一段時間因為用 KVM 手動管理五倍的虛擬機花上不少時間,評估之後我們就調整成 ProxmoxVE 來管理,至少在大多數的情況有 GUI 是很方便的。
不過使用的權限還是限制在有權限管理機器的人身上,最近剛好有不少新同事加入,想讓他們練習部署伺服器。
所以就有了這樣的問題:
可以讓同事自己申請虛擬機來練習嗎?
用 Redux 跟 GraphQL 玩 Rails 5.1
上週五在處理網址續費的時候,發現幫老爸公司管理的網址已經多到一個程度。所以就決定把手邊可以轉移的服務都往 Gandi 丟過去。畢竟粗略估算可以達到 Grid B 的費率(實際上只有九五折)不過考量到有 API 能夠管理,以及一些自動化的手段,雖然相對還是稍微貴了一點,但是省去後續不少麻煩確實是有利的。
也因為這樣,就打算以串 Gandi 的 API 來練手一下,原本是想做完管理 Domain 的部分,不過沒想到在實作一些技術面上的東西花了不少時間,只做完簡單的價格查詢。
Rails Girls 4 活動感想
好久沒寫部落格了,一些技術類的文章都沒時間寫,草稿也越積越多⋯⋯ 不過參加活動的不馬上寫完,很快就會忘記在做什麼事情啊 XDD
這次 RG4 超幸運被選為教練,然後我又長知識了~
雖然自己是讀設計學院,但是不管怎樣都不會有同學會朋友這麼認真的學這方面的知識。 其實某種意義上還蠻孤單的,不過對其他人來說畢竟不是必要的,所以也不能抱怨啊 XD
那麼,就來說說 8/29 跟 8/30 這兩天做了什麼吧!
Capistrano to Vagrant 自動部署心得
之前寫過一篇關於 Vagrant + Capistrano + GitLab 的自動化部署介紹。
不過當時因為一些問題,卡著沒有繼續完成測試。 最近因為某些原因,需要一個 Nightly-like (不一定會每日更新,取決于 commit) 的環境,所以只好硬著頭皮把全部的問題解決了⋯⋯
從學生的角度給學生學習程式的建議
雖然自己不是什麼高手,也沒什麼有建設性的建議,但是最近老爸公司來了實習生,我在跟實習生的互動過程中,發現了一些學生在學習程式上的一些要注意的部分,所以想來分享一下。
(先不討論我怎麼會在老爸公司寫扣,還有實習生怎麼出現的這些神秘問題了 XD)
其實已經有很多前輩已經分享過非常多有用的技巧與方法,這邊就單純以我個人的經驗,還有與實習生接觸後,我在教導實習生使用 Rails 和融入老爸公司開發流程的過程。(雖然以前只有我自己寫扣拉,哭哭)
用 Vagrant 整合 GitLab 與 Capistrano 做 Staging 環境自動部署
這標題超級長的說(崩潰
最近因為有實習生要來,所以把老爸公司設定好 GitLab 和 Gitlba-CI 來作為內部的版本本控制和自動化測試環境。 不過原本規劃的 Staging 環境也是在這檯主機上(當初就很淡定把記憶體和處理器加高,因為我會狂開 VM XD)但是會有 SSH 權限上的問題,原本想利用 Git 的 Hook 之類的來處理,但是感覺似乎不太好。
剛好這次看到 GitLab / GitLab CI 的介紹文,我又再次嘗試安裝,過程上順利、簡單很多。 不過上次不順利肯定是我把整個環境裝在 NAS 裡面的關係 XDD
從我建好 GitLab / GitLab CI 到設定 Capistrano 到自動部署,其實花費不少時間,而且有很多「差點忘記」的部分,因此決定來寫一篇文章做筆記!