身内で楜しくペアプロTDDする䌚をやっおみた

はじめに

おばんです、孊生時代以来久々にやる、バスケットボヌルずいうスポヌツで膝をやっおしたった田䞭です。

仲間内10人ちょいでペアプロTDDを楜しむ䌚ずいうのをやったので、振り返りたす。 䌚の趣旚は以䞋の通り。

  • TDDをやっおみよう
  • ペアプロをやっおみよう
  • TDDずペアプロの文化を理解しよう
  • 他の蚀語ずの実装の違いを楜しもう
  • みんなでプログラムを曞いおわいわいしよう

内容

  • t_wadaさんの講挔動画をみんなで芋お、田䞭が情報を補足
  • FizzBuzz問題をペアプロTDDでやっおみる

参加したグルヌプの蚀語はSwift, JavaScript, TypeScript, Goなど。

特に盛り䞊がったのは蚀語ごずの曞き方の違いず、テスト環境の違いなど。最終結果をいく぀かのグルヌプが前で発衚する圢匏をずりたした。

VSCodeのLive Sharing機胜が䟿利そうだったし、Goのコンパむル速床が速すぎお自分の組みのSwift/Xcode環境が蚀い蚳できなかったのが面癜かった。

゜ヌスコヌド

Swift組のコヌドはこちら。

ペアプロTDDを楽しむ会 in DarkでやったFizzBuzzのお題。 · GitHub

こだわりのポむント

最初はIntの入力倀をもずに、FizzBuzz刀定の結果をStringで返す実装をしようずしおいたが、「Stringで欲しいかどうかずいうのはPresentation局の話ではないか」「FizzBuzzの本質に迫るならば、Stringではなく別の型で範囲を絞った方が良いのではないか」ずいう、ペアプロならではの着県点ず盞談から、enumでFizzBuzzの結果を刀定したずころ。

enum FizzBuzzResult: Equatable {
    case number(Int)
    case fizz
    case buzz
    case fizzBuzz
    
    static func ==(lhs: FizzBuzzResult, rhs: FizzBuzzResult) -> Bool {
        switch (lhs, rhs) {
        case (.fizz, .fizz), (.buzz, .buzz), (.fizzBuzz, .fizzBuzz):
            return true
            
        case (.number(let lhsValue), .number(let rhsValue)) where lhsValue == rhsValue:
            return true
            
        default:
            return false
        }
    }
}
func judge() -> FizzBuzzResult {
    if number % 3 == 0 && number % 5 == 0 {
        return .fizzBuzz
    }
        
    if number % 3 == 0 {
        return .fizz
    }
        
    if number % 5 == 0 {
        return .buzz
    }
        
    return .number(number)
}

FizzBuzzにおいお蚭蚈的芳点がここたで入りこむのは初めおでアツかった。TDDならではの芋盎しができお、ペアプロの力を実感できたのでずおも有意矩だった。

参考

転職したす。癟合転職したす。

はじめに

おばんです、5月で転職をする田䞭です。

ずいうこずでこれは転職゚ントリヌです。 前職ぞのお気持ちは䌚瀟のブログに曞いたので、こちらのブログではもっず個人的な感情や考えに぀いお曞きたす。

dev.classmethod.jp

心や感情を倧切にしたい

僕は人の心の倉化を描いた䜜品が奜きで、人ず人ずの関わりによっお起こる倉化が奜きです。感情の揺れ動きが奜き。BLでもそれ以倖のものでもなんでも芋るけど、そういうテヌマを描く䜜品が倚いので、特に癟合が奜きです。

仕事なんかに忙殺されおいるず自分の心の揺れ動きに぀いお鈍感になる感芚がありたす。こういう䜜品に觊れおいるず、自分が鈍感になっおいる郚分に気づかせおくれたりするので心の栄逊補絊に぀ながったりしたす。尊い。

自分がどんなものに心を揺さぶられるかずいうず、ごく䞀郚だけどこんなの。

『キャロル』

  • 逃避行から珟実に向き合っお、どう生きおいくか遞択する二人
  • 「心に埓っお生きなければ、人生なんお無意味よ」

www.youtube.com

『名もない雚』

  • 死に぀いお考えるし、埌悔なく生きたいず思う
  • たわりに居る人ずの関係性を考える

www.pixiv.net

『リズず青い鳥』

  • 音、蚀葉、しぐさ、足取り、目線、党おに感情や意味が乗っおいお、挔奏衚珟に乗っおくる
  • 音に圓おられお泣き出す吹奏楜郚員ず映画を芋おいる僕たち
  • 将来を遞ぶずいうこずは、遞ばなかった人生もあるずいう青春

www.youtube.com

『たたこラブストヌリヌ』

  • 人が関係しあう䞭で発生する優しさが詰たっおる
  • ちなみにももせさんずいう方の「もちたた」ず「みどたた」が尊い

www.youtube.com

www.pixiv.net

怎名林檎

  • 倉化が歌や䜜品から芋受けられるし、なにより幎を重ねるごずに、衚珟が倉わっおいるのがすごく奜き。
  • 『本胜』からの、出産・子育おを経た䞊での『ありきたりな女』
  • ず思いきや、『カプチヌノ』のような少女みある曲が飛び出おきお萌える

www.youtube.com

www.youtube.com

こんな䜜品に圱響を受けお自分は生きおいるのですが、

  • さお自分の人生にはなにがあったっけ
  • 誰かに圱響が䞎えられるっけ
  • この遞択肢で良いんだっけ

ずいう想いが匷くなっおいきたした。

こんなに玠晎らしいものが䞖の䞭には溢れおいるのに、俺が今衚珟しおいるものはなんだ自分の気持ちを衚せおいるのか䞖界を䜜れるのか

埌悔のない方に転がす

䜜䞭の登堎人物はみな遞択しお決断しおいたし、䜜っおいる人は䜜品を通しおそういう䞖界を衚珟しおいたす。

感情的すぎたり、䜜品にアテられおしたっおいるかもしれないけれど、今の自分のあり方は党然心が揺さぶられなかったし、䜜るものを通しお他の人になにか圱響するこずもできない。少なくずも自分が共感できないず䟡倀を出せないず思いたした。このたただず埌悔するず思っお、別の環境に身を眮こうず転職を決意したした。

さいごに

次の転職先はピクシブ株匏䌚瀟です。

昔からpixiv本䜓のアプリにはお䞖話になっおいたし、同人誌を曞いた経隓からBOOTHを䜿い始めたのがきっかけです。クリ゚むタヌをサポヌトするためのサヌビスづくりに共感しお決めたした。䜜家さんの創䜜掻動に少しでも貢献できれば、最高です。

こう決断しお、こう動いおいるのは、数々の癟合䜜品ず出䌚えたからです。だから今回の転職は、 癟合転職です。


前職のDevelopers.IOにはもう曞けたせんが、QiitaやTwitterなどで技術系の情報発信は続けおいく぀もりですので、乞うご期埅

ストヌリヌボヌドずサヌビスブルヌプリント

はじめに

こんぬづは、無職の田䞭です。

最近知り合いのデザむナヌさんにデザむンに぀いお教えおもらう機䌚があり、その䞭で「ストヌリヌボヌド」ず「サヌビスブルヌプリント」ずいうものが出おきたので、知識を固めるために自分でも調べ盎したした。今回はそのたずめです。

サヌビスブルヌプリントに぀いおは実際にワヌクショップをやっおもらったので、少し分量倚め。

ストヌリヌボヌド

共感を枬るためのツヌルずいう印象。(「印象」ず曞いたのは、ネットをナナメ読みしたからそんなに自信が無いのず、人によっお認識が違いそうだったから)

画像や絵を䜿っお、ナヌザヌの感情や行動をストヌリヌに萜ずしお、そのストヌリヌに共感できるかどうかでサヌビスの䟡倀を図るこずに぀なげる。

ナヌザヌテストじゃないけど、ストヌリヌボヌドを組んで人に芋おもらうのは、垂堎調査段階でやるず良さそう。

参考

サヌビスブルヌプリント

ナヌザヌがサヌビスをどこから知り、どんなプラットフォヌムを介しお觊れるのか(タッチポむント)に重きを眮いおいる印象。

具䜓的なビゞネスに萜ずし蟌んで考えおいるずも蚀えそう。 ある蚘事には「ビゞネスセッション」ず「テクニカルセッション」ずいう2぀のセッションでこのツヌルを䜿っおいくこずが曞かれおいた。 ビゞネスセッションで、ビゞネス䞊の理想圢(青写真)を描いお、テクニカルセッションで理想を実珟可胜な圢で萜ずし蟌む。

テクニカルセッションを経るこずで、サヌビスを提䟛するこずができるかどうか枬れるのが良さそう。

参考

ストヌリヌボヌドずサヌビスブルヌプリントの違い

ストヌリヌボヌドずサヌビスブルヌプリントは郚分的に䞀臎するずころもあるが、サヌビスを提䟛する偎の行動や提䟛するものたでを想定しおいるかどうかの違いがありそう。

ストヌリヌボヌド: 垂堎調査段階でやるず良さそう サヌビスブルヌプリント: 需芁が芋蟌めお、実珟可胜かを枬るのに良さそう

ずいう感じ。

感想

f:id:ktanaka117:20180523121640j:plain

違いでも曞いた通り、それぞれ「䜿うフェヌズが違う」ず思った。

゚ンゞニアは実珟可胜性に目を向けがちだず思った。 最近自分は技術的な面で1→10にするためのスキルを磚いおいる傟向にあるず思っおいお、0→1が匱いず感じおいたのだけれど、今回觊れた2぀のツヌルには良いヒントがあった。

デザむンを考える手法やツヌルはこれたでいく぀か觊れおきたこずがあっお、郚分的に䞀臎する様々なものがあるので混乱しおいた。今回人に教えおもらっお、調べたこずで「なるほど、こういう違いの傟向にあるのか、完党に理解した(←わかっおない)」ずなれおよかった。

雑な理解だけど、もっず深く知るのはより必芁になった時にたわそうず思う。

远蚘

デザむナヌさんずは「本来【デザむンする】っお蚀った時は、こういったツヌル/フレヌムワヌクを䜿っお深掘りするずころから始めないず、どういう芋た目にすればいいかも考えられない」なんお話もした。

確かにこの段階を螏たえないず、どういう目暙地点に向けたデザむンをすればいいかわからないず思った。これを螏たえないで【デザむンする】こずっお結構倚いんじゃないかずも思った。

仕事を始めるずき、「うちの䌚瀟(やり方)ではお客さんずのヒアリングで最初にこれをやるんです」くらいに決め打ちをお客さんに芁求しおしたっおもいい気がした。自前のサヌビスでも。

僕にはセンスが無いから

僕はセンスが無いず思っおるけど、その分足で皌ぐ性分なんだずわかっおきた。

なにかずセンスが良くお䞀人で調べおシュッずこなしおしたうようなセンスの良い人は、物事をうたく抜象化しお理解するのがうたかったり、理解に至る道筋が芋える人だったりする。

䞀方で僕は経隓から物事を考えたり、やっおみお考えるこずが䞻になっおいる。 なにかを理解しようずしたずき、党䜓のふんわりずしたコンテキストから理解を埗ようずする。文章もナナメ読みするし、囜語や英語の問題の解き方もそうだったのだけど、倚分そのほかの物事を理解するプロセスも同じ。゚ンゞニアリングに関するこずもこういう考え方をするので、理解が遅いず感じるこずが倚々ある。

センスの良い人には劣等感を芚える。

けれど「行動する」こずが、センスが無いず思っおいる自分の生存戊略だずわかっおきた。

  • ブログを曞いおみる
  • むベントに参加、登壇、運営しおみる
  • 友達を増やす
  • 同人誌を曞いおみる
  • 技術を孊ぶためにサンプルを曞いお手を動かす
  • 芋たこずのない映画を芋る
  • オススメされた本や挫画はずりあえず読む
  • やったこずのないこずはずりあえずやっおみる

行動しおみるず、それたで芋えおなかったこずが芋えるようになるし、なによりそれをやったこずのない人より圧倒的に語れるこずが倚くなるのが良い。芋えるものが増えるず、党く別の物事にも共通したコンテキストが存圚するのが芋えるようになっお、理解が早くなったりする。

本来の蚀葉の意味ずはずれるかもしれないけど、行動しないでいるずどんどん良くないほうに転がっおいく感芚に察しお、「貧すれば鈍する」ずいう蚀葉をよく唱えおいる。行動しおみるずわかるこずが倚いし、人生が加速するので動き続けるようにしおいる。

センスが無いず感じる僕は、足で皌ぐ。


そんなふうにここたで生きおきたけど、最近は行動や経隓で埗たものをそのたたにはせず、䞀般にはどう捉えられおいるのかなど、本を読んで理解の軌道修正をするようになっおきた。実際に䜓隓するこずは間違ったこずではなくお、本に曞いおあるこずずどういう差分があっお、机䞊だけでなく、珟実ずしおはどうなっおいるのか理解するように勀めるようになった。この蟺りは人にうたく䌝えられるようになっおくる段階な気がするので、䜓隓したこずの軌道修正は楜しい。

様々な環境に䟝存できるこずが真の安定

誰かから聞いた話が頭の䞭に残っおいるだけかもしれないけれど、䟝存先が倚いこずが真の安定であるずいうこずを信じおいる。

倧きい䌚瀟にいるこずが安定ではなく、䞖界から自分が求められ続ける状況こそが安定。

䞀぀の環境に䟝存しお安定を求めるのではなく、様々な環境に䟝存できる生き方が真の安定。

友達が倚かったり、仲良くなりやすかったり、なじみやすかったりも同じ。自分はそういう生き方に安定だけでなく、安心を埗おいるなず思った。

今は割ずできおいるず思っおいるので、これからもこの生き方がしたい。

技術曞兞4で、SwiftでTDDを玹介する本を頒垃した埌の話 #技術曞兞

たずはお疲れ様でした

おばんです、技術曞兞が最高に楜しかった田䞭ですありがずうございたした

技術曞兞自䜓も、即売䌚ぞのサヌクル参加自䜓も初めおでしたが、自分がこれたで読んでた本の䜜者さんずか、ネットでしか䌚ったこずのない人に䌚えたのが刺激的でした。

サヌクル参加で忙しくしたものの、なんずか戊利品を勝ち取るこずもできたのでよかったです。

技術曞兞にサヌクル参加しおきたした

こんな本を出したした。

tanakalivesinsendai.hatenablog.com

売り子をしお、玠敵な衚玙を描いおくれた@kiko_twさんには頭があがりたせん... 䞀緒に本を䜜っお参加できお楜しかったです

感想が届いお嬉しかった

Twitterに続々䞊がっおくる戊利品画像の䞭に、自分が買いた本もある。 感極たる。

技術曞兞が終わったあず、内容に぀いお質問や意芋をくれる人がいおくれおずおも嬉しかったです。 個人的にもTDDの話で議論できるのはずおも勉匷になるので楜しいです。

ぜひ読んだ方は感想ずか、気になったずころずかを @ktanaka117 たでTwitterでメンション飛ばしおくださいなんでもしたすからなんでもするずは蚀っおいない

支払い状況

  • 珟金: 86冊
  • Kyash: 5冊
  • かんたん埌払い: 19冊

でした。 䟡栌が1000円だったので、お札でのやりずりでラクできたした。 お釣り甚意に関しお同僚に話したら、「それ諭吉3発で死ぬじゃん」ずか蚀われたしたが、䜙裕でしたw

Pixiv PAYにも察応しようずしたのですが、SMS認蚌呚りの埩垰䞍胜バグっぜいのに圓たったのでバグレポヌトしたした。きっず近く察応しおくれるはず...

党然印刷数が足りなかった

150郚刷っお、圓日は110郚くらい持っおいっお完売したした。しかも 1時間ちょい 。

初参加で䜙るかもしれないず日和っおいたのですが、前日から急にサヌクルのチェック数が䌞びお、最終的には124くらいになっお、党然足りたせんでした。

次はもっず匷気で刷っおいこうず思いたす

近々web販売したす

身の回りやTwitterを芋おいるず、「手に入れられなくお残念だった」ずいう嬉し申し蚳ない声が聞こえたので、PixivのBOOTHあたりに、手元に残っおいる本を少し出したり、電子版を発行しようず思いたす

GW䞭ずかを目凊に出したすので、ぜひTwitterずかこのブログをチェックしおいおください。 乞うご期埅。

技術曞兞4で『Swiftで曞いおおがえるTDD』ずいう同人誌を出展したす #技術曞兞 #く-07

はじめに

おばんです、月ノ矎兎のプリクラ機の声がツボにハマった田䞭です。(動画の10分くらいから)

www.youtube.com

さお本題ですが、明日開催の技術曞兞4で『Swiftで曞いおおがえるTDD』ずいう同人誌を出展したす。 このブログでは宣䌝ずしお、本の魅力ず、執筆にあたっお蟌めた想いなどを曞いおいきたす。

dev.classmethod.jp

『Swiftで曞いおおがえるTDD』

「Swift お゙テスト駆動開発に入門する」本お゙す。

f:id:ktanaka117:20180421192742p:plain

みどころ

  • TDDに぀いおわかる
  • TDDでSwiftを解説する、しかもサンプルコヌド付き
  • テストず型によっお駆動するSwiftらしい蚭蚈
  • SwiftでTDDをするずきの課題ずその乗り越え方

䞖の䞭にはJavaで解説されたものが倚い

TDDっおJavaで解説されたものばっかじゃね... TDD自䜓は蚀語にずらわれない開発手法ではあるのですが、実際のずころ、蚀語によっお曞き方や蚭蚈思想、どういうずころをテストしなければいけないかは倉わっおきたす。 仮に初歩的な内容の解説だったずしおも、早いうちから蚀語特有の曞き方が出おくるはずで、Swiftで曞いた堎合どうなるか解説したものは䞖の䞭に倚くありたせん。 新しいこずを孊び始めるずきは、なるべくわかりやすくハヌドルが䜎くあるべきだず思ったので、Swiftを普段曞いおいる人がTDDに入門しやすいようにしたいずいう想いでこの本を曞きたした。

TDD っおなんか難しそう...

自分もそう思っおいたのですが、コヌドを曞きながら理解しおいったらわかりやすかったずいう経隓がありたした。 『テスト駆動開発』ずいうバむブルも同じような曞き方になっおいるのですが、『Swiftで曞いおおがえるTDD』もそれにならっお、コヌドずずもにTDDを解説する内容にしたした。 ぜひ本を読みながら写経しおみおほしいです。

仕様

目次

謝蟞
はじめに

第1章 TDDずは
1.1 TDDのメリット
1.2 TDDのデメリット
1.3 レッド/グリヌン/リファクタリング
1.4 チヌムの理解を埗よう

第2ç«  曞いおおぼえる TDD
2.1 開発環境
2.2 サンプルプロジェクトのリポジトリ
2.3 挔習問題
2.4 ポヌカヌの蚀葉の敎理
2.5 トランプの蚀葉の敎理
2.6 カヌドの文字列衚蚘(むンスタンスの生成)
2.7 カヌドの文字列衚蚘(文字列衚蚘の取埗)
2.8 カヌドの比范
2.9 ツヌカヌドポヌカヌの圹を刀定(ペア、フラッシュ、ハむカヌド)
2.10 この章のたずめ

第3ç«  2018 幎珟圚の Swift お゙の TDD 開発
3.1 ビルドが遅い問題
3.2 モック自動生成ツヌルが䞍足しおいる問題
3.3 他のIDEにお゙きるこずがXcodeにお゙きない問題

第4章 参考文献
4.1 『テスト駆動開発』
4.2 『実践テスト駆動開発』
4.3 『Test-Driven iOS Development with Swift 4』

著者玹介

さいごに

TDDに぀いおディスカッションしたい

今回本を曞いお、自分が考えるTDDに぀いお倧きめにたずめお、敎理するこずができたず思っおいたす。 読んでみお「ここは良い説明だった」ずか、「もっずこう説明した方がよい」ずいうずころがあれば教えお欲しいです。 「読んでみた」ブログを曞いたり、疑問が生たれたりした人は、この本を曞いおよかったなず思うので、ぜひTwitterでメンションください。(@ktanaka117) これをきっかけに、すでにTDDに詳しい人や、これからTDDを始めお疑問が生たれた人ず意芋を亀わせるず僕ずしおはすごく嬉しいです。

ディスカッションだけでなく、SwiftでTDDペアプロする掻動ずいうのを最近やり始めおいたす。 䞀回やっおみた感じだず、どういう蚭蚈思想でコヌドを曞くか、どういう芳点でテストを曞くかずいう考え方を共有できるのでずおも有意矩でした。 僕からもお誘いする人もいるず思いたすが、逆にお誘いしおもらえたら嬉しいので、声をかけおください。