System置き換えの時はI/Oだけを見る
Systemは全てInput → Process → Outputで整理できる
https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F35671%2F04cb4681-c28e-5f35-5fba-6f6fb45c0b61.png?ixlib=rb-1.2.2&auto=format&gif-q=60&q=75&w=1400&fit=max&s=05261cfeed7104a8df1734caec367dae
どのPatternであっても「入力」と「出力」がある。
入力→出力の整合性があるなら、「Function (Process)」はなんでも良い
なので、System全体を理解する時はI/Oだけを見るべき 例えば次のような計算をしたいとき
$ Sn = 1 + 2 + 3 + 4 + .... + n
$ Sn = \frac{n(n+1)}{2}
愚直に計算してみる
Python
code:1つ目の式.py
def function(n):
result = 0
for i in range(n):
result = result + (i + 1)
return result
print_text = function(10)
code:2つ目の式.py
def function(n):
result = n * (n + 1) / 2
return result
print_text = function(10)
Ruby
code:一つ目の式.rb
def function(n)
result = 0
for i in 1..n do
result = result + (i + 1)
end
return result
end
print_text = function(10)
code:2つ目の式.rb
def function(n)
result = n * (n + 1) / 2
return result
end
print_text = function(10)
上の2式どちらでも「1からnまでの和を求める」という意味では同じ
function()と書いてある限りは、関数の定義(def)を読まなければいけない
全てのcodeを読むのはしんどい
内部を全部読まないでよくする(=可読性を上げる)方法は
1.icon 関数名(function())をわかりやすくする(名付け) 2.icon comment outにて処理を自然言語で記述する
1.icon関数名(function())をわかりやすくする(名付け) code:before.py
def function(n):
result = 0
for i in range(n):
result = result + (i + 1)
return result
code:after.py
def sumFromOne(n):
関数名を『Sum from one』つまり『1からの総和』と記述することで、内容をそのまま表す
2.iconcomment outにて処理を自然言語で記述する
code:before.py
def function(n):
result = 0
for i in range(n):
result = result + (i + 1)
return result
code:after.py
def function(n):
"""
1からの自然数の総和を取得する。
Parameters
----------
n : int
最後の自然数
"""
result = 0
https://netprotections.gyazo.com/c29c2a6bfd6b3e1d75a1727bba9533b2
所定のruleに合わせてcomment outを記述するとIDEにてPop up表示してくれることも