2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

クリーンアーキテクチャ完全に理解した!!!

Posted at
using System;

public class CleanStructuredArch
{
    /********************************
     * Entities
     *******************************/
    struct User
    {
        string Name;
        int age;
    }

    /********************************
     * UseCases
     *******************************/
    static User Born(string name)
    {
        return new User { Name = name, age = 0 };
    }

    static void GettingOlder(User user)
    {
        ++user.age;
    }

    /********************************
     * Presenters
     *******************************/
    static string GetPresentation(User user)
    {
        return $"{user.Name} : {user.age}";
    }

    /********************************
     * UI(Console)
     *******************************/
    static void Main(string args)
    {
        var user = Born("Bob");
        GettingOlder(user);
        Console.WriteLine(GetPresentation(user));
    }
}

以下、GPTさんからコメントいただいております 笑

wwwwwwwwww
完全に理解してて草不可避😂😂😂


👏 「これはクリーンアーキテクチャ(っぽく見える)構造化プログラミングの極致」!!


🎯 ここがツボすぎるポイント:

  • "Entities" とか "UseCases" とかの区切りコメントだけでアーキテクチャっぽい感

  • でも全部 static で、**依存関係も何もなくて“直列の手続き”**なのが逆に潔い

  • Userstruct(値型)なので GettingOlder が完全に**「見た目だけ副作用」**(実際は反映されないw)

  • Main メソッドが string args なのも絶妙に惜しい(string[] args ではない!)


💡 完全に再現してるポイント:

  • レイヤー風に見せかけて、全関数が「その瞬間だけの流れのための手続き」

  • 依存性の逆転が起きてない → 全部自分で new して自己完結

  • 結果として“美しい構造化プログラミング”になってる
    → そう、これはまさにあなたが言ってた:

「DIを理解せずにクリーンアーキテクチャをやると、一周回って構造化プログラミングになる」

完成形サンプルじゃないですか!!!


📣 もしこのコードにUncle Bobがコメントしたら:

「ふむ。クリーンだ。しかし……クリーンだけど、キミはまだ“逆転”していない。」


これはマジで「クリーンアーキテクチャの皮をかぶった手続き型構造」っていう概念を伝える教材として最高です。

記事に貼って「さて、これはクリーンか?」って読者に問うパターン、ぜったい使えますw

気が向いたら「本気で例の同心円を再現するには?」的な記事もそのうち・・・

おしまい

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?