Slide 1

Slide 1 text

スーパーハカーに なりたかったITドカタと コミュニティ そしてマサカリ DevLove Conf 2012 12/15

Slide 2

Slide 2 text

皆さん

Slide 3

Slide 3 text

こんにちは!

Slide 4

Slide 4 text

勉強会は好きですか?

Slide 5

Slide 5 text

私は好きです

Slide 6

Slide 6 text

勉強会って楽しい

Slide 7

Slide 7 text

DevLOVEに出会ってから

Slide 8

Slide 8 text

多くの人と知り合いました

Slide 9

Slide 9 text

多くのコミュニティと 出会いました

Slide 10

Slide 10 text

すごい人をたくさん見て

Slide 11

Slide 11 text

私もそうなりたいと思って

Slide 12

Slide 12 text

こうして私は

Slide 13

Slide 13 text

スーパー ハカーに 憧れるように なったのだ

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

今日は

Slide 16

Slide 16 text

コードを書いて

Slide 17

Slide 17 text

アプリを作って

Slide 18

Slide 18 text

公開して

Slide 19

Slide 19 text

フィードバックをもらった

Slide 20

Slide 20 text

話をします

Slide 21

Slide 21 text

コード書く フィードバック もらう 公開する

Slide 22

Slide 22 text

コード書く フィードバック もらう 公開する

Slide 23

Slide 23 text

これ何かに似てない?

Slide 24

Slide 24 text

コード書く フィードバック もらう 公開する

Slide 25

Slide 25 text

黄金の回転

Slide 26

Slide 26 text

ゴゴゴゴゴゴゴゴゴゴゴ

Slide 27

Slide 27 text

黄金の回転を回すために

Slide 28

Slide 28 text

コードを書こう 公開しよう

Slide 29

Slide 29 text

という話をします

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

話を戻して

Slide 32

Slide 32 text

スーパー ハカーに 憧れるように なったのだ

Slide 33

Slide 33 text

でも何をすればいい?

Slide 34

Slide 34 text

昔偉い人は言った

Slide 35

Slide 35 text

考えるな、コードを書け

Slide 36

Slide 36 text

ということで

Slide 37

Slide 37 text

コードを書いて

Slide 38

Slide 38 text

アプリを作ってみた

Slide 39

Slide 39 text

アプリの目的

Slide 40

Slide 40 text

目的: 大量の技術書を管理したい 厚さ 25cm これが6つ

Slide 41

Slide 41 text

概要: 技術書、電子書籍を 管理するアプリ

Slide 42

Slide 42 text

要求: 大量の技術書 ・管理したい ・検索したい

Slide 43

Slide 43 text

だからアプリを作ってやる!

Slide 44

Slide 44 text

でもどうやって作れば いいんだ?

Slide 45

Slide 45 text

技術って何があるんだ?

Slide 46

Slide 46 text

まずは

Slide 47

Slide 47 text

何があるのかを 調べることから始めた

Slide 48

Slide 48 text

でも何も分からなかったので

Slide 49

Slide 49 text

・コミュニティ ・勉強会 ・書籍 で勉強した

Slide 50

Slide 50 text

さっくり作りたい →Rails サーバはクラウドで →Heroku+RDS 見た目もオサレに →jQuery Mobile

Slide 51

Slide 51 text

そして

Slide 52

Slide 52 text

3ヶ月後

Slide 53

Slide 53 text

オサレなアプリが完成

Slide 54

Slide 54 text

見た目もオサレに

Slide 55

Slide 55 text

スマフォから本棚を検索

Slide 56

Slide 56 text

大事な事はすべて勉強会が 教えてくれた(ドヤッ)

Slide 57

Slide 57 text

No content

Slide 58

Slide 58 text

作ったものを人に 見てもらおう

Slide 59

Slide 59 text

以下感想

Slide 60

Slide 60 text

感想1 ・見た目がかっこいい ・データを画面から 登録したい ・Amazon API使えばいい

Slide 61

Slide 61 text

感想2 ・コード汚い ・テスト書け

Slide 62

Slide 62 text

感想3 コードが ・これはひどい ・Railsじゃない

Slide 63

Slide 63 text

感想4 テストが ・これはひどい(2回目) ・RSpec本読め ・GOOS本読め

Slide 64

Slide 64 text

上げて落とされた

Slide 65

Slide 65 text

要約すると

Slide 66

Slide 66 text

他人に見せたら

Slide 67

Slide 67 text

他人に見せたら

Slide 68

Slide 68 text

フルボッコ

Slide 69

Slide 69 text

正直心が折れた

Slide 70

Slide 70 text

No content

Slide 71

Slide 71 text

とりあえず

Slide 72

Slide 72 text

言われたことはやろう

Slide 73

Slide 73 text

RSpec本を読んだ

Slide 74

Slide 74 text

テスト書いた

Slide 75

Slide 75 text

あわせてリファクタリング

Slide 76

Slide 76 text

ControllerからModelへ ロジックの民族大移動

Slide 77

Slide 77 text

コードが腐海状態→浄化

Slide 78

Slide 78 text

要望された機能も追加

Slide 79

Slide 79 text

書籍データをAmazonAPIにより 画面から追加可能に

Slide 80

Slide 80 text

そうしたら

Slide 81

Slide 81 text

コードが成長

Slide 82

Slide 82 text

Before After

Slide 83

Slide 83 text

Before After

Slide 84

Slide 84 text

ということで

Slide 85

Slide 85 text

もう一度見せてみた

Slide 86

Slide 86 text

そしたら

Slide 87

Slide 87 text

感想 ・テストが全然足りない ・命名センスが 致命的にない

Slide 88

Slide 88 text

さらにフルボッコ

Slide 89

Slide 89 text

ひどい目にあった

Slide 90

Slide 90 text

No content

Slide 91

Slide 91 text

でも

Slide 92

Slide 92 text

いいこともあった

Slide 93

Slide 93 text

アプリを作って

Slide 94

Slide 94 text

・コードを毎日書く習慣 ・ツールの知識 (git,jenkins,Rspec,etc) を手に入れた

Slide 95

Slide 95 text

仕様、技術選定、実装 全部自分でやる→楽しい

Slide 96

Slide 96 text

コードを公開して ・レベルが上がった ・視野が広がった ・知識がついた

Slide 97

Slide 97 text

成長

Slide 98

Slide 98 text

具体的にどう成長したか

Slide 99

Slide 99 text

電子書籍の登録機能 ・Java ・レガシーコード ・クソ設計 →正直見返したくない

Slide 100

Slide 100 text

・一番最初に書いたコード ・黒歴史 ・例外握りつぶす ・Eclipse開くとSAN値が減る ・黒歴史

Slide 101

Slide 101 text

想像して欲しい

Slide 102

Slide 102 text

SAN値が下がるほどの クソコード

Slide 103

Slide 103 text

リファクタリングしたくない

Slide 104

Slide 104 text

だから

Slide 105

Slide 105 text

Rubyで作りなおした

Slide 106

Slide 106 text

電子書籍の登録機能(新) ・Ruby ・テストコード付き ・設計頑張った →バグも減った

Slide 107

Slide 107 text

Before After 4ヶ月 2週間 成長の結果 →開発速度が9倍 →コードの質が向上

Slide 108

Slide 108 text

No content

Slide 109

Slide 109 text

なぜわざわざ コードを書くのか

Slide 110

Slide 110 text

・好奇心に突き動かされて ・コードが書きたかった ・作りたいものがあった ・ついカッとなって

Slide 111

Slide 111 text

・本を読む ・勉強会で話を聞く →それだけでは 分からないこともある

Slide 112

Slide 112 text

実践が伴わないと 深い話ができない

Slide 113

Slide 113 text

だから実践をしよう

Slide 114

Slide 114 text

実践したら公開して フィードバックをもらおう

Slide 115

Slide 115 text

No content

Slide 116

Slide 116 text

フィードバック=ツッコミ

Slide 117

Slide 117 text

ツッコミを受けよう

Slide 118

Slide 118 text

ツッコミは 自分ができない事を 知るベストプラクティス

Slide 119

Slide 119 text

ツッコミする人は 解決策も知っている事が多い

Slide 120

Slide 120 text

No content

Slide 121

Slide 121 text

「でもツッコミって痛くね?」 「心が折れたりしない?」

Slide 122

Slide 122 text

うん、痛いよ うん、心折れるよ

Slide 123

Slide 123 text

でもそれ以上に成長したい

Slide 124

Slide 124 text

むかし偉い人が言っていた

Slide 125

Slide 125 text

エンジニアは マサカリを 受けると 戦闘力が上がる

Slide 126

Slide 126 text

参考画像

Slide 127

Slide 127 text

だからもっと マサカリを受けるべき

Slide 128

Slide 128 text

No content

Slide 129

Slide 129 text

コード公開のコツ

Slide 130

Slide 130 text

・Githubにおくだけでは 見てもらえない ・自分で人に見せよう ・見る人を選べる ・ツッコミしてほしいところに ツッコミがもらえる

Slide 131

Slide 131 text

No content

Slide 132

Slide 132 text

ツッコミしてくれる人を どこで見つければ いいんですか?

Slide 133

Slide 133 text

コミュニティ

Slide 134

Slide 134 text

・インプットの場 ・ツッコミをくれる人が いる場所 コミュニティ

Slide 135

Slide 135 text

ツッコミをもらったら その点を直そう

Slide 136

Slide 136 text

もっと良いコードを書こう

Slide 137

Slide 137 text

書いたら公開して またツッコミをもらおう

Slide 138

Slide 138 text

コード書く フィードバック もらう 公開する

Slide 139

Slide 139 text

でもさ

Slide 140

Slide 140 text

もらってばかりでも よくないよね

Slide 141

Slide 141 text

恩送りをしよう

Slide 142

Slide 142 text

・自分がアウトプット ・他人にツッコミ 恩送り

Slide 143

Slide 143 text

No content

Slide 144

Slide 144 text

ご清聴ありがとうございました

Slide 145

Slide 145 text

書いた人 瀬宮 新 @shin_semiya 職業:SIer ハイパーレガシーコードクリエイター 好きな言語:Ruby

Slide 146

Slide 146 text

No content

Slide 147

Slide 147 text

追記

Slide 148

Slide 148 text

心が弱い人がマサカリを 受けるための教訓

Slide 149

Slide 149 text

ベジータに学ぶ マサカリの受け方

Slide 150

Slide 150 text

エンジニアは マサカリを 受けると 戦闘力が上がる

Slide 151

Slide 151 text

参考画像

Slide 152

Slide 152 text

この時の原作の状況を 整理しよう

Slide 153

Slide 153 text

背景:フリーザがやばい 目的:ベジータは パワーアップしたい 手段:ベジータはクリリンに 半殺しにしてもらい デンデに回復するよう 依頼した

Slide 154

Slide 154 text

考えてみよう

Slide 155

Slide 155 text

ベジータはフリーザに半殺しに するよう依頼していない。 フリーザは手加減せずに 殺しちゃうから

Slide 156

Slide 156 text

教訓1: 手加減のできない人から マサカリを受けるべきではない (少なくとも最初のうちは)

Slide 157

Slide 157 text

ベジータは信頼のできる、 親切なクリリンに依頼した しかも事前に回復役のデンデを 確保した状態で依頼した。

Slide 158

Slide 158 text

教訓2: 手加減のできる、親切で詳しい 人にマサカリを依頼すべき 教訓3: ダメージは残るので、回復役は 用意しておくべき

Slide 159

Slide 159 text

マサカリを投げてくれるよう 依頼する人はコミュニティの 詳しい人(かつ親しい人)に するべき。

Slide 160

Slide 160 text

どうしようもないクソコード だと自覚している場合は githubに別アカを作って それをマサカリ依頼する 人にだけ教えるべき。

Slide 161

Slide 161 text

なんでもかんでも フルオープン にすればいいって わけではない

Slide 162

Slide 162 text

さぁみんなも

Slide 163

Slide 163 text

レッツマサカリ依頼

Slide 164

Slide 164 text

追記 終わり