冒險村11 - frozen_string_literal 11 - frozen_string_literal延續 Begin from linter : rubocop 中最後 Auto-fix 提到 frozen_string_literal 的設定,這魔法般的註解到底代表什麼意思呢? 先從 Ruby 中常數(constant)變更來理解可以很容易看出 MY_CONSTANT constant 是可以被變更的,不過我們常常在專案中或許想要寫死某個 d 2021-09-26 13th鐵人賽 13th鐵人賽 後端冒險村 ruby on rails
冒險村10 - or equals 10 - or equalsRuby 的 ||=(or equals)運算符號使用頻率是個使用頻率滿高又方便的方法。在舉例實際會用到的情況之前,我們直接先講最後實際的意定義:如果變數已經被定義,則不會改變變數,如果沒有被定義,那就會賦值給變數。 所以是什麼意思呢?舉例來說: 1234my_name ||= "chester"# => "chester&quo 2021-09-25 13th鐵人賽 13th鐵人賽 後端冒險村 ruby on rails
冒險村09 - Time format config 09 - Time format在專案中時常會有用到顯示時間的地方,可能格式只有一種,但是會散落在各個檔案裡,又或者是有許多種的格式。 舉例來說,可能是某個前端 erb 檔案需要撈這筆資料被建立的時間 (create_at),但是不想要 rails 預設給的 format 顯示給使用者。 1User.first.created_at.strftime("%F %H:%M") 或 2021-09-24 13th鐵人賽 13th鐵人賽 後端冒險村 ruby on rails
冒險村08 - Preitter output in rails console 08 - Preitter output in rails consoleRails 的 default console 顯示看起來有點不好閱讀、不好看、也不美麗,在開發上對於資料的顯示相對於來說就是一路到底的感覺。當顯示的資料表中的欄位比較多時,對於開發來說又更不容易些,這篇將介紹一些優化 console UI 的兩個用過的 gems。 defualt console UI1234567# bu 2021-09-23 13th鐵人賽 13th鐵人賽 後端冒險村 ruby on rails
冒險村07 - Update gems & js 07 - Update gems & js專案如果要長久,套件升級是一定是不可或缺的事,從上篇的 Auto-update dependencies 中,我們可以透過 dependabot 幫我們偵測需要更新的套件,當然不依賴它也可以透過下指令知道目前需要更新的套件。 這篇就來介紹該如何升級吧! Update installed gems12# At the root directory o 2021-09-22 13th鐵人賽 13th鐵人賽 後端冒險村 ruby on rails
冒險村06 - Auto-update dependencies 06 - Auto-update dependencies除了 Release Drafter 及 Create PR with default template 很常用到之外,gems 與 js 的更新也是專案中不可缺少的一塊,而 Github 也有 Dependabot 來自動化的掃目前需要更新的套件(不能完全仰賴,但如果掃出來的代表一定有新版本) Setting .github > 2021-09-21 13th鐵人賽 13th鐵人賽 後端冒險村 ruby on rails
冒險村05 - Release Drafter 05 - Release Drafter每當專案 merge & deploy 完畢時,都會產生對應的 releases log 紀錄 tag、修改的內容與打包的程式碼,就像 Create PR with default template 裡撰寫 Pull requests template 時相同,會有個 default 的 template 來幫我們產生文字敘述內容及產生日期的 tag 2021-09-20 13th鐵人賽 13th鐵人賽 後端冒險村 ruby on rails
冒險村04 - Create PR with default template 04 - Create PR with default template在 Github 多人開發協作時,不同的工程師發的 Pull Requests 描述也寫的不ㄧ樣,而寫的方式如果每個人都有自己的風格,對於 Reviewers 來說負擔其實也滿大,也有可能因為 PR 寫的不完整造成更多的溝通成本。 除了能統一團隊的撰寫模式外,也可以將每次都會寫到相同的文字設定成 template 來節省時間, 2021-09-19 13th鐵人賽 13th鐵人賽 後端冒險村 ruby on rails
冒險村03 - Travis CI cookbook 03 - Travis CI cookbook既然都處理好 linter 來檢測我們的專案是否有符合規範,來把 Rails 放到 Travis CI 給它跑起來吧! 首先到 Travis CI 首頁,透過 Github 或者其他方式登入(注意如果進入的是首頁是 https://travis-ci.org/ 可以點選上方黃色的 link 連到 .com 的網址,以前有分企業、免費版) 登入完成後,點 2021-09-18 13th鐵人賽 13th鐵人賽 後端冒險村 ruby on rails
冒險村02 - Begin from linter(2) 02 - Begin from linter : rubocop延續上篇的 rails_best_practices 後,這篇來介紹 linter Rubocop 。 Rubocop 是一個可以統一規定、自訂規則及忽略規則,達到完全的客製化的 linter,把團隊的開發 coding style 都遵循在這個基石上繼續建立,可以提升專案開發效率。 如果專案沒有一個基本的規範,在工程師的協作中,想 2021-09-17 13th鐵人賽 13th鐵人賽 後端冒險村 ruby on rails