並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 32 件 / 32件

新着順 人気順

凝集度の検索結果1 - 32 件 / 32件

  • オブジェクト指向のその前に-凝集度と結合度/Coheision-Coupling

    Jetpack ComposeとGraphQLによるServer Driven UI/jetpackcompose-grahpql-serverdrivernui

      オブジェクト指向のその前に-凝集度と結合度/Coheision-Coupling
    • [フロントエンド] うわっ…Componentの凝集度、低すぎ? - Qiita

      [追記 2021/4/26] Storybookを導入して凝集度を向上させる記事を書きました。 0. はじめに 有名OSSのコミッターから、コピペで動かすマンまで、彼らは等しくプログラマと呼ばれます。10xプログラマという言葉があるように、同じプログラマでもその生産性には天地ほどの開きがあります。 プログラマの生産性は、1968年のSackmanらの研究以来、ソフトウェア工学でも熱い研究テーマの一つですが、未だにプログラマの生産性を測る指標は確立されていません。 一方、広木大地氏は自著「エンジニアリング組織論への招待」で、エンジニアリングを不確実性を削減する行為と定義しました。プログラミング能力を測る重要な尺度として、モジュールの凝集度があります。高い凝集度で設計しコーディングされたモジュールは、見通しがよく、再利用可能で、バグが少ない…つまり不確実性が少ない状態と言えるでしょう。 システ

        [フロントエンド] うわっ…Componentの凝集度、低すぎ? - Qiita
      • 【むっず】Reactコードで理解する「凝集度」 - Qiita

        🤷‍♂️ 凝集度とは みなさん、おはようございます! さて、いきなりですが、みなさん プログラミングにおける、凝集度とはご存知でしょうか? 「知っとるわい!!」との声が聞こえてきそうですが、 かく言う私は、言葉は知っていても、細かい部分まで理解することができていませんでした と言うわけで、凝集度に関してReactのコードを混ぜながら解説しましたのでご覧ください〜! もし間違いあればコメントいただけると嬉しいです 結合度編もあるよ! 🤔 凝集度って? それは一つのモジュールやコンポーネント、関数、クラスなどが、どれだけ単一の責任や機能に集中しているかを測る指標 一つのモジュールの責任を減らすという考え方 🤔 凝集度が高い状態とは? そのモジュールや関数が一つの明確な目的に専念していて、それ以外のことを行わない状態のこと 🤔 凝集度が低いと何が悪いの? 一つのコンポーネントが多くの責任

          【むっず】Reactコードで理解する「凝集度」 - Qiita
        • フロントエンドのディレクトリ構成を整理してコードの凝集度を高める

          こんにちは、atama plus というスタートアップで web エンジニアをしている yubon です。 atama plus Advent Calendar 2023 の 7 日目になります。 本記事では、atama plus で実際に開発・運用している React プロジェクトにおいて、機能的な凝集度を高めるために行ったディレクトリ構成の再設計について紹介します。 フロントエンドのディレクトリ構成に関する考え方や設計思想は多くの記事で紹介されていますが、「業務で開発しているプロジェクトのコードで、ペインがある状態から再設計して実際に移行した」というケーススタディ的な記事は少なそうだったので、書き残しておこうと思います。

            フロントエンドのディレクトリ構成を整理してコードの凝集度を高める
          • kawasima on Twitter: "Cohesion(凝集度)という概念が作られた47年前の論文読んでみたら、すでに完成された無茶苦茶分かりやすい判定ロジックが書いてあるのですよね。 https://t.co/vOCxwswUOt https://t.co/caHHmSoZkO"

            Cohesion(凝集度)という概念が作られた47年前の論文読んでみたら、すでに完成された無茶苦茶分かりやすい判定ロジックが書いてあるのですよね。 https://t.co/vOCxwswUOt https://t.co/caHHmSoZkO

              kawasima on Twitter: "Cohesion(凝集度)という概念が作られた47年前の論文読んでみたら、すでに完成された無茶苦茶分かりやすい判定ロジックが書いてあるのですよね。 https://t.co/vOCxwswUOt https://t.co/caHHmSoZkO"
            • コード品質を上げるために凝集度解析ツールをGo言語で自作した話

              ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog みなさんこんにちは。Yahoo!広告 ディスプレイ広告エンジニアの安部です。広告配信システムの開発を担当しています。 私がいるチームでは、レガシーシステムのモダン化に取り組んでいます。新しいシステムでは処理速度や書き易さの点からGo言語を採用しています。 新しいシステムでは、品質を担保するためにソフトウェアメトリクスをCIで監視しています。メトリクスの算出にはgolangci-lintを使っています。golangci-lintが算出するメトリクスには循環的複雑度などがあります。 今回は、golangci-lintが計測していない凝集度に着目しました。本記事では凝集度の解説に加え、静的解析ツールの開発と導入など、凝集度をCI監視のメ

                コード品質を上げるために凝集度解析ツールをGo言語で自作した話
              • DDDについて書かれていたことに共感しました。個人的にはなんにでも画一的なコンポーネント分割を適用しようとするクリーンアーキテクチャやレイヤードアーキテクチャ周辺についても、凝集度や結合度の概念を理解していないエンジニアが多いと感じてしまいます。この辺りのアーキテクチャについてもご意見を伺えるとありがたいです。 | mond

                DDDについて書かれていたことに共感しました。個人的にはなんにでも画一的なコンポーネント分割を適用しようとするクリーンアーキテクチャやレイヤードアーキテクチャ周辺についても、凝集度や結合度の概念を理解していないエンジニアが多いと感じてしまいます。この辺りのアーキテクチャについてもご意見を伺えるとありがたいです。 僕はクリーンアーキテクチャやレイヤードアーキテクチャについて真面目に学んだ訳ではないのですが、僕宛に質問という形でしたので僕が理解している範囲でお答えします。 まずクリーンアーキテクチャは「なんにでも画一的なコンポーネント分割」を適用しようとは提唱していないはずです。過去に作った何らかのソフトウェアでとあるコンポーネント分割をしたらとても良く上手く行ったのでクリーンだと呼んでいるだけで、パターンを抽出してみたので使えそうな所は使ってね、ぐらいの温度感で聞く必要があります。使いどころ

                  DDDについて書かれていたことに共感しました。個人的にはなんにでも画一的なコンポーネント分割を適用しようとするクリーンアーキテクチャやレイヤードアーキテクチャ周辺についても、凝集度や結合度の概念を理解していないエンジニアが多いと感じてしまいます。この辺りのアーキテクチャについてもご意見を伺えるとありがたいです。 | mond
                • Takuto Wada on Twitter: "ざっくり捉えがちな凝集度と結合度に関してここまで細かく明解に説明している資料にはなかなか出会えない。読むと凝集度に対する解像度が上がる。すばらしい資料。 / “オブジェクト指向のその前に-凝集度と結合度/Coheision-Cou… https://t.co/VAa9OA9VjE"

                  ざっくり捉えがちな凝集度と結合度に関してここまで細かく明解に説明している資料にはなかなか出会えない。読むと凝集度に対する解像度が上がる。すばらしい資料。 / “オブジェクト指向のその前に-凝集度と結合度/Coheision-Cou… https://t.co/VAa9OA9VjE

                    Takuto Wada on Twitter: "ざっくり捉えがちな凝集度と結合度に関してここまで細かく明解に説明している資料にはなかなか出会えない。読むと凝集度に対する解像度が上がる。すばらしい資料。 / “オブジェクト指向のその前に-凝集度と結合度/Coheision-Cou… https://t.co/VAa9OA9VjE"
                  • 凝集度と結合度

                    凝集度と結合度について 凝集度と結合度という概念は、コンスタンチンとヨードンが、その共著である「構造化設計」において提案した関数の尺度です。言い換えれば、これらは構造化設計の中心的テーマで、構造図を書くのも、設計時にこの尺度で判断して品質を織り込むためなのです。以下に、これらの尺度について簡単に説明します。 またこれらの尺度は、オブジェクト指向の時代に入って、残念ながらあまり省みられなくなりましたが、メソッド内で関数が階層構造になる場合の関数の尺度には、そのまま有効ですし、表現はちがっても、クラスやオブジェクトの関係や、適切な大きさを判断する際にも有効です。 保守作業に伴って品質の低下を招く危険は、構造化の言語であろうと、オブジェクト指向の言語であろうと同じです。 凝集度(コヒージョン) これは、プログラムのひとつのコンポーネント(以下、関数と呼ぶ)の中に含まれる機能の純粋度を表す尺度です

                    • オブジェクト指向のその前に - 凝集度と結合度

                      1990年代以降オブジェクト指向プログラミングの普及により、クラス設計、インターフェース設計、GoFのデザインパターンなどが提唱され、近年ではMVC系、DDD、Clean Architectureなどのアーキテクチャの議論が盛んに行われています。 これらももちろん大切ですが言語やアーキテクチャに依存せず、多くのプログラマが必ず検討をする設計として「関数分割」が存在しています。 関数分割の基準については、上記のデザインパターンやアーキテクチャでは議論されていません。 関数の実装は世のプログラマの全員が毎日行うことであり、欠かせない設計であると言っても過言ではありません。 しかし「テスタビリティが高い関数にする」のような基準に留まり、明確に言語化されていることが少ないです。 そこで本セッションではこの関数分割の良し悪しを測る指標として提唱されている凝集度と結合度を紹介します。 これらは構造化プ

                        オブジェクト指向のその前に - 凝集度と結合度
                      • 存在感の薄い「凝集度」に光を当てる - LCOMでクラスを凝集度を測定しよう - Qiita

                        存在感の薄い「凝集度」 品質の高いソフトウェアにするために「結合度が低く、凝集度が高い」設計がよいとされています。ソフトウェアのコンポーネント(関数、クラス、モジュール etc)をどう分割するか、またどうやって互いに関連付けるかに関する設計方針ですね。この「結合度」、「凝集度」の意味は一言で言うと以下のようになります。 結合度 - コンポーネント間の依存の多さ、また依存の度合い(低いほど良い) 凝集度 - 関連する操作が一つのコンポーネント内にまとまっている度合い(高いほど良い) 結合度と凝集度は表裏一体の概念です。コンポーネントを上手に分割できれいれば、だいたい結合度は低くなるし凝集度は高くなります。関連する操作が一つのコンポーネント内にぎゅっと押し込められていれば、関連の薄い操作は別コンポーネントにあって互いに依存しないようになっているし、逆にコンポーネント間の依存が少なければ、各コン

                          存在感の薄い「凝集度」に光を当てる - LCOMでクラスを凝集度を測定しよう - Qiita
                        • DDDについて書かれていたことに共感しました。個人的にはなんにでも画一的なコンポーネント分割を適用しようとするクリーンアーキテクチャやレイヤードアーキテクチャ周辺についても、凝集度や結合度の概念を理解していないエンジニアが多いと感じてしまいます。この辺りのアーキテクチャについて… | mond

                          mondでこの質問への回答を読んでみましょう

                            DDDについて書かれていたことに共感しました。個人的にはなんにでも画一的なコンポーネント分割を適用しようとするクリーンアーキテクチャやレイヤードアーキテクチャ周辺についても、凝集度や結合度の概念を理解していないエンジニアが多いと感じてしまいます。この辺りのアーキテクチャについて… | mond
                          • UseCaseの凝集度を高める Goのpackage戦略 / Go packaging strategy to increase use case cohesion

                            UseCaseの凝集度を高める Goのpackage戦略 / Go packaging strategy to increase use case cohesion

                              UseCaseの凝集度を高める Goのpackage戦略 / Go packaging strategy to increase use case cohesion
                            • 結合度と凝集度!! - Qiita

                              概要 以前、仕事中で「結合度と凝集度を考えながら、作業すると良いです。」と言われました。 大学の時、聞いたことある単語ですが、具体的な内容を忘れたので勉強しました。 結合度??? 結合度は、モジュールが他のモジュールに依存している程度を示すものです。 結合度の高いクラスの問題 他の関連クラスが変更されると、加えて変更します。 また、変更するクラスを理解するために、関連する他のクラスを一緒に理解する必要があります。 それで、他のプログラムでは、クラスを再利用することも難しいです。 結合度の程度 【wiki参考】 内容結合(Content coupling)「高」 病理学的結合とも呼ばれ、あるモジュールが別のモジュールの内部動作によって変化したり依存したりする(例えば別のモジュールの内部データを直接参照する)。したがって、あるモジュールのデータを生成する方法(場所、種類、タイミング)を変更する

                                結合度と凝集度!! - Qiita
                              • 凝集度・結合度・循環的複雑度 - Qiita

                                概要 メンテナンスしやすい/テストしやすいコードを書くための知識として以下を紹介してます。 凝集度 結合度 循環的複雑度 ちなみに、言語はJavaで書いてます(他の言語は読み替えて下さい) あと結合度の部分はもしかしたら間違えた理解してるかも。その場合ご指摘ください。 (以外と本やサイトによって書かれてることがバラバラなので…(´・ω・`)) それぞれの説明 モジュール強度とも言われる。あるコードがどれだけそのクラスの責任分担に集中しているかを示す尺度。 ひとつの役割のためだけに存在(全てのメソッド群がその役割のためだけに存在)しているクラスは凝集度が高い。 逆に、各メソッドに共通性がなく、様々な役割を担っているクラスは凝集度が低い。 凝集度が低いと何が悪いか そのクラスが何をするものなのか理解するのが難しくなる 保守やテストが難しくなる 再利用しづらくなる 凝集度が低いクラスはメンバ変数

                                  凝集度・結合度・循環的複雑度 - Qiita
                                • 松岡@ログラス/DDD,アジャイル on Twitter: "ActiveRecord型のORMの問題は、凝集度の観点から説明できる。 ビジネスロジックを持ち、DBアクセスを管理し、さらにテーブルまで定義するというのは明らかに責務過剰なのだ。"

                                  ActiveRecord型のORMの問題は、凝集度の観点から説明できる。 ビジネスロジックを持ち、DBアクセスを管理し、さらにテーブルまで定義するというのは明らかに責務過剰なのだ。

                                    松岡@ログラス/DDD,アジャイル on Twitter: "ActiveRecord型のORMの問題は、凝集度の観点から説明できる。 ビジネスロジックを持ち、DBアクセスを管理し、さらにテーブルまで定義するというのは明らかに責務過剰なのだ。"
                                  • 継承はできるだけ避ける。名付けと凝集度「CODE COMPLETE」まとめ - アルパカログ

                                    「神は細部に宿る」という言葉があるように、洗練されたコードは細部まで無駄がない。 無駄がないから誰にとっても読みやすいし、保守もしやすい。 洗練されたコードを書きたい人にとって、「CODE COMPLETE」は古いが色褪せないエッセンスに溢れている。 コードのある部分で作業しているときに無視しても問題のない部分をできるだけ増やすことが、優秀なプログラマになるための鍵である。 このエントリでは、「CODE COMPLETE」の6章「クラスの作成」と7章「高品質なルーチン」の内容をまとめる。 名付け クラス 格納媒体に関する名付けをしてはならない HogeFile など ファイルからメモリになるなど格納媒体が変わった場合に整合性が崩れる クラスの名前を動詞にしない 関数 関数が行うことをすべて説明する 副次効果があって名前が長くなることがある CalculateAndPrint() のような

                                    • React と Value Object で凝集度を高める|Showcase Gig Product Team Blog

                                      こんにちは。 Showcase Gig の金子です。 テイクアウト向けモバイルオーダーサービス「O:der ToGo(オーダートゥーゴー)」のフロントエンドエンジニアをしています。 本記事では、React に Value Object を適用した事例と、実装で得た気付きを共有します。 背景React でコーディングを進めていく際に、多くのドメインロジックをフロントエンドで実装していました。 多くのドメインロジックを含んでいる例を、 redux-ddd-exampleより引用します。 items を算出するために、コンポーネント内にドメインロジックが散在しています。 function TodoItems (props) { const { todos, updateTodo, deleteTodo } = props const items = todos.map(item , i) =>

                                        React と Value Object で凝集度を高める|Showcase Gig Product Team Blog
                                      • 凝集度の7つのレベルって何よ

                                        凝集度とは モジュールのまとまり具合に関する指標 ※ちなみに凝集度の読み方は「ぎょうしゅうど」です 英名 Cohesion (コヒージョン) 凝集度が高いと? メンテナンス性が高くなります。 一つのモジュールの中で複数の機能が混在しているより、分割されて機能とモジュールが1対1になっている方がコードは理解しやすく保守しやすいですよね。 また、修正の際に他の部分に影響を与える可能性も減ります。 凝集度の7つの段階(レベル)とは 凝集度は7段階で表すことが出来ます これを知ることで自分がコードを書く時はもちろん、 コードレビューでも用いる事ができると思います。 各段階をみていこう 凝集度が低い、つまり悪いコードから紹介していきます。 1️⃣暗号的/偶発的凝集 「最悪の状態😈❌」 適当(無作為)に集められたものがモジュールとなっている。 モジュール内の各部分には特に関連性はない

                                          凝集度の7つのレベルって何よ
                                        • 結合度よりも機能的凝集度の観点でアプリケーション設計をするべきと考える理由 - Qiita

                                          はじめに Qiitaとは関係ないのですが、以前noteに「疎結合は本当に良いことなのか?」という記事を書いたのですが、ちょうどそれに関連して業務コードにおいて設計に迷うことがあったので、凝集度をテーマに考えをまとめていました。 結論からいうと、凝集度の中でも機能的凝集度を高めることにプライオリティを置くことで、その選択が結果的に結合度の塩梅を取ってくれるのではないかと考えています。 予めご留意頂きたいのですが、この記事は現時点での私の解釈であり、普遍的な正しさを追求したものではなく、将来考えが変わるかもしれません。またWebサービスの設計に限った話であり、ソフトウェア設計全般に関わることでもありません。 それでは前置きはここまでにして、本題に入っていきましょう。 凝集度と結合度は対立する? 今回私が考えていたテーマは、サーバーサイドアプリケーション設計における結合度、凝集度の塩梅とその決め

                                            結合度よりも機能的凝集度の観点でアプリケーション設計をするべきと考える理由 - Qiita
                                          • 凝集度について - Qiita

                                            1が最も凝集度が高く、良い設計と言える。 数字が大きくなるほど凝集度が低くなり、低凝集となる。 良し悪しをはっきり区切ると 良い凝集 は 1~3 1 - 機能的凝集 2 - 逐次的凝集 3 - 通信的凝集 悪い凝集 は 4~7 4 - 手順的凝集 5 - 一時的凝集 6 - 論理的凝集 7 - 偶発的凝集 それぞれについて詳しく説明していきます。 1. 機能的凝集 単一の目的しか持たない機能を実行するモジュールです。 例)肥満度を判定する。 ~を...するという形で表すことができます。 2. 逐次的凝集 同一データを順番的に扱うモジュールです。 例)体脂肪率を計算し、値が正常であるかチェックする。 「値が正常である」ことは「体脂肪率を計算」しないと分からないので、必然的な順序が存在します。 かつ単一のデータを扱っていると逐次的凝集になります。 単一のデータとは一つのデータという意味ではなく

                                              凝集度について - Qiita
                                            • 凝集度の高い単結晶シリコンの表面上のナノ粒子のSEM画像のための分割統治法の重ね合わせ画像認識法

                                              A Superimposed Divide-and-Conquer Image Recognition Method for SEM Images of Nanoparticles on The Surface of Monocrystalline silicon with High Aggregation Degree シリコン結晶のSEM画像のナノ粒子サイズと分布情報は、通常、手動の方法でカウントされます。自動機械認識の実現は、材料科学において重要です。本論文は、シリコン結晶ナノ粒子SEM画像の自動認識と情報統計を実現するための重ね合わせ分割画像認識法を提案した。特にシリコン結晶の粒子サイズの複雑で高度に凝集した特性については、形態学的処理に基づく正確な認識ステップと輪郭統計法が与えられます。この方法は、さまざまなSEM撮影条件下で単結晶シリコン表面ナノ粒子画像を認識するための技術的な

                                                凝集度の高い単結晶シリコンの表面上のナノ粒子のSEM画像のための分割統治法の重ね合わせ画像認識法
                                              • 凝集度と結合度 – ビースラッシュの教育サービス

                                                本セミナーでは、「凝集度」と「結合度」と呼ばれるソフトウェア設計者に必要な理論を、演習を通じて実践・体得することができます。 演習は、文書・ソースコード・図面などをもとに行い、シンプルで誰でも理解できるものへ洗練化できるスキルが身に付けていただくように構成されています。 シンプルで、誰が読んでも理解しやすい設計図が書けることを目標にします。 1. 凝集度:単一目的で、わかりやすいモジュールを抽出できる。 2. 結合度:モジュール間の依存度が低いモジュールを抽出できる。 3. 構造設計:ソフトウェアを構造的にとらえ、設計図に表現できる。 4. 再構造化(リファクタリング):既存コードを起点とした、設計構造の洗練化ができる。

                                                • かまろ/Camaro on Twitter: "すごく良かった。論理的凝集から逃れられないのは機能的凝集が実現出来てないからなんだろうな。 オブジェクト指向のその前に-凝集度と結合度/Coheision-Coupling https://t.co/2iO0wh5KW6"

                                                  すごく良かった。論理的凝集から逃れられないのは機能的凝集が実現出来てないからなんだろうな。 オブジェクト指向のその前に-凝集度と結合度/Coheision-Coupling https://t.co/2iO0wh5KW6

                                                    かまろ/Camaro on Twitter: "すごく良かった。論理的凝集から逃れられないのは機能的凝集が実現出来てないからなんだろうな。 オブジェクト指向のその前に-凝集度と結合度/Coheision-Coupling https://t.co/2iO0wh5KW6"
                                                  • 凝集度 (Cohesion) - Qiita

                                                    Cohesion を python で使う場合 python で計測したい時はここにインストール方法や利用方法が書いてあるので参考にしてほしい。 Cohesion の概要 色々な数式で表現されるが、Cohesion はクラス設計で活躍するメトリクスなので、オブジェクト指向プログラミングがわからない!という人は是非使ってみてほしいメトリクスである。 ざっくりとした説明をすると、このメトリクスによってクラス変数がクラス関数でどの程度使われているかを数値で表現できるため、設計の指針として活用できるというものである。 Cohesion で Why & What & How を考える (Why) なぜこのメトリクスを使うのか? この数値を利用することで以下の判断を客観的に行う材料として使えるため。 (What) 使うことで何がわかるのか?何に使えるのか? 数値を確認することで、 クラス全体の設計が適

                                                      凝集度 (Cohesion) - Qiita
                                                    • [フロントエンド] うわっ…Componentの凝集度、低すぎ? - Qiita

                                                      [追記 2021/4/26] Storybookを導入して凝集度を向上させる記事を書きました。 0. はじめに 有名OSSのコミッターから、コピペで動かすマンまで、彼らは等しくプログラマと呼ばれます。10xプログラマという言葉があるように、同じプログラマでもその生産性には天地ほどの開きがあります。 プログラマの生産性は、1968年のSackmanらの研究以来、ソフトウェア工学でも熱い研究テーマの一つですが、未だにプログラマの生産性を測る指標は確立されていません。 一方、広木大地氏は自著「エンジニアリング組織論への招待」で、エンジニアリングを不確実性を削減する行為と定義しました。プログラミング能力を測る重要な尺度として、モジュールの凝集度があります。高い凝集度で設計しコーディングされたモジュールは、見通しがよく、再利用可能で、バグが少ない…つまり不確実性が少ない状態と言えるでしょう。 システ

                                                        [フロントエンド] うわっ…Componentの凝集度、低すぎ? - Qiita
                                                      • [Qiita投稿] CohesionでPythonの凝集度を計測する - algonote

                                                        Pythonでの凝集度の測り方 Qiitaに投稿しました Qiitaに「CohesionでPythonの凝集度を計測する」を投稿しました。Python Advent Calendar 2023 Day 18の記事です。 qiita.com 所感 LCOM4の関心はクラス設計ですが、一つずらしてモジュールにしてみても面白そうですね。 Webフレームワークでのサービス/フォームクラス<=>モデルクラスの関係はメソッド<=>変数の関係と同じなので、モジュールの凝集度が測れるとマルチモジュールの境界設計の良さを数値にできそうです。 ランキング参加中プログラミング

                                                          [Qiita投稿] CohesionでPythonの凝集度を計測する - algonote
                                                        • イケてないコードのイケてない理由が言語化できなかったときに確認する凝集度という観点 - Qiita

                                                          はじめに 以前、コードレビューをしているときに、イケてないと感じるコードを見たが、そのイケてないコードのイケてない理由が言語化できず、また、その改善方法もわからなかった。それに対してモヤモヤしながら、プリンシプル オブ プログラミングの「凝集度」に関する記載を読んだときに、その時のイケてないコードのイケてない理由がわかり、言語化することもできるようになったので、凝集度についてより理解を深めるため、深堀りしてみる。 凝集度とは プリンシプル オブ プログラミングの日本語訳と wikipedia の日本語訳は異なるが、総じて意味することは一緒であり、wikipedia は気楽に引用できるため、本記事では wikipedia の言葉で統一する。 下に記載されている方が高い凝集度で良いモジュールとされる。 偶発的凝集(Coincidental Cohesion)「最悪」 適当(無作為)に集められた

                                                            イケてないコードのイケてない理由が言語化できなかったときに確認する凝集度という観点 - Qiita
                                                          • 凝集度について - Qiita

                                                            1が最も凝集度が高く、良い設計と言える。 数字が大きくなるほど凝集度が低くなり、低凝集となる。 良し悪しをはっきり区切ると 良い凝集 は 1~3 1 - 機能的凝集 2 - 逐次的凝集 3 - 通信的凝集 悪い凝集 は 4~7 4 - 手順的凝集 5 - 一時的凝集 6 - 論理的凝集 7 - 偶発的凝集 それぞれについて詳しく説明していきます。 1. 機能的凝集 単一の目的しか持たない機能を実行するモジュールです。 例)肥満度を判定する。 ~を...するという形で表すことができます。 2. 逐次的凝集 同一データを順番的に扱うモジュールです。 例)体脂肪率を計算し、値が正常であるかチェックする。 「値が正常である」ことは「体脂肪率を計算」しないと分からないので、必然的な順序が存在します。 かつ単一のデータを扱っていると逐次的凝集になります。 単一のデータとは一つのデータという意味ではなく

                                                              凝集度について - Qiita
                                                            • 実践リファクタリングで凝集度と結合度について学んだ - WEB+DB PRESS Vol. 127 - このすみノート

                                                              『WEB+DB PRESS Vol. 127』を読みました。 現在は第2特集の作って学ぶPhoenixを読んでいる途中ですが、第1特集の実践リファクタリングは読み終わったので、メモがてら感想まとめます。 WEB+DB PRESS Vol.127 技術評論社Amazon 凝集度 関数の役割の少なさを表す指標です。 1~7のレベルがあって、機能的凝集に近づくほど凝集していると判断します。 偶発的凝集: 無作為に処理が集められた関数 論理的凝集: 関連のない処理をフラグで切り替える関数 時間的凝集: 機能的に関連はないが同じ時間に実行する処理をまとめた関数 手続き的凝集: 機能的に関連はないが同じ時間で実行順序に意味がある処理をまとめた関数 通信的凝集: 機能的に関連はないが同じ時間で同じ値に対して処理をする関数 逐次的凝集: 機能的に関連はないが関連する値を受け渡して処理をする関数 機能的凝集

                                                                実践リファクタリングで凝集度と結合度について学んだ - WEB+DB PRESS Vol. 127 - このすみノート
                                                              • 『オブジェクト指向のその前に-凝集度と結合度/Coheision-Coupling』へのコメント

                                                                ブックマークしました ここにツイート内容が記載されます https://b.hatena.ne.jp/URLはspanで囲んでください Twitterで共有

                                                                  『オブジェクト指向のその前に-凝集度と結合度/Coheision-Coupling』へのコメント
                                                                • 『継承はできるだけ避ける。名付けと凝集度「CODE COMPLETE」まとめ - アルパカログ』へのコメント

                                                                  ブックマークしました ここにツイート内容が記載されます https://b.hatena.ne.jp/URLはspanで囲んでください Twitterで共有

                                                                    『継承はできるだけ避ける。名付けと凝集度「CODE COMPLETE」まとめ - アルパカログ』へのコメント
                                                                  1