並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 15 件 / 15件

新着順 人気順

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

  • オブジェクト指向のその前に-凝集度と結合度/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

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

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

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

                                  結合度と凝集度!! - Qiita
                                1