Slide 1

Slide 1 text

1 ©2022 Loglass Inc. チームで高品質なコードを追求するための 「設計標準」の育て方 2022.06.17 株式会社ログラス 松田

Slide 2

Slide 2 text

2 ©2022 Loglass Inc. 会社紹介

Slide 3

Slide 3 text

3 ©2022 Loglass Inc. 会社紹介 Loglassは経営データを正確かつ迅速に可視化 /分析す ることで、柔軟/高精度な事業推進を実現する経営管理 クラウドサービス です。 企業価値を向上する経営管理クラウド

Slide 4

Slide 4 text

4 4 ©2022 Loglass Inc. データドリブンな経営の意思決定を行うための、経営データ基盤です。

Slide 5

Slide 5 text

5 ©2022 Loglass Inc. 5 ログラスの「設計標準」の育て方

Slide 6

Slide 6 text

6 ©2022 Loglass Inc. 6 Kotlin自体のお話は薄めです

Slide 7

Slide 7 text

7 ©2022 Loglass Inc. なぜ「設計標準」?

Slide 8

Slide 8 text

8 ©2022 Loglass Inc. 8 チームでの設計の考え方など、みなさんどうやって共有されていますか?

Slide 9

Slide 9 text

9 ©2022 Loglass Inc. 9 ログラスでは設計の考え方を揃えるために「サーバーサイド設計標準」が定められています 「設計標準」 画像のものだけじゃないよ!

Slide 10

Slide 10 text

10 ©2022 Loglass Inc. 10 改めてなぜ「設計標準」?

Slide 11

Slide 11 text

11 ©2022 Loglass Inc. 11 ・あくまで守られるべき「規約」として強制するのではなく、軸として考えるための「標準」 ・チーム全体で考えて意思決定の結果と根拠を残していくことが目的 なので変更頻度も多い なぜ「設計標準」?

Slide 12

Slide 12 text

12 ©2022 Loglass Inc. 12 「設計標準」の重要なポイント 一人のアーキテクトみたいな人が考えるということはない 出典 イラストや ・一人が全てを考えて設計基準を作っている わけではない ・改善したいという要望からみんなで話して 決められていく

Slide 13

Slide 13 text

13 ©2022 Loglass Inc. 13 「設計標準」の重要なポイント 現時点での解 出典 イラストや ・結論だけがあっても行動に 移せない ・検討した選択肢や根拠を残 すことで、新たな良い解決策を 検討できる

Slide 14

Slide 14 text

14 ©2022 Loglass Inc. 14 https://little-hands.hatenablog.com/entry/2022/01/28/programming-principle 一部外部公開されてるよ! https://little-hands.hatenablog.com/entry/2022/01/24/domain-object-design 弊社松岡がブログとして公開しておりますので、ご興味ある方はご確認ください

Slide 15

Slide 15 text

15 ©2022 Loglass Inc. 「設計標準」はどうやってできる?

Slide 16

Slide 16 text

16 ©2022 Loglass Inc. 16 こんな感じでslackで誰かが相談を投げかけます

Slide 17

Slide 17 text

17 ©2022 Loglass Inc. 17 data class の constructor を private にしたい ・data class の constructor をprivate にしたい ・そのまま定義しても `copy` メソッドがあるため不整合 なデータの作成を防げない ・sealed interface + private constructorにすることで data class の `copy` メソッドの使用を禁止できる 参考 https://bouzuya.hatenablog.com/entry/2020/10/07/232516 https://qiita.com/wrongwrong/items/0c6795a4c4bc497b8d20

Slide 18

Slide 18 text

18 ©2022 Loglass Inc. 18 リファクタもちょこちょこ

Slide 19

Slide 19 text

19 ©2022 Loglass Inc. 19 雑ですが、以下のようなコードでなにか不安になることはありますか?

Slide 20

Slide 20 text

20 ©2022 Loglass Inc. 20 ・引数にemptyのSetを渡してよいの か? ・実際渡した時にどういった挙動に なるのか? ・Kotlinで書いているのでいい感じ に型で表現したい

Slide 21

Slide 21 text

21 ©2022 Loglass Inc. 21 空ではないCollectionをクラスとして定義してあげる

Slide 22

Slide 22 text

22 ©2022 Loglass Inc. まとめ

Slide 23

Slide 23 text

23 ©2022 Loglass Inc. 23 まとめ ・設計標準をアップデートしながらログラスはより良いプロダクトを探求しています ・誰か一人ではなく全員で良い設計とコードを目指しています

Slide 24

Slide 24 text

24 ©2022 Loglass Inc. 24 We are hiring! meetyでカジュアル面談申し込んでください ● CTO候補 ● EM候補 ● バックエンドエンジニア ● データエンジニア ● プロダクトデザイナー ● ブランディングデザイナー

Slide 25

Slide 25 text

25