Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
突如見知らぬ言語に出会ってしまった俺達は
Search
moznion
July 03, 2016
Technology
6
8.8k
突如見知らぬ言語に出会ってしまった俺達は
YAPC Hachioji 2016の資料です
moznion
July 03, 2016
Tweet
Share
More Decks by moznion
See All by moznion
履歴テーブル、今回はこう作りました 〜 Delegated Types編 〜 / How We Built Our History Table This Time — With Delegated Types
moznion
16
11k
「データ無い! 腹立つ! 推論する!」から 「データ無い! 腹立つ! データを作る」へ チームでデータを作り、育てられるようにするまで / How can we create, use, and maintain data ourselves?
moznion
10
6.9k
避けられないI/O待ちに対処する: Rails アプリにおけるSSEとasync gemの活用 / Tackling Inevitable I/O Latency in Rails Apps with SSE and the async gem
moznion
3
4.6k
RubyKaigi Hack Space in Tokyo & 函館最速 "予習" 会 / RubyKaigi Hack Space in Tokyo & The Fastest Briefing of RubyKaigi 2026 in Hakodate
moznion
1
260
地に足の付いた現実的な技術選定から魔力のある体験を得る『AIレシート読み取り機能』のケーススタディ / From Grounded Tech Choices to Magical UX: A Case Study of AI Receipt Scanning
moznion
6
4.7k
Chrome Extension Techniques from Hell
moznion
1
260
Simple組み合わせ村から大都会Railsにやってきた俺は / Coming to Rails from the Simple
moznion
4
8.5k
AIレシート読み取り機能をRuby on Rails on AWSで実現するLLMにまつわるアレコレ / AI-based receipt reading function powered by LLM on Ruby on Rails on AWS
moznion
3
1.1k
Develop to Survive - YAPC::Hakodate 2024 Keynote
moznion
11
21k
Other Decks in Technology
See All in Technology
#22 CA × atmaCup 3rd 1st Place Solution
yumizu
1
140
AWS re:Inventre:cap ~AmazonNova 2 Omniのワークショップを体験してきた~
nrinetcom
PRO
0
130
CQRS/ESになぜアクターモデルが必要なのか
j5ik2o
0
760
Oracle Cloud Infrastructure:2025年12月度サービス・アップデート
oracle4engineer
PRO
0
220
AI に「学ばせ、調べさせ、作らせる」。Auth0 開発を加速させる7つの実践的アプローチ
scova0731
0
140
善意の活動は、なぜ続かなくなるのか ーふりかえりが"構造を変える判断"になった半年間ー
matsukurou
0
370
Scrum Guide Expansion Pack が示す現代プロダクト開発への補完的視点
sonjin
0
530
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
17k
投資戦略を量産せよ 2 - マケデコセミナー(2025/12/26)
gamella
1
630
[PR] はじめてのデジタルアイデンティティという本を書きました
ritou
1
790
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
760
技術選定、下から見るか?横から見るか?
masakiokuda
0
190
Featured
See All Featured
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
Building the Perfect Custom Keyboard
takai
2
670
Raft: Consensus for Rubyists
vanstee
141
7.3k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.5k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
エンジニアに許された特別な時間の終わり
watany
106
220k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
76
Leo the Paperboy
mayatellez
1
1.3k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
45
Transcript
ಥݟΒ͵ݴޠʹ ग़ձͬͯ͠·ͬͨԶୡ @moznion
͜Μʹͪ
@moznion
͜͜Ͱ࣭
ࠓೖ͔ͬͯΒ৽͍͠ݴޠ ͬͯΔͧʙʙʙʙͬͯਓ
ࠓೖ͔ͬͯΒ(झຯͰ) ৽͍͠ݴޠ ͬͯΔͧʙʙʙʙͬͯਓ
ԹײΘ͔Γ·ͨ͠
ಥݟΒ͵ݴޠʹ ग़ձͬͯ͠·ͬͨԶୡ @moznion
@moznion
ࠓճ͢͜ͱ ·ͨͦͷλʔήοτ
ϓϩάϥϛϯά ݴޠͷֶͼํʹ͍ͭͯ ݸਓతʹࢥ͏͜ͱ ·͍ͨͬͯΔ͜ͱͷհ
ϓϩάϥϛϯά ॳֶऀͷਓ
͋Δ͍ποίϛΛ ೖΕ͍ͨਓ
dan the question OK!
ࠓճ͞ͳ͍͜ͱ
໊: ҟৗͳྗ
ຊ
ͷલʹ……
ͷલʹ…… ࠓ͙͢ΫϦοΫ
ͳͥ৽͍͠ݴޠΛ Δͷ͔ʁ
None
ຖগͳ͘ͱҰͭͷݴޠΛֶश͢Δ: ݴޠ͕ҟͳΔͱɼಉ͡ Ͱҧͬͨղܾํ๏͕࠾༻͞Ε·͢ɽͭ·Γɼ͍͔ͭ͘ͷ ҟͳͬͨΞϓϩʔνΛֶश͢Δ͜ͱʹΑΓɼ෯͍ࢥߟ͕Ͱ͖ ΔΑ͏ʹͳΔΘ͚Ͱ͢ɽ͜ΕʹΑͬͯɼ͵͔ΔΈʹ·ͬͯ͠ ·͏ࣄଶΛආ͚Δ͜ͱ͕Ͱ͖ΔΑ͏ʹͳΓ·͢ɽ
ͳΔ΄Ͳ
Ͳ͍ͬ͜ཧ༝ͳͲແ͘ Δ߹/Β͞ΕΔ ߹͋Δ
৭ʑ͋Γ·͢ ৭ʑͬͯΈ·͠ΐ͏
ͱͳʹ͔……
ݟ·͢
Erlang: rabbitmq-server/src/rabbit_router.erl
Clojure: ring/ring-core/src/ring/middleware/resource.clj
Perl: Plack/lib/Plack/Request.pm
C: h2o/src/main.c
Ͳ͏Ͱ͔͢ (৭ʑͳײ͕͋Γ·͢)
ݟ֮͑ͷ͋Δͷ ͋·Γා͘ͳ͍
ڪා = ແ
Δͱ͍͏͜ͱ ڪාΛࠀ͢Δ͜ͱ
ڪාΛࠀͯ͠ࢀΓ ·͠ΐ͏
ڪාΛࠀ͍ͯ͘͠ͱ ͲΜͲΜݴޠΛͬͯ ͍͚Δ
ݟΒ͵ݴޠΛֶͿ࣌Ͳ͏͢ Δ͔
߹Λߟ͑·͠ΐ͏
ۚ͋Δ ࣌ؒ͋Δ ۚ͋Δ ࣌ؒͳ͍ ۚͳ͍ ࣌ؒ͋Δ ۚͳ͍ ࣌ؒͳ͍ ۚ ࣌ؒ
ۚ͋Δ ࣌ؒ͋Δ
ຊΛಡΉͷָ ࣗવͱମܥֶ͚ͮͯͿ ͜ͱ͕Ͱ͖Δ
ͨͩಡΉ͚ͩͰແӹ खΛಈ͔͢ͷ͕؊ਛ
खΛಈ͔͞ͳ͍ܥͷ ຊ୯ͳΔಡΈͳͷ Ͱ͋Μ·͑ͳ͍
ͳΜ͔ίϐϖͯ͠ ಈ͔ͤΔిࢠ൛ศར
ͨͩ͠ͳΔ͘৽͠ ͍ຊΛ͍·͠ΐ͏
ۚͳ͍ ࣌ؒ͋Δ
࠷ۙྑ͍࣌ʂ
ͪΌΜͱͨ͠ݴޠͩͱ νϡʔτϦΞϧ͕ॆ࣮ ͯ͠Δ
e.g. A Tour of Go https://tour.golang.org/ The Rust Programming Language
https://doc.rust-lang.org/book/ README.html
Πϯλʔωοτ্ʹ αʔυύʔςΟͳ ใ͕๛ʹ͋Δ
͜͜Ͱ ikura ͞Μͷ ϗʔϜϖʔδͷਤ
None
୯७ʹίϐϖͯ͠ࡁ· ͤΔͷΊ·͠ΐ͏
ෳͷใΛরΒ͠ ߹Θͤ·͠ΐ͏
ՄೳͳݶΓ৽͍͠ ใιʔεʹ ͨΓ·͠ΐ͏
܁Γฦ͠ʹͳΓ·͕͢ खΛಈ͔͠·͠ΐ͏
ಈըίϯςϯπͳͲ ྑͦ͞͏
e.g. coursera https://www.coursera.org/ υοτΠϯετʔϧ http://dotinstall.com/
) > ΞυόΠε͕1ݸ͋ͬͯɼڭࡐ͕ಈըͳ ͷͰɼ෮श͠ʹ͍͘ɽ͜Ε෮शͰ͖ͳ͍͠ ͲΜͲΜΕ͍ͯ͘ͷͰͬͯؾ͍ͯɼ 3ि͘Β͍͔Βɼಈըݟͳ͕ΒϝϞͱͬ ͓ͯ͘Α͏ʹͨ͠Βཱͭײ͡ʹͳͬͨɽ hitode909ͷه/Courseraͷػցֶशͷίʔεͨ͠ http://blog.sushi.money/entry/2016/04/09/101854
ۚ͋Δ ࣌ؒͳ͍
None
ۚͰͲ͏ʹͳΒΜ ͖͋ΒΊΖʂʂʂʂʂ
ֶͿࣄ͕తͰͳ͍ ߹
ਓޏͬͨ΄͏͕ྑ͍ Ͱ͢Α
ͱ͍͏Θ͚Ͱ ࣗવͱۚͳ͍ϧʔτ Ҡߦ͠·͢
ۚͳ͍ ࣌ؒͳ͍
ͳΓ;Γߏ͍ͬͯΒΕͳ͍ ਓʹ㘤͖·͠ΐ͏
ਓૣ͍
͜͏͍͏࣌ʹ ίϛϡχςΟʹ ଐͯ͠Δͱྑ͍Ͱ͢ΑͶ
ೖͬͯͳ͍߹ ίϛϡχςΟʹ ೖΓ·͠ΐ͏
͍ͣΕͷ߹Ͱ ݴ͑Δ͜ͱ
ͦͷݴޠಛ༗ͷػೳ ੈք؍Λ֮͑Δ͜ͱʹ ྗ͢Δ
ྫ͑ go ͱ͔ clojure ͳΒ ฒྻϓϩάϥϜͷٕ๏ Scala ͱ͔ Haskell ͱ͔ͳΒڧྗͳܕγε
ςϜΛجௐͱͨ͠വϓϩάϥϜͷٕ๏ Java C# ͳΒΦϒδΣΫτࢦͷٕ๏ ͳͲͳͲ
৭ʑͳੈք؍Λͬ ͓ͯ͘ͱࣅͨػೳʹ ग़ձͬͨ࣌ʹͬͨ ͔ͿΕΔ
ڪා͠ͳ͘ͳΔ
REPLͰษڧ͢Δͷ ΛΊΔ
ϓϩμΫγϣϯͰ REPLΘΜ (ͪΖΜ։ൃதͷಈ࡞֬ೝ ͱ͔ͰΊͬͪΌ͏͚Ͳ)
ͳΜ͔ແཧ
γϯλοΫεϋΠϥΠτ ͕ແ͍
࠶ݱͤ͞ϏϦςΟ ͷࠩ
ίʔυͷશΛ ͔ͭΈʹ͍͘ งғؾ͕Θ͔Βͳ͍
IDE͍·͠ΐ͏
·͋·ౖ͋Βͳ͍Ͱ
ੲVimҰຊͰྑ͍ͱ ࢥͬͯͨ ͓ΕΕΔΜͩͱ ࢥͬͯͨ
ੲ˓̋ (͜͜ʹ͖ͳΤ σΟλͷ໊લΛೖΕ·͠ΐ ͏)ҰຊͰྑ͍ͱࢥͬͯͨ ͓ΕΕΔΜͩͱࢥͬͯͨ
ےਸഈ (Կಉ͡ίʔυΛ ॻ͘ͱ֮͑Δͧ) ͷ࣌
Կॻ͘ඞཁ͋Δ ίʔυΛॻ͘ඞཁ ແ͍ʂʂʂʂʂ IDEʹॻ͔ͤΖʂʂ
IDE͕ਖ਼͍͠ίʔυ ʹಋ͍ͯ͘ΕΔͷ͕ ॏཁ
ؒҧ͑ͨίʔυΛԿว Կวॻ͘ͷѱ ਖ਼͍͠ίʔυΛॻ͍ͨ ΄͏͕ྗʹͳΔ
ຊ࣭Λֶͼ͍͢
ͱ͍͑ ·͋VimͰྑ͍ͱ ࢥ͍·͢
IDEͳ͍ݴޠͰେৎ (Padre͞Μ͓ݩؾͰ͔͢)
ਖ਼͍͠ίʔυΛॻ͘ࣄ Λॿ͚ͯ͘ΔπʔϧΛ ͏
੩తղੳ (Perl::Lint͞Μ͓ݩؾͰ͔͢)
ਖ਼͍͠ίʔυελΠ ϧʹಋ͍ͯ͘ΕΔ gofmt, check style, code sniffer and etc
όάͷগͳ͍ίʔυ ʹಋ͍ͯ͘ΕΔ golint, findbugs and etc
͜ΕΒ྆ऀ݉Ͷ͍ͯΔ ߹͋Δ perl-critic, rubocop, js-[hl]int and etc
͍ͬͯ͘͏ͪʹਖ਼͍͠ (ਖ਼ ͦ͏) ͳίʔυ͕Θ͔ͬͯ͘ Δ, ॻ͚ΔΑ͏ʹͳͬͯ͘Δ
ΤσΟλʹΈࠐΜͰɼϦ ΞϧλΠϜతʹૉૣ͍ϑΟʔ υόοΫΛಘΔͱͳ͓Α͍
ਖ਼͍͠ίʔυΛॻ͘ࣄΛ ॿ͚ͯ͘ΔπʔϧΛ࡞Δ ͘͠ॲཧܥΛ࡞Δ
e.g. Perl࡞Λܾҙ ʮਂ͘ཧղ͍ͨ͠ͳΒ࡞Δʯͱ͍͏ Ϟο τʔͷͱɺֶͿͳΒ࡞ֶͬͯͼ͍ͨʂ Ͳ͏ͤͳΒɺεΫϦϓτݴޠք࠷ͷPerlΛ ࡞Γ͍ͨ Perlͱग़ձ͍ɺPerlΛ࡞Δ/@goccy http://www.slideshare.net/goccy/perlperl
ͦ͏͍͏͜ͱΛΔͱཧղ ͕ਂ·Δͱ͍͏߹͕ ͋Γ·͢ (Perl::Lint ͞Μ͓ݩؾͰ͔͢)
৽͍͠ݴޠΛΔͱ͖ ʹඞͣॻ͘ͷΛ ܾΊΔ
ಉ͡ͷΛҧ͏ݴޠͰͨ͘ ͞Μॻ͍ͯΈΔ
ಉ͡ͷΛॻ͘͜ͱͰݴޠ ͷࠩҟ͕ݟ͘͢ͳΔ ಘखෆಘखΛ͔ͭΊΔΑ͏ ʹͳΔ
ΰʔϧ໌֬ʹఆ·Δ ޭମݧʹܨ͕Δ
yes ίϚϯυΫϩʔϯͱ͔ ख࢝Ίʹ؆୯ͰΓ͢ ͍
ͭ·Βͳ͍ʁ
Web Application Framework ͱ͔ॻ͘ͱ໘ന͍
template engine ໘ന͍Ͱ ͢Ͷ
ίϛϡχέʔγϣϯ ͠·͠ΐ͏
̍ਓͰΔͱ٧·Δ
͍
·ͱΊ
ͱʹ͔͘ॻ͖·͠ΐ͏
Q?