Slide 1

Slide 1 text

Rubyの!メソッドをちゃんと理解する Yuto Urushima (@alstrocrack)

Slide 2

Slide 2 text

Backend Engineer from Hubble 大学時代の専攻: 建築学 自己紹介 漆島 裕人 @alstrocrack

Slide 3

Slide 3 text

def xxx! https://docs.ruby-lang.org/ja/latest/doc/symref.html#ex

Slide 4

Slide 4 text

自分の!メソッドの理解(before) 明示的に例外を発生させうる find_by!, first!, create! 元の文字列を直接変更する String#upcase!, Array#sort!, Array#uniq!

Slide 5

Slide 5 text

自分が!メソッドを記述していたコード例

Slide 6

Slide 6 text

あれ?でも、そもそもいつでも例外 なんて起こりうるよね?
 というか、そもそもそれが「例外」 だよね?

Slide 7

Slide 7 text

Q.

Slide 8

Slide 8 text

A.

Slide 9

Slide 9 text

https://docs.ruby-lang.org/ja/latest/doc/symref.html#ex

Slide 10

Slide 10 text

Rubyの!メソッドはそのほとんどが 同名の!なしメソッドとペアで 存在している!

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

exit vs exit! exitは例外 SystemExit を出してくれるが、 exit!は例外を出さずにプロセスを終了 → より「危険」である可能性がある

Slide 13

Slide 13 text

じゃあ「破壊的」の 定義って? メソッドのペアによって異なる! Railsではたまたま「例外を出す」 方が!メソッドである場合が多いが あくまで一例。

Slide 14

Slide 14 text

まとめ 9 !メソッド & !なしメソッドをペアで実装する際には「例外出す方」ではなく「より危険な(に思え る)方」に!をつけB 9 !メソッドは慣用的なものであり、あくまで作者の判 9 自分みたいにRuby on Railsの慣習のようなものに引っ張られすぎない

Slide 15

Slide 15 text

Hubble Hubbleは、適切な権限統制のもと、契約に関する 相談・依頼から管理まで一元化。
 生成AIを活用しやすい基盤を整備し、契約情報の スムーズな管理と活用を実現します。 Backend Tech stack

Slide 16

Slide 16 text

Thank you !