Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
YARD with RBS Syntax Omotesando.rb #87 2023/07/06 1
Slide 2
Slide 2 text
ࣗݾհ • ໊લ: ਖ਼ಙ (aka: ਆ) • ձࣾ: - • GitHub: @sinsoku (ը૾ӈ্) • Twitter: @sinsoku_listy (ը૾ӈԼ) • ͖ͳݴޠ: Rust • Railsྺ: 8͘Β͍ 2
Slide 3
Slide 3 text
ઌ݄͔ΒRBSΛ͍࢝Ί·ͨ͠ 3
Slide 4
Slide 4 text
͖͔͚ͬ: MedPeerͷϒϩά 4
Slide 5
Slide 5 text
ࣾͷ૯ҙ: ܕͷԸܙΛड͚͍ͨ ʢͨͩ͠ܕࣗͰॻ͖ͨ͘ͳ͍ʣ 5
Slide 6
Slide 6 text
RBSಋೖͷํ • *.rbs ࣗಈੜ͢Δ • rbs collection • rbs prototype • sord1 ʢYARD -> rbsʣ • gemͷෆͯ͠Δܕఆٛ࠷খݶ͚ͩ༻ҙ 1 https://github.com/AaronC81/sord 6
Slide 7
Slide 7 text
ಋೖͷৄࡉׂѪʢͨͿΜϒϩάॻ͘ʣ 7
Slide 8
Slide 8 text
͔͜͜Βຊ 8
Slide 9
Slide 9 text
Α͋͘ΔYARDͷྫ class User # @param item [Item] ΞΠςϜ # @param amount [Integer] ྔ # @param coupon [Coupon] Ϋʔϙϯ # @return [Boolean] ߪೖͷޭ/ࣦഊ def buy(item, amount, coupon = nil); end end 9
Slide 10
Slide 10 text
୭େͨ͠આ໌Λॻ͍͍ͯͳ͍ 10
Slide 11
Slide 11 text
ීஈܕ͚ͩॻ͚ेͰʁ 2 2 େࣄͳ෦ʹઆ໌Λॻ͚͘ͲɺܕͱҾ໊Ͱेͳέʔεଟ͍ɻ 11
Slide 12
Slide 12 text
ͦΜͳgemΛ࡞Γ·ͨ͠ 12
Slide 13
Slide 13 text
! yard-sig https://github.com/sinsoku/yard-sig 13
Slide 14
Slide 14 text
͜Ε͕ class User # @param item [Item] ΞΠςϜ # @param amount [Integer] ྔ # @param coupon [Coupon] Ϋʔϙϯ # @return [Boolean] ߪೖͷޭ/ࣦഊ def buy(item, amount, coupon = nil); end end 14
Slide 15
Slide 15 text
͜͏ͳΔ class User # @!sig (Item, Integer, ?Coupon) -> bool def buy(item, amount, coupon = nil); end end 15
Slide 16
Slide 16 text
yard-sig • YARDϓϥάΠϯ • yard doc --plugin sig Ͱ༻Մ3 • จ๏RBS Syntaxͱಉ͡ • ෦Ͱ @param @return ͳͲͷλάʹม 3 .yardopts ʹ --plugin sig Λࢦఆ͢Δͱָ 16
Slide 17
Slide 17 text
σϞʢϦϦʔε࡞ۀʣ 17
Slide 18
Slide 18 text
͓·͚: Rails v7.0.5ͷ has_one ͕ਏ͍ 18
Slide 19
Slide 19 text
ͷཁ طଘϨίʔυ͕͋Δͱ͖ͷ create_association ͷڍಈ͕มΘΔɻ • v7.0.4: save(validate, INSERT) -> destroy(DELETE) • v7.0.5: destroy(DELETE) -> save(validate, INSERT) v7.0.4·ͰผʑͷτϥϯβΫγϣϯͰɺόϦσʔγϣϯʹࣦഊ͠ ͯطଘϨίʔυ͕আ͞Ε͍ͯͨɻ 19
Slide 20
Slide 20 text
Өڹ͕͋Δέʔε 1. Uniquness Validator4 2. UNIQ constraint 3. DBґଘͷCustom Validation • ྫ: ϨίʔυΛ࡞͔ͯ͠Β10Ҏ 4 v7.0.4ͰόάͬͯΔͷͰɺجຊతʹؾʹ͢Δඞཁ͕ͳ͍ͣɻ 20
Slide 21
Slide 21 text
rails/rails#48643 21