弦而時習之

Ruby 的 Class Variable 深入解析

不該使用 Ruby 的 Class Variable 理由這篇文章中有大概提到 Class Variable 的意義在 Ruby 裡面跟我們在其他語言認知到的 static 關鍵字是不同的,那麼實際上到底差在哪裡呢?

在閱讀 mruby 原始碼之前我也想不通,然而在使用不同的技巧組合驗證特性之後,終於理解了 mruby 實作中對 RClass(Class 物件資料)裡面所定義的 iv_tbl(Instance Varable 對照表)的意義。

不該使用 Ruby 的 Class Variable 理由

前陣子跟卡米聊到一個神奇的 Ruby Class Variable 使用問題,才想起來從使用 Rubocop 之後會自動建議避免使用,就很久沒有使用 Class Variable 這個機制。

在 Ruby on Rails 中依舊還是有一部分實作會使用,因此並不是完全不使用。然而,在大多數的時候我們應該避免使用,除了對這個特性不夠了解之外,也是因為我們通常用不到。

寫程式的品味

前幾天同事根據客戶的需求在實作功能時請我幫忙檢查設計上是否有問題,因為是一段遺留代碼(Legacy Code)因此調整起來也不是那麼輕鬆。

其實同事的修改方式讓我不太滿意所以給了建議去調整,這是很多新手工程師會遇到的狀況,工作很少有機會去看到高品質的程式碼,最後就只能依照有問題的遺留代碼繼續修改跟當作學習參考。

使用 Ruby on Rails 開發 LINE LIFF 應用的登入處理

中秋連假的時候想到老爸的客戶大多是稍微有年紀的長輩,過去都是慢慢教會怎麼使用 Email 來註冊系統的,但在台灣 LINE 的普及率其實非常的高,如果能用 LIFF 並且免去註冊流程的話似乎是個不錯的選擇。

目前 LINE 的 Mini App 還沒開放,因此不知道是否能獲得比 LIFF 更好的開發體驗。

淺談用 Ruby on Rails 開發遊戲

最近剛好被人問到使用 Ruby on Rails 應該如何開發遊戲,因為是個很有趣的題目所以就利用週末的時間來簡單討論一下這個問題。雖然是以 Ruby on Rails 作為案例,不過這些經驗大致上是適用於所有程式語言的。

針對遺留代碼加入單元測試的藝術課程心得

大概在 2019 年底就有考慮要來報名,結果一直拖到 2020 才下定決心。寫測試這件事情雖然很早就知道,不過一直到出社會開始工作後才逐漸的接觸,而且最開始的時候其實寫了很多糟糕的測試,直到這幾年逐漸摸索才有一個比較有系統的測試撰寫方式。

但是透過自學比較大的問題就是知識很多時候是沒有系統的,大多是碎片的形式同時我自己也不太擅長將這些東西歸納整理,也就會出現一些盲點。也因此這次參加課程主要有兩個目的,一個是看看是否適合作為公司內部訓練的選項建議老闆,另一方面就是我自己學東西的習慣,反覆的練習基礎來達到熟練一個技能。

GitLab 是如何讓 SSH Server 和 Git 並存而不影響安全性

這次第四屆的 Astro Camp 有學員嘗試做了 GitHub 的架構,也就是能夠在遠端建立 Git 專案並且能夠在本機上傳檔案。

不過在和當助教的同事跟學員聊到 git 使用者可以登入伺服器進行任意操作的安全性問題時,在前陣子的一些測試發現實際上我自己的假設(特製的 SSH Server)是有問題的,而這個解決方法實際上也比我們想像的還容易。

做一個 Rails Form Helper 相容的 Form Object

當我們的 Rails 專案邊複雜的時候,Form Object 算是一個常見的方法。不過網路上的教學似乎大多都沒有能夠相容 Rails 的 Form Helper 的版本。

所以我就開始思考,有沒有辦法法在比較少的修改下去支援 Form Helper 呢?