Transfira gratuitamente durante 30 dias
Fazer login
Carregar
Idioma (PT)
Suporte
Negócios
Celular
Mídias sociais
Marketing
Tecnologia
Arte e fotografia
Carreiras
Design
Educação
Apresentações e oratória
Governo e ONGs
Saúde
Internet
Direito
Liderança e gerenciamento
Indústria automotiva
Engenharia
Software
Recrutamento e RH
Varejo
Vendas
Serviços
Ciências
Pequenos negócios e empreendedorismo
Alimentos
Meio ambiente
Economia e finanças
Dados e análise
Relação com investidores
Esportes
Espiritual
Notícias e política
Turismo
Aperfeiçoamento pessoal
Imóveis
Diversão e humor
Saúde e medicina
Dispositivos e hardware
Estilo de vida
Mudar o idioma
Idioma
English
Español
Português
Français
Deutsche
Cancelar
Salvar
PT
Carregado por
Kent Ohashi
PDF, PPTX
26 visualizações
TDD with RDD: Clojure/LispのREPLで変わる開発体験
テスト駆動開発(test-driven development)とREPL駆動開発(REPL-driven development)を組み合わせて、より快適な開発フローを実現しよう!
Software
◦
Tópicos relacionados:
Test-Driven Development
•
Leia mais
0
Salvar
Compartilhar
Incorporar
Baixar
Transferir como PDF, PPTX
1
/ 27
2
/ 27
3
/ 27
4
/ 27
5
/ 27
6
/ 27
7
/ 27
8
/ 27
9
/ 27
10
/ 27
11
/ 27
12
/ 27
13
/ 27
14
/ 27
15
/ 27
16
/ 27
17
/ 27
18
/ 27
19
/ 27
20
/ 27
21
/ 27
22
/ 27
23
/ 27
24
/ 27
25
/ 27
26
/ 27
27
/ 27
Mais conteúdo relacionado
PDF
java-ja TDD 2nd
por
Takuto Wada
PDF
Hey It's Not My TDD!
por
Yasui Tsutomu
PPT
Kubo100903
por
kubo
PPT
Sue445 Style TDD #atest_hack
por
Go Sueyoshi (a.k.a sue445)
PDF
言語差異によるTDDプロセスへの影響度の解析
por
pocketberserker
PDF
CodeZineAcademy TDD実践講座PR資料
por
Yasui Tsutomu
PDF
Test-Driven Development for [Embedded] C by James Grenning at Agile Japan 2013
por
Yohei Onishi
PDF
SeasarCon 2009 White TDD
por
Takuto Wada
java-ja TDD 2nd
por
Takuto Wada
Hey It's Not My TDD!
por
Yasui Tsutomu
Kubo100903
por
kubo
Sue445 Style TDD #atest_hack
por
Go Sueyoshi (a.k.a sue445)
言語差異によるTDDプロセスへの影響度の解析
por
pocketberserker
CodeZineAcademy TDD実践講座PR資料
por
Yasui Tsutomu
Test-Driven Development for [Embedded] C by James Grenning at Agile Japan 2013
por
Yohei Onishi
SeasarCon 2009 White TDD
por
Takuto Wada
Semelhante a TDD with RDD: Clojure/LispのREPLで変わる開発体験
PDF
『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト
por
makopi 23
PDF
Javascript as an Embedded DSL - Expression Problemの解法例
por
Yasuyuki Maeda
PDF
Tddのすゝめ
por
将 高野
PDF
TDDを研ぎ究める
por
pocketberserker
PDF
C# から java へのプログラム移植で体験したtddの効果は?
por
Shinichi Hirauchi
KEY
TDD #NagoyaTesting
por
kyon mm
PDF
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
por
Tomoharu ASAMI
PPTX
TDDをやってみた
por
Yuta Kawadai
PDF
Tdd
por
Takaya Kotohata
PDF
#027 tddのさわり
por
森下 智裕
PPT
wankuma #28
por
高見 知英
PDF
JS開発におけるTDDと自動テストツール利用の勘所
por
Koji Nakamura
PDF
Agileツール適合化分科会(tddとbdd)
por
masanori kataoka
PDF
TDDってなんなの?(What is TDD)
por
seichi23
PDF
ワンクリックデプロイ101 #ocdeploy
por
Ryutaro YOSHIBA
PDF
Tdd
por
Tsukasa Oishi
PDF
ソフトウェア工学2023 11 テスト
por
Toru Tamaki
PPTX
LINTから理解するTDD
por
Masafumi Sasaki
PPT
第4部「Tddとペアプロのめざめ」
por
Hiromu Shioya
PDF
世界をすこしだけ前に進めるということ
por
Yukei Wachi
『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト
por
makopi 23
Javascript as an Embedded DSL - Expression Problemの解法例
por
Yasuyuki Maeda
Tddのすゝめ
por
将 高野
TDDを研ぎ究める
por
pocketberserker
C# から java へのプログラム移植で体験したtddの効果は?
por
Shinichi Hirauchi
TDD #NagoyaTesting
por
kyon mm
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
por
Tomoharu ASAMI
TDDをやってみた
por
Yuta Kawadai
Tdd
por
Takaya Kotohata
#027 tddのさわり
por
森下 智裕
wankuma #28
por
高見 知英
JS開発におけるTDDと自動テストツール利用の勘所
por
Koji Nakamura
Agileツール適合化分科会(tddとbdd)
por
masanori kataoka
TDDってなんなの?(What is TDD)
por
seichi23
ワンクリックデプロイ101 #ocdeploy
por
Ryutaro YOSHIBA
Tdd
por
Tsukasa Oishi
ソフトウェア工学2023 11 テスト
por
Toru Tamaki
LINTから理解するTDD
por
Masafumi Sasaki
第4部「Tddとペアプロのめざめ」
por
Hiromu Shioya
世界をすこしだけ前に進めるということ
por
Yukei Wachi
Mais de Kent Ohashi
PDF
Functional Calisthenics in Kotlin: Kotlinで「関数型エクササイズ」を実践しよう
por
Kent Ohashi
PDF
関数型言語テイスティング: Haskell, Scala, Clojure, Elixirを比べて味わう関数型プログラミングの旨さ
por
Kent Ohashi
PDF
純LISPから考える関数型言語のプリミティブ: Clojure, Elixir, Haskell, Scala
por
Kent Ohashi
PDF
From Scala/Clojure to Kotlin
por
Kent Ohashi
PDF
🐬の推し本紹介2024: 『脱・日本語なまり 英語(+α)実践音声学』
por
Kent Ohashi
PDF
do Notation Equivalents in JVM languages: Scala, Kotlin, Clojure
por
Kent Ohashi
PDF
map関数の内部実装から探るJVM言語のコレクション: Scala, Kotlin, Clojureコレクションの基本的な設計を理解しよう
por
Kent Ohashi
PDF
Kotlin Meets Data-Oriented Programming: Kotlinで実践する「データ指向プログラミング」
por
Kent Ohashi
PDF
RDBでのツリー表現入門2024
por
Kent Ohashi
PDF
ミュータビリティとイミュータビリティの狭間: 関数型言語使いから見たKotlinコレクション
por
Kent Ohashi
PDF
インターフェース定義言語から学ぶモダンなWeb API方式: REST, GraphQL, gRPC
por
Kent Ohashi
PDF
Team Geek Revisited
por
Kent Ohashi
PDF
Scala vs Clojure?: The Rise and Fall of Functional Languages in Opt Technologies
por
Kent Ohashi
PDF
Clojureコレクションで探るimmutableでpersistentな世界
por
Kent Ohashi
PDF
英語学習者のためのフランス語文法入門: フランス語完全理解(?)
por
Kent Ohashi
PDF
JavaからScala、そしてClojureへ: 実務で活きる関数型プログラミング
por
Kent Ohashi
PDF
実用のための語源学入門
por
Kent Ohashi
PDF
メタプログラミング入門
por
Kent Ohashi
PDF
労働法の世界
por
Kent Ohashi
PDF
Clojureで作る"simple"なDSL
por
Kent Ohashi
Functional Calisthenics in Kotlin: Kotlinで「関数型エクササイズ」を実践しよう
por
Kent Ohashi
関数型言語テイスティング: Haskell, Scala, Clojure, Elixirを比べて味わう関数型プログラミングの旨さ
por
Kent Ohashi
純LISPから考える関数型言語のプリミティブ: Clojure, Elixir, Haskell, Scala
por
Kent Ohashi
From Scala/Clojure to Kotlin
por
Kent Ohashi
🐬の推し本紹介2024: 『脱・日本語なまり 英語(+α)実践音声学』
por
Kent Ohashi
do Notation Equivalents in JVM languages: Scala, Kotlin, Clojure
por
Kent Ohashi
map関数の内部実装から探るJVM言語のコレクション: Scala, Kotlin, Clojureコレクションの基本的な設計を理解しよう
por
Kent Ohashi
Kotlin Meets Data-Oriented Programming: Kotlinで実践する「データ指向プログラミング」
por
Kent Ohashi
RDBでのツリー表現入門2024
por
Kent Ohashi
ミュータビリティとイミュータビリティの狭間: 関数型言語使いから見たKotlinコレクション
por
Kent Ohashi
インターフェース定義言語から学ぶモダンなWeb API方式: REST, GraphQL, gRPC
por
Kent Ohashi
Team Geek Revisited
por
Kent Ohashi
Scala vs Clojure?: The Rise and Fall of Functional Languages in Opt Technologies
por
Kent Ohashi
Clojureコレクションで探るimmutableでpersistentな世界
por
Kent Ohashi
英語学習者のためのフランス語文法入門: フランス語完全理解(?)
por
Kent Ohashi
JavaからScala、そしてClojureへ: 実務で活きる関数型プログラミング
por
Kent Ohashi
実用のための語源学入門
por
Kent Ohashi
メタプログラミング入門
por
Kent Ohashi
労働法の世界
por
Kent Ohashi
Clojureで作る"simple"なDSL
por
Kent Ohashi
TDD with RDD: Clojure/LispのREPLで変わる開発体験
1.
TDD with RDD Clojure/LispのREPLで変わる開発体験 #NextbeatTechBar 1
2.
のシニアエンジニア スタートアップの起業家と投資家のための業務効 率化/連携プラットフォームを開発している 主要技術スタック: & TypeScript の運営企業 ,
などの関数型言語と関数型プログ ラミングの実践が好き Java, , Clojure, KotlinとJVM言語での開発実務 に長く取り組んできた lagénorhynque🐬カマイルカ 株式会社スマートラウンド Kotlin Server-Side Kotlin Meetup Clojure Haskell Scala 2
3.
ClojureでRDDとTDDのハイブリッドな開発スタイル を実践しよう 3
4.
1. TDDとRDD 2. TDD
with RDD 3. Clojureでの実践例 4
5.
1. TDDとRDD 5
6.
[IMO] プログラミングで体感的に大きな割合を占める 対話的プロセス 言語 対話の相手 (高度な型システムを持つ)静的 型付き言語 コンパイラ (高度なREPL開発環境と動的性質 を持つ)
Lisp系言語 REPL その他の多くの言語 ユニットテストor/and (ログ付 きの実行を含む)デバッガー 6
7.
対話の延長上にある3種類の開発スタイル コンパイラとの対話→型駆動開発(type-driven development) REPLとの対話→REPL駆動開発(REPL-driven development, RDD) ユニットテストとの対話→テスト駆動開発(test- driven development,
TDD) 7
8.
試行錯誤の探索的なプロセス ツールに助けられたり惑わされたりしながら進む 高速で高頻度なフィードバックループ 反応を見て、書き換えて、反応を見る繰り返し 設計の漸進的改善の機会でもある ユニットテストによるフィードバックと一定の動作 保証は高度なコンパイラやREPLを補完しうる 複数を組み合わせて実践しよう💡 8
9.
2. TDD with
RDD 9
10.
テスト駆動開発(TDD) 0. 満たすべき仕様を整理する 1. 🟥Red:
仕様に対応するテストコードを書いて(想定 通り)テストをパスしないことを確かめる 2. 🟩Green: テストをパスする最小限の実装を与えて テストをパスすることを確かめる 3. 🟦Refactor: 内部実装(コード設計)を改善して引き 続きテストをパスすることを確かめる→再び1.へ 10
11.
コードを読み取り、評価し、出力する繰り返し REPL (read-eval-print loop) ;;
[Clojure] REPL内で素朴なrepl関数を定義し実行してみる user=> (defn repl [] (loop [] (-> (read) ; 入力の読み取り (eval) ; 評価 (prn)) ; 出力 (recur))) ; 再帰(= ループ) #'user/repl ; 関数定義式の評価結果 user=> (repl) (+ 1 2) ; 入力 3 ; 出力 (map inc [1 2 3]) ; 入力 (2 3 4) ; 出力 11
12.
REPL駆動開発(RDD) 1. ✍️Write: 小さなコード(任意の式)を書く 2.
🔍Eval: 式を評価し結果を確かめる→再び1. へ 12
13.
TDD with RDD 1.
✍🔍️テスト対象の式を書いて評価する 2. ✍🔍テスト用の式を書いて評価し結果を確かめる 🟥意図通りでない→再び1. へ 🟩意図通り→(適宜)テストケースに記録する 3. 🟦内部実装を改善して評価結果が意図通りである (or テストをパスする)ことを確かめる→再び1. へ 13
14.
3. Clojureでの実践例 14
15.
事前準備: テストコード用ファイル (ns clj-tdd-with-rdd.core)
; 名前空間(モジュール)の宣言 (defn fizzbuzz [n]) ; 関数の定義(※ボディはまだ空) 15
16.
事前準備: プロダクトコード用ファイル (ns clj-tdd-with-rdd.core-test (:require [clj-tdd-with-rdd.core
:as sut] ; テスト対象 [clojure.test :as t])) ; 標準のテストライブラリ (t/deftest test-fizzbuzz ; テスト関数の定義 (t/testing "3の倍数ならFizz") ; テストケースの説明 (t/testing "5の倍数ならBuzz") (t/testing "3の倍数かつ5の倍数ならFizz Buzz") (t/testing "3の倍数でも5の倍数でもなければ整数の文字列")) 16
17.
エディタでファイルを開き、REPLに接続する 17
18.
関数の定義と適用の式を評価してみる 18
19.
関数定義を書き換えてそれぞれ評価してみる 19
20.
テストケースに書き換えて評価してみる 20
21.
類似のケースを追加してテスト全体を実行してみる 21
22.
さらに続けて…… 22
23.
プロダクトコードとテストコードを書き上げた 23
24.
リファクタしてみた 24
25.
リファクタリング後もテストをパスする😌 25
26.
リッチなREPLは探索的な開発フローを加速する♾️ Lisp系言語のREPLはいいぞ😈 (他言語でも同じような開発体験がしたい) 26
27.
Further Reading cf. Clojure/ClojureScript関連リンク集> REPL駆動開 発 『テスト駆動開発』 Type-Driven
Development with Idris Idris: A Language for Type-Driven Development 型駆動開発|プログラング言語Idrisに入門させた い(v0.9) 27
Baixar