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
Re:REPL-Driven Development
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ayato
October 04, 2017
Programming
1.4k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Re:REPL-Driven Development
ayato
October 04, 2017
More Decks by ayato
See All by ayato
マイクロサービス内で動くAPIをF#で書いている
ayato0211
1
1.7k
Clojureという言語が私逹にもたらしたもの
ayato0211
6
3.2k
3年間考え続けてきたWebアプリケーションにおけるテストの話
ayato0211
3
320
Meta Template Engine
ayato0211
2
1.2k
超変換! Hiccup data structure!!
ayato0211
2
680
About Integrant
ayato0211
0
610
Muscle Assert
ayato0211
0
330
Clojureを用いたWebアプリケーション開発
ayato0211
2
3.3k
翻訳にまつわるエトセトラ
ayato0211
6
1.3k
Other Decks in Programming
See All in Programming
Flow は今どうなっているか
mizdra
PRO
0
910
MIZARU@SPAJAM2026 第二回予選
1901drama
0
100
AIエージェント時代のコードレビューを設計する
nogu66
6
2.5k
Webエンジニアなのにブラウザの仕組みがわからないので、Pythonで自作してみた
tatsuki12
4
1.7k
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
350
FDEとは、何者なのか?
masapyon1212
0
140
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
250
LLMは4年分のCompose移行を再現できるのか?実プロダクト279件のXMLで探る自動化の境界線
makun
0
380
まずはプロンプトガイドを読もう、話はそれからだ
kiakiraki
1
260
20260828_品質と開発生産性を両立させる、AI時代のE2Eテストの考え方
magicpod
0
140
私のClaude Code活用法 (個人開発編) - PHPerKaigi mini #4(2026/08/24)
panda_program
1
210
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
3
1k
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Designing for Timeless Needs
cassininazir
1
470
Git: the NoSQL Database
bkeepers
PRO
432
67k
BBQ
matthewcrist
89
10k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Optimising Largest Contentful Paint
csswizardry
37
3.9k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.9k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
Crafting Experiences
bethany
1
290
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
920
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Transcript
Re:REPL-DRIVEN DEVELOPMENT ڭཆͱͯ͠ͷClojure
あやぴー > ayato-p@GitHub > Cybozu Startups, inc. > ClojureでWeb開発している >
Emacsで色々する人種 > ネオ老害道 3級
改めてREPLとは
REPLとは > れぷる > Read-Eval-Print Loop > インタラクティブにコードを試せるツール > 対話型評価環境
> インタプリタではない > モダンなプログラミング言語は標準搭載 > Java9でJShellを搭載!
e.g.) Ruby REPL irb(main):001:0> def hello irb(main):002:1> "Hello, world" irb(main):003:1>
end => nil irb(main):004:0> hello => "Hello, world" READ&EVAL
e.g.) Ruby REPL irb(main):001:0> def hello irb(main):002:1> "Hello, world" irb(main):003:1>
end => nil irb(main):004:0> hello => "Hello, world" PRINT
e.g.) Ruby REPL irb(main):001:0> def hello irb(main):002:1> "Hello, world" irb(main):003:1>
end => nil irb(main):004:0> hello => "Hello, world" LOOP
Clojureの場合
Clojureの特徴 > Dynamic Development > Functional Programming > Lisp >
Runtime Polymorphism > Concurrent Programming > JVM Hosted
Clojureの特徴 > Dynamic Development > Functional Programming > Lisp >
Runtime Polymorphism > Concurrent Programming > JVM Hosted
ClojureのREPL > Network REPLやBrowser REPLを含む > Clojureコンパイラの機能を100%使える > doc, sourceなどの補助関数が最初から提供されている
> REPL上での評価はファイルを読み込むのと同じ > エディタと統合しやすい作りになっている
違い > ワークフローがファイルベースではなくなる > 変更->評価、の繰り返し > 読み込んだ環境の全てをREPLから使える > ライブラリなどもREPLから再定義可能 >
REPLを拡張することが容易 > tools.namespaceなど > プロダクション環境もREPLから触れる
REPL駆動開発
Clojureのアドバンテージ > 素早いフィードバック > フィードバックループが速く回せる > 実行中のプログラムに影響を与えることができる > 知ることもできる
エディタとの統合 > REPLに直接タイプしない > ファイルに書いてフォームをREPLに送る > いつでも保存できる
ワークフロー Save Auto Compile Reload Evaluation Reload 一般的なプログラミング言語 Clojure
REPLの拡張容易性 > デフォルトでもdocなどの便利関数がある > tools.namespaceなどの素晴らしいライブラリも > 自分で拡張することもできる (e.g. Reloaded template)
環境を変更/探索する > ファイルとREPLの境目がない
Q&A
Q. TDDでいいのでは > TDDより高速にフィードバックを得ることができる > より小さい単位で評価できる > そもそもTDDと相対する考え方ではない
Q. HotDeployと何が違う > Web開発に限らない > REPLから実行したいパートだけを評価して実行できる > ワークフローがファイルベースではない
まとめ
まとめ > REPLはClojureの主要プログラミングインターフェース > REPLで開発を高速に!便利に! > Clojureはいいぞ
Enjoy Clojure