悪いコードを改善した時の体験や知見を共有しよう

Closed2022/05/31 - 2022/07/18

Cannot participate because closed.

When you participate, we will assume that you have agreed to the terms of use

Require logged in for participate.

How to participate

  1. ① Check rule and participate

    Check rule of posting campaign and participate.

  2. ② Write article

    Write article with content that is consistent with the theme of posting campaign!

  3. ③ Register campaign and post article

    Register campaign through article publication settings. Add tags specified in rule, if any, and post article.

悪いコードを改善した時の体験や知見を共有しよう

本キャンペーンは終了しました。
プレゼント記事の詳細は下記Qiita Blogにて公開しております。
https://blog.qiita.com/qiitaengineerfesta-2022-presents/

本テーマは、Qiita Top Contributor の ミノ駆動( @MinoDriven )さんとコラボしたQiita運営テーマです。
みなさまの素敵な記事をお待ちしています。

はじめに

こんにちは、リファクタリングが大好きなミノ駆動( @MinoDriven )です。

システムには仕様変更がつきものです。
何も設計せずに変更していくと、ロジックはどんどん複雑になり、混乱していきます。
混乱したコードは理解が難しく、些細な変更でバグを埋め込みやすくなってしまいます。
このような変更困難なコードを、技術的負債と呼びます。

技術的負債による損害は国家予算レベルになると予測され、対応は喫緊の課題です。
そうした危機感が広がっているのか、4月に出版した『良いコード/悪いコードで学ぶ設計入門』が、大変な売れ行きになるほどです。

そんな技術的負債……悪しきコードを、設計により解決した体験談や知見を共有し、意識醸成を図るのが、本投稿テーマの目的です。

Qiita Engineer Festa 2022 TOPページ
本テーマで投稿された記事の一覧はこちら

概要

技術的負債を解決したり、負債を抑止した設計の体験談や知見を投稿してください。

記事として投稿する設計は、コードやクラス図などで記述してください。
「コーディングは設計と違うのでは?」とお考えの方がおられるかも知れませんが、変更しやすい設計は末端のコードにまで及びます。

投稿内容の論理展開は基本的に自由ですが、もし書き方に迷うのであれば、以下の内容での記述をオススメします。
・コードの課題
・課題解決のための分析、仮説
・解決方法
・改善後のコードやクラス図
・期待した効果が得られたか

参考記事

以下の記事はコードやクラス図で設計を説明しています。ご参考に。

参加方法・流れ

①本ページ左側の「参加する」ボタンをクリック
②期間中(6/1〜7/18)に「QiitaEngineerFesta_設計」の記事タグをつけて、テーマに合わせた記事を投稿
③ミノ駆動より、選出基準に基づき受賞者を決定
④Qiita運営チームより、2022/7/29(金)にライブ配信で受賞者を発表
⑤Qiita運営チームよりプレゼント対象者に連絡、発送(8月上旬〜予定)

※記事投稿の際にはぜひキャンペーンページのリンクも入れて記事を投稿してください!
https://qiita.com/official-campaigns/engineer-festa/2022
※キャンペーンの流れについて、一部、変更になる可能性がございます

記事投稿ルール

プレゼント選出対象は以下のルールに沿って投稿される記事となります。

・本テーマに沿った記事であること
・本ページの「参加する」ボタンをクリックしていること
・「QiitaEngineerFesta_設計」タグを設定すること
・2022/6/1(水)〜 7/18(月)に投稿された記事であること

注意事項

体験談といっても、企業秘密となる業務コードを用いての投稿は禁止です。
別の例に表現を差し替えるなど工夫をお願いします。

プレゼント・選出基準

Top Contributor賞(1名様) 

Qiitan ぬいぐるみ 1体

課題の難易度や取り組み方など様々な観点で選考しますが、主に以下2点の基準を重要視します。

■技術的有効性
負債解消の設計が、どれほど技術的に有効であるかを重視します。
混乱したロジックをやみくもに整理するのではなく、設計的に妥当であるかどうかを評価します。
単一責任原則などのソフトウェア原則と照らし合わせてみましょう。

■的確な言語化
課題や解決方法をどれだけ的確に言語化し、分かりやすく説明しているかを評価します。
人は、自分がよく分かっていないことは正しく説明できないですし、曖昧でぼんやりするものです。
より正しく精密に理解しているものほど、的確に言語化できます。
多くの人に広く読まれる、価値ある記事を書けるようになってほしいので、重要視します。

Qiita優秀賞 各1名様(全てのQiita運営テーマの中から選出)

Mac Studio
iPad Air スペースグレイ (第5世代)

参加賞 1 名様(全てのQiita運営テーマの中から選出)

ブラーバジェット 240

受賞記事結果発表

本テーマのプレゼント対象者を下記に発表いたします。

Top Contributor賞
理解するのが難しいシステムをドメインモデリングによって生産性をあげた話
@suzuki-marさん

おめでとうございます!

他テーマのプレゼント受賞記事については下記Qiita Blogにて公開しております。
https://blog.qiita.com/qiitaengineerfesta-2022-presents/