Skip to content

Instantly share code, notes, and snippets.

@katzchang
katzchang / README.md
Created October 15, 2013 01:37
ユニットテスト、果たして有用なのだろうか?

ユニットテスト以降

ユニットテストが継続的に回るようなベースの上で、アプリケーションを書き始める。

「ユニットテストが継続的に回るようなベース」って仰々しいけど、ようするにmavenとかsbt, composer, rubistじゃないからわからんけどbundlerみたいな、実に一般的なアレです。当然、それら単体ではテスティングフレームワークも依存ライブラリの一つでしかなく、ようするにそのへんの依存性が定義されていればそれでよい。それに加え、テストコードのサンプルがあるとすぐに始めることができる。その辺のベースは、 TDDBC コミュニティによっていくつか紹介されているので、使ってみてもいいかもしれない。

あとはテストファーストでもよいし、アプリケーションコードから書いてもいいし、好きにやればよい。意外と良いのは、アプリケーションコードとなる関数やクラスをテストコード側のディレクトリに書き始め、ある程度書いたら、プロダクションコード側のディレクトリに移動するやり方。やったことない人はお試しください。場合によっては print デバッグも使うし、デバッガも使う。print はプロダクションコードを汚すやり方ではあるけど、どうせ後で消すし、消したあとの動作がいい感じであることを確認できれば(当然自動テストによって!)、特に問題にはならない。消し忘れが怖いやつは何やってもダメ。

一般的なベースを使っていればテスト実行もIDE等に依存することなく、CIサーバに組み込むこともそれほど難しくないはず。なので、「CIを先に構築すべき」という制約がなくなるし、外部のCIサービスを使うこともすぐに使えるようになるはず。

@essen
essen / my_module.erl
Created October 14, 2013 03:25
Thinking in Erlang: The Code
-module(my_module).
-export([my_function/1, my_function/2]).
-export([infinite_loop/0, f/1, r/2, sort/1]).
-export([only_primes/1, is_prime/1]).
my_function(A) when is_integer(A) ->
my_function(A, 0);
my_function(A) when is_list(A) ->
my_function(list_to_integer(A), 0).
@shirou
shirou / README
Last active November 22, 2016 03:36
add these lines to conf.py
How to write
1. pip install sphinxjp.themecore
2. pip install <なにか新しいtinkererのテーマ> 例: sphinxjp.themes.newtinker
3. 'sphinxjp.themecore' をextentionsに追加する
例: extensions = ['tinkerer.ext.blog', 'tinkerer.ext.disqus', 'sphinxjp.themecore']
4. html_theme = "<なにか新しいtinkererのテーマ>" と書く
5. ヽ(゚∀゚ヽ 三 ノ゚∀゚)ノ ワーイ
@voluntas
voluntas / shiguredo_tech.rst
Last active May 13, 2025 02:58
時雨堂を支える技術

時雨堂を支える技術

日時:2025-05-13
作:時雨堂
バージョン:2025.3
URL:https://shiguredo.jp/

言語

@katzchang
katzchang / README.md
Last active September 28, 2022 13:42
Steve Freeman氏とのペアプロ雑感 #tddbc

Steve Freeman氏とのペアプロ雑感

http://tddbc.doorkeeper.jp TDD Boot Camp 2013-07 -- TDDBC で、偶然にもロンドンから来日していたSteve Freeman氏を招くことができた。ちなみに本当に偶然の来日で、その日の夕方にご家族と隅田川の花火を見る予定だったらしい。貴重な時間である。

20分ほど講演していただき、さらに参加者と一緒にペアプロ課題に挑戦してもらった。しかもペアプロでっていう貴重な体験をさせてもらったので、そのことについてまとめたい。

Steve Freeman氏は書籍 "Growing Object-Oriented Software, Guided by Tests" (邦訳「実戦テスト駆動開発」)の共著者の一人で、Javaのモックフレームワーク "JMock"の開発者の一人。当然、自動販売機の課題にもJMockを駆使してモデリングしていただくことになった。

Start from the outside

@taichi
taichi / build.gradle
Last active November 29, 2019 03:37
doma-tutorial-1.31.0.zipに含まれるbuild.gradleをより改善したビルドスクリプト。
apply plugin: 'java'
sourceCompatibility = targetCompatibility = 1.6
tasks.withType(AbstractCompile) each { it.options.encoding = 'UTF-8' }
repositories {
mavenCentral()
maven {url 'http://maven.seasar.org/maven2'}
}
enum Num {
ONE(1) {
String toRoman() { "Ⅰ" }
},
TWO(2) {
String toRoman() { "Ⅱ" }
},
THREE(3) {
String toRoman() { "Ⅲ" }
};
@sunaot
sunaot / exception.md
Created August 2, 2013 09:13
例外設計の話

例外設計の話。

こんな指針がいいのかなー 2013 夏 ver.

例外の目的とは?

.NET の「例外のデザインのガイドライン」にもこう書いてある。

@uupaa
uupaa / typical.javascript.module.md
Last active December 20, 2015 13:19
The typical javascript module pattern
@kyonmm
kyonmm / TDDeXchange-exercise-for-tdder.md
Last active December 7, 2022 05:21
TDD演習課題 - TODOリストアプリ