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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
12k
「データ無い! 腹立つ! 推論する!」から 「データ無い! 腹立つ! データを作る」へ チームでデータを作り、育てられるようにするまで / How can we create, use, and maintain data ourselves?
moznion
11
7.1k
避けられないI/O待ちに対処する: Rails アプリにおけるSSEとasync gemの活用 / Tackling Inevitable I/O Latency in Rails Apps with SSE and the async gem
moznion
4
5.8k
RubyKaigi Hack Space in Tokyo & 函館最速 "予習" 会 / RubyKaigi Hack Space in Tokyo & The Fastest Briefing of RubyKaigi 2026 in Hakodate
moznion
1
360
地に足の付いた現実的な技術選定から魔力のある体験を得る『AIレシート読み取り機能』のケーススタディ / From Grounded Tech Choices to Magical UX: A Case Study of AI Receipt Scanning
moznion
7
4.8k
Chrome Extension Techniques from Hell
moznion
1
280
Simple組み合わせ村から大都会Railsにやってきた俺は / Coming to Rails from the Simple
moznion
4
8.6k
AIレシート読み取り機能をRuby on Rails on AWSで実現するLLMにまつわるアレコレ / AI-based receipt reading function powered by LLM on Ruby on Rails on AWS
moznion
3
1.2k
Develop to Survive - YAPC::Hakodate 2024 Keynote
moznion
11
22k
Other Decks in Technology
See All in Technology
身体を持ったパーソナルAIエージェントの 可能性を探る開発
yokomachi
1
120
ナレッジワークのご紹介(第88回情報処理学会 )
kworkdev
PRO
0
210
Claude Code のコード品質がばらつくので AI に品質保証させる仕組みを作った話 / A story about building a mechanism to have AI ensure quality, because the code quality from Claude Code was inconsistent
nrslib
13
7.9k
わからなくて良いなら、わからなきゃだめなの?
kotaoue
1
350
Yahoo!ショッピングのレコメンデーション・システムにおけるML実践の一例
lycorptech_jp
PRO
1
210
VLAモデル構築のための AIロボット向け模倣学習キット
kmatsuiugo
0
120
複数クラスタ運用と検索の高度化:ビズリーチにおけるElastic活用事例 / ElasticON Tokyo2026
visional_engineering_and_design
0
160
最強のAIエージェントを諦めたら品質が上がった話 / how quality improved after giving up on the strongest AI agent
kt2mikan
0
180
[E2]CCoEはAI指揮官へ。Bedrock×MCPで構築するコスト・セキュリティ自律運用基盤
taku1418
0
160
決済サービスを支えるElastic Cloud - Elastic Cloudの導入と推進、決済サービスのObservability
suzukij
2
640
Go標準パッケージのI/O処理をながめる
matumoto
0
210
Dr. Werner Vogelsの14年のキーノートから紐解くエンジニアリング組織への処方箋@JAWS DAYS 2026
p0n
1
130
Featured
See All Featured
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
150
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Docker and Python
trallard
47
3.8k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.1k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
480
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
76
Measuring & Analyzing Core Web Vitals
bluesmoon
9
780
Agile that works and the tools we love
rasmusluckow
331
21k
The Cult of Friendly URLs
andyhume
79
6.8k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
190
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
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?