![](https://cdn-ak-scissors.b.st-hatena.com/image/square/e3f0d309bd1fe217bf7d14c37ecc1dfd7e3d4612/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUU1JUJEJUI5JUU1JTg5JUIyJUU5JUE3JTg2JUU1JThCJTk1JUU4JUE4JUFEJUU4JUE4JTg4JUUzJTgxJUE3JUU1JUI3JUE4JUU1JUE0JUE3JUUzJTgyJUFGJUUzJTgzJUE5JUUzJTgyJUI5JUUzJTgyJTkyJUU3JTg4JTg2JUU2JUFFJUJBJUUzJTgxJTk5JUUzJTgyJThCJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmcz1iMDcyZTAyNDBiNGY2NzA5NTgzZGYyNGM4Nzk2MTY3Mw%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBNaW5vRHJpdmVuJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz00MTZmMWU0NzBlYzY3YzU2MmRmMzkwOWJmNzc5ZjI0NA%26blend-x%3D142%26blend-y%3D436%26blend-mode%3Dnormal%26txt64%3DaW4gUkVBRFlGT1LmoKrlvI_kvJrnpL4%26txt-width%3D770%26txt-clip%3Dend%252Cellipsis%26txt-color%3D%2523212121%26txt-font%3DHiragino%2520Sans%2520W6%26txt-size%3D36%26txt-x%3D156%26txt-y%3D536%26s%3D5f4a690f059ea23a2957a3eb0ef0135f)
エントリーの編集
![loading...](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/common/loading@2x.gif)
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
記事へのコメント41件
- 注目コメント
- 新着コメント
![lorenz_sys lorenz_sys](https://cdn.profile-image.st-hatena.com/users/lorenz_sys/profile.png)
lorenz_sys
巨大クラスってのは当初から巨大なんじゃなくていろんな人がいじり倒した結果そうなるんじゃない?最初に設計した人はちゃんと設計してたと思いたい。昔10万行のcppファイルを3万行にリファクタリングしたことあった。
![t10471 t10471](https://cdn.profile-image.st-hatena.com/users/t10471/profile.png)
t10471
最初から細かくい分割しないで、でかくなったら分割すればいいんじゃないかと思う派...エヴァンス本を読んだときに積極的にリファクタリングしてもいいことに最初驚いたな。そのためにも、テスト大事だけど。
![yojik yojik](https://cdn.profile-image.st-hatena.com/users/yojik/profile.png)
yojik
この考え方はピーターコードのカラーUMLとかストリームラインオブジェクトモデリングの手法として2000年代初期に通過済みで、とても有用だったけど、最近はあまり話題にならなかった。再発見されるのはとても良い。
![kawa-_-kawa kawa-_-kawa](https://cdn.profile-image.st-hatena.com/users/kawa-_-kawa/profile.png)
kawa-_-kawa
記事を見ておぉと思った人は「責務(駆動)」「ロール」「コラボレーション」などで調べると色々出てくるので幸せになれると思う。次はこの概念を、どう構築するか設計方法に話が進むと思う。
![fortrand fortrand](https://cdn.profile-image.st-hatena.com/users/fortrand/profile.png)
fortrand
フリマアプリの話、昔なら「ユーザー」という基底クラスをから各クラスを派生させ…となるけど今は考えが変わったということかな。開発の分担の細分化・先々の拡張性も考えると細かく分けたほうが近年は良いのかも。
![lorenz_sys lorenz_sys](https://cdn.profile-image.st-hatena.com/users/lorenz_sys/profile.png)
lorenz_sys
巨大クラスってのは当初から巨大なんじゃなくていろんな人がいじり倒した結果そうなるんじゃない?最初に設計した人はちゃんと設計してたと思いたい。昔10万行のcppファイルを3万行にリファクタリングしたことあった。
![quick_past quick_past](https://cdn.profile-image.st-hatena.com/users/quick_past/profile.png)
quick_past
親クラスと継承したサブクラスで機能分けしましょうとか、メソッドや変数名の名前の付け方とか、そういう話ではないの・・・??なぜそうしなきゃいけないのか。ってのがそんなにわかりにくい事なのかな・・・。
![yojik yojik](https://cdn.profile-image.st-hatena.com/users/yojik/profile.png)
yojik
この考え方はピーターコードのカラーUMLとかストリームラインオブジェクトモデリングの手法として2000年代初期に通過済みで、とても有用だったけど、最近はあまり話題にならなかった。再発見されるのはとても良い。
![t10471 t10471](https://cdn.profile-image.st-hatena.com/users/t10471/profile.png)
t10471
最初から細かくい分割しないで、でかくなったら分割すればいいんじゃないかと思う派...エヴァンス本を読んだときに積極的にリファクタリングしてもいいことに最初驚いたな。そのためにも、テスト大事だけど。
![yarumato yarumato](https://cdn.profile-image.st-hatena.com/users/yarumato/profile.png)
yarumato
“「ユーザー」というひとつのクラスが役割を背負いすぎ。多数の役割に分割。「分割しすぎ」に見えるかもだが、各クラスが最小限のフィールドのみ所有してデータ安全で良い。「動名詞でクラスを命名」シンプル設計”
![su_zu_ki_1010 su_zu_ki_1010](https://cdn.profile-image.st-hatena.com/users/su_zu_ki_1010/profile.png)
su_zu_ki_1010
データベース側はこの設計でいけそうだけど、データベースから受け取った値を格納するオブジェクト側が人によっては技術的負債になって糞コードだと呼ばれてしまうかもなぁ、と思ったりした。個人的にはアリ。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
![アプリのスクリーンショット](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/entry/app-screenshot.png)
いまの話題をアプリでチェック!
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
役割駆動設計で巨大クラスを爆殺する - Qiita
大量のメソッドを保有し、数千、数万行単位にぶくぶく膨れ上がった巨大クラス。別名﹁神クラス﹂とも﹁...
大量のメソッドを保有し、数千、数万行単位にぶくぶく膨れ上がった巨大クラス。別名﹁神クラス﹂とも﹁大きな泥団子﹂とも呼ばれる、長大で複雑で密結合で極めて変更が困難なアイツ。 そんな巨大クラスの退治に有効な、ドメイン駆動設計を基本思想とする﹁役割駆動設計﹂を紹介致します。 解決したい課題、狙う効果 数千、数万行単位の巨大クラスの登場を抑止する。 小さくシンプルな構造に落とし込み、堅牢で変更容易性の高い設計へ昇華させる。 例1‥筆者をモデリング 分かりやすくなるよう、まず私を例にモデリングしてみます。私は以下のような特徴があります。 IT企業の従業員 家族がいる(妻, 子供) 趣味でゲーム制作している ダメな設計 何も考えずに人クラスとして設計すると、よく以下のような構造になりがちです。 従業員として仕事をする、父親として家族サービスする、趣味としてゲーム制作する、それぞれのメソッドが備わってい
2019/04/07 リンク