iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 26
0
Modern Web

Ruby礦工的Rails地圖系列 第 26

新年快樂之準備跨年以前的一些Rails命令列提醒

光看標題
是不是以為我已經墮落,打算隨便打一些心得文充數?
不好意思,我還是有身為工程師的尊嚴的
今天是2016/12/31
2016的最後一天,現在身在新北市金山準備與朋友一起跨年
迎接2017的到來
在歡喜的空擋,我依然翻閱rails guide,
尋找是不是有值得介紹給大家,被忽略到的小技巧
因為翻找的過程中發現每一點都不夠足以成為單獨一篇
所以零散彙整成集
我覺得在2016的最後一刻,應該算是誠意十足。

console sandbox

rails console在開發過程中幾乎是每個工程師的基本技能
就我個人而言,會有一個視窗常駐是開啟console模式
但即使是本地端測試資料庫環境
有時候亂試一些語法,還是可以造成環境毀損
這個時候就可以考慮一開始就使用「沙盒」
也就是在下console時,後面加上參數--sandbox

> rails c --sandbox
Running via Spring preloader in process 74571
Loading development environment in sandbox (Rails 4.2.5.1)
Any modifications you make will be rolled back on exit

這樣就會載入console的沙盒模式
不管你在裡面做了什麼,離開後就會全部rollback
尤其是在正式環境的console
為了保守謹慎起見,或許用沙盒會好一些唷!!

rake about and rake stats

專案開發的過程中
雖然與專案朝夕相處,但有時候對於專案的一些細節
可能反而沒有放在心上
當想要查詢專案的一些細節時
有兩個方法可以分別查詢不同面向:

rake about

> rake about
About your application's environment
Rails version             4.2.5.1
Ruby version              2.0.0-p598 (x86_64-darwin14.0.0)
RubyGems version          2.6.6
Rack version              1.6.5
JavaScript Runtime        Node.js (V8)
Middleware                Rack::Sendfile, ActionDispatch::Static, Rack::Lock, #<ActiveSupport::Cache::Strategy::LocalCache::Middleware:0x007f9e62c46488>, Rack::Runtime, Rack::MethodOverride, ActionDispatch::RequestId, Rails::Rack::Logger, ActionDispatch::ShowExceptions, WebConsole::Middleware, ActionDispatch::DebugExceptions, ActionDispatch::RemoteIp, ActionDispatch::Reloader, ActionDispatch::Callbacks, ActiveRecord::Migration::CheckPending, ActiveRecord::ConnectionAdapters::ConnectionManagement, ActiveRecord::QueryCache, ActionDispatch::Cookies, ActionDispatch::Session::CookieStore, ActionDispatch::Flash, ActionDispatch::ParamsParser, Rack::Head, Rack::ConditionalGet, Rack::ETag
Application root          /Users/Chenbater/rails5/demo
Environment               development
Database adapter          sqlite3
Database schema version   20161208141259

會告訴你專案的各種版本細節,
資料庫種類等等,有點像專案的產品規格明細

rake stats

> rake stats
+----------------------+-------+-------+---------+---------+-----+-------+
| Name                 | Lines |   LOC | Classes | Methods | M/C | LOC/M |
+----------------------+-------+-------+---------+---------+-----+-------+
| Controllers          |     5 |     3 |       1 |       0 |   0 |     0 |
| Helpers              |     2 |     2 |       0 |       0 |   0 |     0 |
| Models               |    28 |    26 |       4 |       3 |   0 |     6 |
| Mailers              |    17 |    10 |       2 |       1 |   0 |     8 |
| Javascripts          |    16 |     0 |       0 |       0 |   0 |     0 |
| Libraries            |     0 |     0 |       0 |       0 |   0 |     0 |
| Controller tests     |     0 |     0 |       0 |       0 |   0 |     0 |
| Helper tests         |     0 |     0 |       0 |       0 |   0 |     0 |
| Model tests          |     7 |     3 |       1 |       0 |   0 |     0 |
| Mailer tests         |    21 |    15 |       2 |       1 |   0 |    13 |
| Integration tests    |     0 |     0 |       0 |       0 |   0 |     0 |
+----------------------+-------+-------+---------+---------+-----+-------+
| Total                |    96 |    59 |      10 |       5 |   0 |     9 |
+----------------------+-------+-------+---------+---------+-----+-------+
  Code LOC: 41     Test LOC: 18     Code to Test Ratio: 1:0.4

stats看得是體質,在專案內總共有幾行code
分別位於哪些地方
相信這點如果不查詢,大部份的工程師都沒有概念
只能抓個大概的數字吧!
rails專案內建直接告訴你專案行數
不需要開編輯器把所有檔案行數加總囉!!!

這張表除了可以檢視專案結構,是否有過於偏重哪一部分
更重要的是提供數據告訴你測試覆蓋是否充足
部分翻譯如下:
Lines:多少行,包含空白、註解
LOC:line of code,扣除空白、註解等無意義的部分,共有幾行code
Classes:多少類別
Methods:多少方法
M/C:平均每個類別多有多方法
LOC/M:平均每個方法有多少行code
Code LOC:專案總共有幾行code
Test LOC:專案的測試總共有幾行code
Code to Test Ratio:專案測試比率,前面是專案行數假如為一時,後面是測試佔比,一般來說低於0.5是有點過低(也就是測試少於一般code的二分之一)

今天就介紹到這邊
大家都準備跨年去吧!
2017新年快樂

參考資料


上一篇
淺談Concern -- 相同的方法要好好收納
下一篇
實用Gem 介紹:taiwan_city
系列文
Ruby礦工的Rails地圖30

尚未有邦友留言

立即登入留言