Tealeaf Academy第一週課程筆記, 課程扎實且艱深, 期許自己能更進步, 加油 =)
2015/6/22 (一)
Ruby style: (1) 讓Tab產生2個spaces而不是4個spaces
(2) variable格式
變數的命名要易讀, 太過模糊或簡易的變數在越寫越多code時會使用不便, coworker也會讀不懂你寫的code
snake_case: 用於任何地方, 全部小寫且單子間以底線隔開
CamelCase: 用於declare classes name, 每個字首大寫中間不以底線隔開
例如: class MyFirstClass
end
UPPERCASE: 用於constants variable, 每個字母都大寫, constants variable內的資料不要任意修改或刪除
例如: FOUR = 'four'
(3) do...end 寫成一行時要包在 {} 內
2015/6/23 (二)
Array與Hash主要的不同: Array 1) 有 index of base 2)重要的是maintain the order
Hash 有 key-value pair
Ruby rocket:在Ruby 1.8版之前的使用方式為 h = {:a => 1, :b => 2, :c => 3}
1.9版之後的使用方式為 h = {a: 1, b:2, c:3}
儘管如此,儲存資料的方式還是一樣以 h = {:a => 1, :b => 2, :c => 3} 儲存
Pry:檢查執行ruby code的時的每個步驟(在你想要檢查的code前一行嵌入binding.pry)
使用方法:
require 'pry'
----------your code-------------
binding.pry (結束執行程式)
var:如果local variable在outer scope宣告或initailize則可用於inner scope,反之不然
#什麼是inner scope? 例如 def method 或是 do...end
pass by reference VS pass by value:變數是否會改變是depense on method是否有mutate caller, 如果有,變數就會被修改;如果沒有則變數沒有被修改
2015/6/24 (三)
program的撰寫步驟:1) Problem definition,可以先寫一些pseudocode,像是一些口說的英文句子或片段
2) Application logic,將句子翻譯成程式語言
3)Verify with real code,寫一小段就先到irb或terminal測試,才不會寫了一大串不知道是哪裡出了錯誤
一個好的method:1) 1個method只做1件事情
2) 確保short line
3) 不要display, output or return 東西
4) 若method會return side effects, 在method的命名中就要反應這件事
Truthiness:在ruby中,所以都是truthy,除了nil和false