アカツキLT_2022_02_24..pdf
by
akatsukinewgrad
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
[初心者向け]破滅的なコードを書かない ために意識したい3つのこと +α さとう/sakastudio
Slide 2
Slide 2 text
自己紹介 北海道情報大学3年 23卒アカツキ内定 Twitter @sakastudio_ オープンソースで工業ゲーを開発中
Slide 3
Slide 3 text
意識したい3つのこと + α ・一つのクラスは150行以内に収める ・循環参照はしない ・継承はしない ・テストコードを書こう
Slide 4
Slide 4 text
同じ内容をQiitaで書いてます こっちの方が詳しい説明があるので、興味があれば是非 そのまんまだとアレなので+αします
Slide 5
Slide 5 text
一つのクラスは150行以内に収める 1000行クラス、書いてないですか? ・1000行あると単純に読みづらい ・様々な関数や変数が相互作用してて処理を追いづらい ・一箇所直すと他の場所がバグるなんてことも… →そんなら行数で制限しちゃった方が楽
Slide 6
Slide 6 text
150行以内だと何がいい? ・単一責任の原則を割と楽に守ることができる ・単一責任の原則を守るとそのクラスのやることが明 確になり、読みやすくなる →単一責任の原則を守るようなコードを書こ う!
Slide 7
Slide 7 text
単一責任とはなんぞや? 単一責任の原則とは (クラスを)変更するための理由が、一つのクラスに 対して二つ以上あってはならない
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
何がダメか? 新たな仕様に柔軟に対応できない ・通常ステージの他に、ボーナステージを実装する必要が出 てきた ・ボーナスステージにPlayerManagerは必要ない →循環参照があるとどうなるか?
Slide 14
Slide 14 text
何がダメか? 破滅的なコードの温床となる
Slide 15
Slide 15 text
循環参照の解決方法 delgateやeventなどの言語機能を使いましょう
Slide 16
Slide 16 text
循環参照の解決方法 無料版はここまでです。 これ以降は記事を読んでください。 (本当は説明したいけど時間が(ry )
Slide 17
Slide 17 text
継承はしない •継承をすると親クラスに処理が集中する •子クラス用の処理やバグ回避処理が親クラスにでき親 クラスの複雑度が増す
Slide 18
Slide 18 text
継承はしない 継承がダメな理由として、ミノ駆動さんの動画は 非常にわかりやすいです
Slide 19
Slide 19 text
継承の解決方法 ・継承ではなく合成を使う ・処理を別クラスに記述し、そのクラスに処理を転送
Slide 20
Slide 20 text
継承の解決方法 無料版はここまでです。 これ以降は記事を読んでください。 (本当は説明(ry )
Slide 21
Slide 21 text
テストコードを書こう というかTDDをしよう
Slide 22
Slide 22 text
テストコードを書きTDDをすると •必然的にユニットテストを書きやすい設計≒良い設計 ができ るようになる •バグの早期発見、早期修正ができる •テストは基本ずっと使えるのでデグレを減らせる •モジュールの品質を高めることができる •自分が書いたコードに対して自信を持てる
Slide 23
Slide 23 text
TDDの良くないところ •変更に時間がかかる •コードを書く量が大体2倍になる •クライアント側のテストは意外と大変