Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lsコマンド2の提出 #7

Merged
merged 3 commits into from
Nov 13, 2022
Merged

lsコマンド2の提出 #7

merged 3 commits into from
Nov 13, 2022

Conversation

hirano-vm4
Copy link
Owner

お世話になっております!

表題のプラクティスの課題を提出させていただきます🙇‍♂️ご確認のほど、よろしくお願いいたします!

05.ls/myls.rb Outdated
def height
(current_element.size / DISPLAY_NUMBER) + 1
def main
acquired_elements = current_element

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

この代入は不要そうですね〜すぐ下、modified_elementsの引数としてcurrent_elementを呼べばよいと思います。

end

def string_count
current_element.map(&:length).max
def current_element

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

この処理、やろうと思えばmainの中にベタ書きすることもできるわけですが、そうせずに処理をちゃんとメソッド化することで名前がついて、コードの見通しがよくなってますね。これはgoodです!

@hirano-vm4
Copy link
Owner Author

@kfukai23 さん

コードを修正しました!

アドバイスをもとに修正してみました!お手隙の際に確認をお願いいたします🙇‍♂️

mainメソッド内での不必要な代入について

たしかに無駄なコードでした😅

作ったメソッドを実際に表示するためのmainメソッドをわざわざ作らないで、普通に表示させるほうがよかったかもしれませんが、伊藤さんのこのような記述をする記事をみつけて使ってみました!

Rubyスクリプトにもmainメソッドを定義するといいかも、という話

今回のような、短いコードではあまりのメリットはなかったかもしれませんね💦このような記述は、現場では使われるのでしょうか?

メソッドの作り方について

この処理、やろうと思えばmainの中にベタ書きすることもできるわけですが、そうせずに処理をちゃんとメソッド化することで名前がついて、コードの見通しがよくなってますね。これはgoodです!

ありがとうございます!メソッドを使って可視性を高める用途でわけてみました😄

05.ls/myls.rb Outdated
height = acquired_elements.size / DISPLAY_NUMBER + 1
string_count = acquired_elements.map(&:length).max
sliced = acquired_elements.map { |d| d.ljust(string_count) }.each_slice(height).to_a
def modified_element(element)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

お、メソッド側の引数名も変更されたのですね:eye:
それ自体は良いと思いますが、配列が来るので単数形ではなく複数形のほうが良さそうに思います(実際中身が0~1つなこともありますが、単数形だと中身が配列であるとはイメージしづらいので)。

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kfukai23 さん

複数の場合、0〜1の場合もあるので少し迷ったところでした!複数入る場合があるので、それを理解できる複数形のほうがよいですね🧐早速修正しました🔥

@kaito0046
Copy link

今回のような、短いコードではあまりのメリットはなかったかもしれませんね💦このような記述は、現場では使われるのでしょうか?

現場では単体のRubyスクリプトを書くことがそこまで多くないので、mainというメソッドを作っているのはあまり見ませんね。
ただ、処理の入り口となるメソッドを用意して、そこから枝葉の処理を呼ぶという形で書いていくことはよくあります。なので、このような手法は手札に持っておいて損はないと思います!
あと、これからその3、4と続いていくに従って徐々に複雑になっていくことがわかっているので、今の段階でmainメソッドがあることは悪くないと思います〜

@hirano-vm4
Copy link
Owner Author

@kfukai23 さん

ただ、処理の入り口となるメソッドを用意して、そこから枝葉の処理を呼ぶという形で書いていくことはよくあります。なので、このような手法は手札に持っておいて損はないと思います!
あと、これからその3、4と続いていくに従って徐々に複雑になっていくことがわかっているので、今の段階でmainメソッドがあることは悪くないと思います〜

ありがとうございます!!

  • 処理の入り口となるメソッドを用意して、枝葉の処理を呼ぶという記述はよくある
  • 複雑な記述になっていくのがわかっている場合はmainを用意しておくのはあり
    メモしました📝

メソッド内の引数名を複数形に修正しました。お忙しい中ですが、お手隙の際に確認お願いします🙇‍♂️

Copy link

@kaito0046 kaito0046 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@hirano-vm4 hirano-vm4 merged commit c58a5bd into main Nov 13, 2022
@hirano-vm4 hirano-vm4 deleted the my-ls branch November 13, 2022 05:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants