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

変なカレンダー生成問題 レベル 3 #7

Closed
wants to merge 6 commits into from

Conversation

hana-da
Copy link

@hana-da hana-da commented Nov 20, 2024

自分が解いたレベル(レベル1〜3)

レベル3

コードのアピールポイント

  • そんなに長くない(と思う)
  • 新規classは導入せずに SgStrangeCalendar に収めつつコンパクトに仕上げた
  • Dateオブジェクトの数が最小限
  • Rangeリテラルの数も最小限
  • 条件分岐がほぼない
  • (前回同様?)horizontal表示もvertical表示も同じ処理
    • 作る2次元配列は1つだけ
    • それを表示するロジックも1つ(SgStrangeCalendar#generate)だけ
  • SgStrangeCalendar#generate を複数回呼んでも遅くない
  • 今回はredoを使ってない(愚直に書いて奇抜な事はしてないつもり)

コードを書くのにかかった時間(ざっくりでよいです。10分、1時間、3日、etc.)

  • Level 1 # => 2時間ぐらい
  • Level 2 # => +20分ぐらい
  • Level 3 # => 結局書きなおしたので+2時間半ぐらい

最初に動くまで合計5時間ぐらいかかって、そのあと盆栽的にちょこちょこリファクタリングしていたので実質的には10時間ぐらいかかった気がします。

だいたいのプログラミング歴

実務経験は3年ぐらい

実際に解いてみた感想

  • 最終的には納得の行く形に収まったのでよかった
    • 1箇所だけDate.newせざるを得なかったのが残念
  • 盆栽的なリファクタリングを重ねたので結構長い時間遊べた。楽しかった。

伊藤さんにメッセージ(もしあればw)

前回のレビュー内容は反映してみたつもりです。よろしくお願いします。

落穂拾い

  • 1.upto(12).each の each 不要ですね。。。(Rangeからuptoに替えた時に消し忘れた...)
  • grid.map.join("\n").chomp の chomp も不要ですね。。。
  • horizontal_grid_only_header は initialize の中に直接書いてもよかったかもなぁ
  • converterはProc化してcallするより、@horizontal_gridにpublic_send(converter)した方が素直だったかも
  • そしてgrid.mapのブロックもProcにして、そっちの方を定数に入れておいた方がスッキリしたかも

about 2 hours
about 20 minutes
about 2.5 hours
hana-da added a commit to hana-da/sg-strange-calendar that referenced this pull request Nov 22, 2024
@JunichiIto
Copy link
Collaborator

@hana-da 大変申し訳ないです。CIの設定に不備があったため、もう一度最新のmainブランチをマージしてpushしてもらえると助かります 🙏

@JunichiIto
Copy link
Collaborator

@hana-daさん
参加ありがとうございました!動画でレビューしたのでこちらをご覧ください〜。
https://youtu.be/VKQ-AOCXMMA

@hana-da
Copy link
Author

hana-da commented Dec 9, 2024

ありがとうございましたー。initializeのくだりはそういう考えもあるなと勉強になりました。
ちなみにDateの定数はRDocの方には載ってます。(https://docs.ruby-lang.org/en/3.3/Date.html)

@JunichiIto
Copy link
Collaborator

ちなみにDateの定数はRDocの方には載ってます

なるほど、こんなところにあったんですね。情報ありがとうございます!

@hana-da
Copy link
Author

hana-da commented Dec 10, 2024

レビュー後の修正結果 👉 https://github.com/hana-da/sg-strange-calendar/blob/main/lib/sg_strange_calendar.rb

@hana-da hana-da closed this Dec 10, 2024
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