並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 37 件 / 37件

新着順 人気順

クリーンアーキテクチの検索結果1 - 37 件 / 37件

  • 良いコードとは何か - エンジニア新卒研修 スライド公開|CyberZ Developer

    CyberZ CTO室のメンバーの森 (@at_sushi_at) です。 先日、株式会社サイバーエージェントの2021年度 エンジニア新卒研修でコードの品質に関する講義を行いました。 そこで話した内容とスライドを完全公開します。 45分の内容のため、かなり長いですが、個人的にぜひ一読して欲しい内容になっています。 はじめに こんにちは、森 篤史と言います。2019年度入社で今年で3年目になります。株式会社CyberZのOPENREC.tvというプロダクトでAndroidアプリチームのリーダをやっています。 最近はプログラムを書く仕事以外に、次世代マネジメント室という全社横断組織でDevelopers Blogの改善プロジェクトを実行したり、CyberZ CTO室で組織活性化に取り組んでいます。 あと、2019年度の未踏スーパークリエータにも認定されました。 メインの仕事としては、入社して

      良いコードとは何か - エンジニア新卒研修 スライド公開|CyberZ Developer
    • クリーンアーキテクチャ完全に理解した

      clean_architecture.md 2020/5/31追記: 自分用のメモに書いていたつもりだったのですが、たくさんのスターを頂けてとても嬉しいです。 と同時に、書きかけで中途半端な状態のドキュメントをご覧いただくことになっており、大変心苦しく思っています。 このドキュメントを完成させるために、今後以下のような更新を予定しています。 TODO部分を埋める 書籍を基にした理論・原則パートと、実装例パートを分割 現在は4層のレイヤそれぞれごとに原則の確認→実装時の課題リスト→実装例という構成ですが、同じリポジトリへの言及箇所がバラバラになってしまう問題がありました。更新後は、実装時の課題リストを全て洗い出した後にまとめて実装を確認する構成とする予定です。 2021/1/22追記: パートの分割と、クリーンアーキテクチャという概念の定義について追記を行いました。大部分の実装例パートを中心

        クリーンアーキテクチャ完全に理解した
      • 世界一わかりやすいClean Architecture - nuits.jp blog

        本項は「C# Tokyo オンライン「世界一わかりやすいClean Architecture」他」による発表の登壇原稿となります。過去に発表した.NET版の記事はこちらにアーカイブしています。 本稿のサンプルコード・PPTはこちらで公開しています。 「CC BY-SA 4.0」で公開していますので、気に入っていただけたら営利目的含め、ライセンスの範囲で自由に利用していただいて問題ありません。 github.com また動画を以下で配信しています。よろしければご覧ください。 世界一わかりやすいClean Architecture はじめに まず初めに、クリーンアーキテクチャの誤解されがちな二つのことについてお話させていただきます。 その上で、クリーンアーキテクチャの本質とは何か?押さえておくべき、本当に重要だと考えている三つの事について、お話しします。 注意事項 さて本題に入る前に、少し注意

          世界一わかりやすいClean Architecture - nuits.jp blog
        • 5年間 Laravel を使って辿り着いた,全然頑張らない「なんちゃってクリーンアーキテクチャ」という落としどころ

          この記事は Laravel Advent Calendar 2020 - Qiita 最終日の記事です。 TL;DR DDD や "真の" クリーンアーキテクチャは, Web 業界における大抵の現場ではオーバースペックだし,導入しても全員がついてこれるとは限らない app/UseCases ディレクトリだけ切って,ドメインごとに単一責務なクラスを置くと使いやすいよ ActiveRecord 指向のフレームワークで Repository パターンを無理に導入すると死ぬので, UseCase で Eloquent Model の機能を使うことを恐れるな はじめに Zenn では初投稿です。日本の Laravel コミュニティではもうお馴染みのようで実はあまり顔を出していない(?) @mpyw と申します。オンラインサロンの火付け役となった Synapse が最初の仕事でしたが,就職後すぐ会社が

            5年間 Laravel を使って辿り着いた,全然頑張らない「なんちゃってクリーンアーキテクチャ」という落としどころ
          • ソースコードで理解するクリーンアーキテクチャ - Sansan Tech Blog

            はじめに こんにちは。プロダクト開発部の荒川です。 これまで最年少を謳っていましたが、ついに新卒の子にその座を奪われてしまいました。とても残念です。 さて今回のテーマは、皆さんお馴染みクリーンアーキテクチャ(Clean Architecture)です。 クリーンアーキテクチャは一時期流行し、その流れに乗って私もある程度の理解はしていました。 しかし、それはあくまでも感覚的な理解であって、他人に説明や良さを語れるレベルまで自分の中で落としこめていませんでした。 そこでより具体性のあるソースコードを読み込むことで、アーキテクチャへの理解を深めたいと思います。 クリーンアーキテクチャとは? クリーンアーキテクチャの定義や解説に関しては、ネット上にいくらでも公開されているので、このエントリでは詳しく話しません。 私自身が勉強に使った書籍やサイトを記事末尾の「参照」に掲載しているので、そちらを参考に

              ソースコードで理解するクリーンアーキテクチャ - Sansan Tech Blog
            • クリーンアーキわからんかった人のためのクリーンじゃないけどクリーンみたいなオニオンに見せかけたSOLIDの話

              依存関係逆転則含む諸原則に苦しめられた方々,いかがお過ごしでしょうか. 今回はアプリ設計の話です.と言っても,前回「クリーンアーキわからんかった人のためのオニオンアーキテクチャ」というZenn記事を書いて,反響が大きかったのでリメイクしたいなという気持ちになり執筆することにしました. 前回同様,調べていく上で誤解していた部分や理解しにくかった部分を語った上で,オニオンアーキテクチャという,クリーンじゃないけどクリーンみたいな玉ねぎについて紹介するのですが,今回はわかりやすい図解であったり,実際にどのような実装をしていくべきなのかを話の話題として加えていければ良いかな?って思っています. これは前回の記事である「クリーンアーキわからんかった人のためのオニオンアーキテクチャ」の記事の裏話的な話を一つさせてください. 今年の11月初め頃に,サポーターズという企業の学生が登壇できるLT会があり,私

                クリーンアーキわからんかった人のためのクリーンじゃないけどクリーンみたいなオニオンに見せかけたSOLIDの話
              • 実践クリーンアーキテクチャ【プログラミング】

                音ズレ修正 Ver. → https://www.youtube.com/watch?v=BvzjpAe3d4g 本編 → 7:08 ~ JJUC CCC 2019 Spring の講演「「先行開発!クリーンアーキテクチャ -- ゼロから始める新規開発」の再演です。 講演の概要は下記URLのイベントページをご覧ください。 # URL イベントページ: https://nrs-seminar.connpass.com/event/174000/ Togetter: https://togetter.com/li/1502339 文字起こし(ログミーTechさま): https://logmi.jp/tech/articles/323233 スライド: https://speakerdeck.com/nrslib/clean-architecture-with-java github: h

                  実践クリーンアーキテクチャ【プログラミング】
                • マイクロサービスにクリーンアーキテクチャを採用する上で考えたこと | メルカリエンジニアリング

                  Merpay Advent Calendar 2019 の19日目は、Backendエンジニアチームの @toshinao がお送りします。 新しくマイクロサービスを立ち上げる機会があり、クリーンアーキテクチャをベースにしました。クリーンアーキテクチャはバックエンド・フロントエンド・アプリなど様々な場所で採用されています。ただ、確固たる方法というのは無く、みな試行錯誤しているのでは無いでしょうか。この記事では、クリーンアーキテクチャを取り入れる上で考えたことを紹介したいと思います。 マイクロサービスを作ったことがない人や、今までいくつか作ってきたけどより良い設計について考えている人の助けになれば幸いです。 はじめに メルペイのバックエンドは主にGoとGoogle Cloud Platform(GCP)で開発を行っていますが、各マイクロサービスをどう実装していくかは概ね各チームに委ねられてい

                    マイクロサービスにクリーンアーキテクチャを採用する上で考えたこと | メルカリエンジニアリング
                  • クリーンアーキテクチャの功罪

                    クリーンアーキテクチャというと設計における銀の弾丸のように扱われていて、クリーンアーキテクチャを導入するという記事をよく見ます。しかし自分の経験だとクリーンアーキテクチャで書かれているのにもかかわらず開発効率が落ちているという事が多く、いつでも使っておけばいいというものではないと思っています。 最近目にしたクリーンアーキテクチャに対する批判 本筋ではないので詳細は省きますが、あるとき[1][2]にUncle Bobの著書であるCleanシリーズへの批判をXで見ました。 ここで一番載せたかったものが今見つけられないのですが、以下のようなポストがありました。 書籍クリーンアーキテクチャに書いてある内容を抜きにして起こった現象だけを見るとマイナスの方が多い このポストが自分の感じていることを端的に表現できているように感じました。書籍クリーンアーキテクチャの内容を悪いと思いませんが、その影響により

                      クリーンアーキテクチャの功罪
                    • クリーンアーキテクチャなんてものはない(クリーンアーキテクチャーの読み方)

                      すでに何人かの人がクリーンアーキテクチャなんてないよ、って話はしていてイマサラだと思うんですが。 あえてブログの記事に残そうかなと思って書いてみます。 最近、改めてクリーンアーキテクチャ本を読んだり、原文を読んだり、 ここ数ヶ月ツイート色々な人のを観測したり社内で話したりしていて 考えがまとまってきたので、自分の言葉で整理してみたくなった。 「へー、クリーンアーキテクチャっていうソフトウェアアーキテクチャがあるんだー」という微妙な誤解?をちょっとでも減らす一助になればという感じです。あと、本の読み進め方のヒントにもなるかも 先に結論 クリーンアーキテクチャというのはアンクルボブの書いた本。 ソフトウェアアーキテクチャのことではない。 the クリーンアーキテクチャというブログ記事はただのソフトウェアアーキテクチャの例(そして本の一部分)だが、独り歩きしている クリーンアーキテクチャというソ

                        クリーンアーキテクチャなんてものはない(クリーンアーキテクチャーの読み方)
                      • 実践クリーンアーキテクチャ - 複雑化した大規模ECサイトをモダナイズしたモノタロウの事例 - エンジニアHub|Webエンジニアのキャリアを考える!

                        実践クリーンアーキテクチャ - 複雑化した大規模ECサイトをモダナイズしたモノタロウの事例 クリーンアーキテクチャのメリットとは?またいかにして導入するか?難解なイメージのあるクリーンアーキテクチャの概要を採用事例に学びます。今回、取材したのは工業用間接資材オンラインストアの「モノタロウ」。サービスの開発を続けていくにつれ、同社のシステムは複雑化、肥大化していき、様々な課題が生じたそうです。こうした課題に対応すべく、システムのモダナイゼーションに取り組む際、取り入れたのは、クリーンアーキテクチャでした。同アーキテクチャをどのように実装したのか、モノタロウのエンジニア3人に聞きました。 受け入れテストを自動化し、システムの正常動作を保証 ユニットテスト導入の秘訣は「テストを書くハードルを下げる」こと クリーンアーキテクチャ化は、“幹”の処理から手をつける クリーンアーキテクチャを全社的に展開

                          実践クリーンアーキテクチャ - 複雑化した大規模ECサイトをモダナイズしたモノタロウの事例 - エンジニアHub|Webエンジニアのキャリアを考える!
                        • Go(Echo), Gorm, Mysql, Docker, Swaggerで、クリーンアーキテクチャなAPIサーバーを作ったメモ

                          自分の本業は10年物のMVCプロジェクトなのでClean Architecture忘れがちです。 なので、慣れてるGoでパッとClean Architectureの復習を行ってみました(2年前にPythonでやった事はあるんだけど・・・)。 このスクラップでは単語とか作りどころとかを整理するのですが、また後でRustで作ってそっちは前例がほぼないので記事にします。 Go + Clean Architectureは結構記事あるんですが、Swaggerつけたしたのと自分なりに納得いくディレクトリ構成にオリジナリティを出しました。ちなみにgo-swagger使うと本当は凄く楽に作れるのですが(ついでにフロントはopenapi-generator)、今回はClean Architectureを理解するのが主目的なので、サーバーは手書きでopenapiのyamlも1から自作しました。 ↑ postに

                            Go(Echo), Gorm, Mysql, Docker, Swaggerで、クリーンアーキテクチャなAPIサーバーを作ったメモ
                          • スタートアップにクリーンアーキテクチャを適用したが、技術的負債が塵積った件 〜開発合宿で技術的負債を粉砕します〜 - ANDPAD Tech Blog

                            こんにちは。こんばんは。おはようございます。 アンドパッドで現在はバックエンドの方のエンジニアをやっている原田です。 アンドパッドには2021年6月にJOINしまして、現在までANDPADボードの開発に携わっています。 ANDPAD施工管理が比較的長期間の工事をターゲットにしているのに対して ANDPADボードは1日〜数日の間に短期間の工事や施工を行う際のスケジュール管理を行えるサービスです。 andpad.jp 今回は入社3ヶ月目というきりの良いタイミングで今まで行ってきたことを振り返りつつ、直近行った技術的負債を軽減するための「開発合宿」について書いていきます。 一応最初に書いておきますが、リファクタリングに関するチートスキルはないのでバーンとやってドーンと解決みたいなド派手な解決ではなく地道な改修作業をちまちま行いましたという内容です。 入社してからやってきたこと ANDPADボード

                              スタートアップにクリーンアーキテクチャを適用したが、技術的負債が塵積った件 〜開発合宿で技術的負債を粉砕します〜 - ANDPAD Tech Blog
                            • Clean Architectureにおいてバリデーションはどこでやるべきか

                              クリーンアーキテクチャで web アプリケーションを作る際に、バリデーションはどのレイヤの責務なのか?と悩むことが多いため、それについての考察を行ってみる。 あと、バリデーションについて書いてたはずがドメインロジックとアプリケーションロジックの違いについても結構言及せざるを得ない感じになったので、そのへんの話もしてみる。 結論から言うと バリデーションはどのレイヤの責務なのか?という問い自体が間違いであり、レイヤごとにそのレイヤの責務となるバリデーションを行うべき、というのが今のところの結論。 バリデーションという単語は意味があまりに広い。「意図していないもの/ことを防ぐ」ことはすべてバリデーションと呼ばれている節がある。そのことにより、バリデーションというのはあたかも唯一つの責務であるかのように錯覚しがちだが、そうではない。クリーンアーキテクチャではレイヤによって責務を分担しているが、同

                                Clean Architectureにおいてバリデーションはどこでやるべきか
                              • Goのクリーンアーキテクチャで参考になりそうなもの

                                はじめに Goでクリーンアーキテクチャっぽく実装したいモチベーションがあり、そのためにはコードを読むのが一番だと思ったので、参考にしていったリポジトリをまとめてみます。 観点としては スター数が比較的多いもの(400以上) READMEにアーキティクチャについての考えが明記されているもの を中心にピックアップしました。 Goの実装で参考にしたリポジトリ Goとは関係ないかもしれないが参考にしたリポジトリ おわりに 何かの参考になれば幸いです。

                                  Goのクリーンアーキテクチャで参考になりそうなもの
                                • Javaでクリーンアーキテクチャする方法 Part.1:ヘキサゴナルアーキテクチャ

                                  開発者にはしばしば必要なものがないという状況が訪れます。デベロッパーエバンジェリストの成瀬氏が、実際に10名弱のチームで新規プロダクトを作る際にクリーンアーキテクチャの構成を実践してみた話をしました。 Part.1はヘキサゴナルアーキテクチャについて。動画はこちら。 新規開発では理想どおりにならないことはよくある 成瀬允宣氏:さぁ、じゃあやっていきましょうか。(コメントで)「Javaより時代はKotlin」。そう、Kotlinね、そうですね。今回はアーキテクチャの話なので、たぶんKotlinとかでも使えると思います。 (コメントで「設計の講座助かります!」)設計の講座はなかなかないですからね。あと、今日最後のほうで「次何やろうか?」って話もしようかなと思っているので、もしよければ、そのときに僕の相談に乗ってください。 よし、じゃあいきましょう。「先行開発!Javaでクリーンアーキテクチャ」

                                    Javaでクリーンアーキテクチャする方法 Part.1:ヘキサゴナルアーキテクチャ
                                  • Clean Architecture on Frontend (翻訳) - Qiita

                                    こちらはDEV Communityに2021年9月2日に投稿され、現在反響を巻き起こしているフロントエンドにおけるクリーンアーキテクチャの実装についてのAlexさんの記事になります(原文はこちら)(twitterにて翻訳掲載許可取得済み)。 かなり大ボリュームな超大作記事となっておりますが、Reactなどを使ったフロントエンドプロジェクトのディレクトリー構成やファイルごとの責務の切り分けのベストプラクティスなどの決定版といえるものがまだまだ出てこない中で、個人的にまさに待ち侘びていたような内容の記事かと思い、是非日本のフロントエンドコミュニティでも知見が共有されればと思いました。 それでは以下、本文です。 *翻訳は大部分をDeepL翻訳によって行っていますが、適宜修正してあります。 少し前に、私はフロントエンドにおけるクリーンアーキテクチャについての講演を行いました。この記事では、その講演

                                      Clean Architecture on Frontend (翻訳) - Qiita
                                    • microCMSのWebフロントエンドにクリーンアーキテクチャを採用した話【前編】

                                      はじめにmicroCMSの大西です。microCMSには2022年の5月に入社しました。普段は開発本部長として組織的な業務、エンジニアのサポート、開発全体の大まかなタスクの方向性を決めといった業務を行なっています。 microCMSでは昨年中盤以降にWebフロントエンドの設計パターンを刷新しました。採用した設計パターンはクリーンアーキテクチャです。 2回に分けて大西と森茂(フロントエンドテックリード)がmicroCMSのWebフロントエンドの設計パターンについて紹介します。 前提としてmicroCMSのフロントエンドはReact、状態管理にはuseState/useContextを使用しています。APIのキャッシュにReact Query(TanStack Query)を使用しています。比較的素朴な設計になっています。 背景と課題microCMSはサービス開始から数年が経過しており、バック

                                        microCMSのWebフロントエンドにクリーンアーキテクチャを採用した話【前編】
                                      • リーダブルアーキテクチャ - usecaseにおける時間軸と抽象度の統一 - Qiita

                                        はじめに Clean Architectureやレイヤードアーキテクチャでは、どのようにレイヤーを定義するかついては言及されています。 そのような中usecase(レイヤードアーキテクチャではApplication層)をどのように実装するべきかについての議論は少ないです。 しかし私はリーダブルなアーキテクチャを実現するために、一番大切なことはusecaseを適切に実装することであると考えています。 そこでusecaseを実装する上で起こりがちな抽象度の問題を例に、リーダブルなアーキテクチャを考えいていきたいと思います。 サンプル 1:1のチャットアプリでUserとWorkerが存在して会話ができるアプリを例にあげます。 以下の図では青い背景はinfraの関数実行、緑色の背景はdomainの関数実行、赤い背景はusecaseの関数実行を示しています。 usecaseのCreateChat関数

                                          リーダブルアーキテクチャ - usecaseにおける時間軸と抽象度の統一 - Qiita
                                        • WEBフロントエンドにおけるソフトウェア設計の考察

                                          https://fortee.jp/object-oriented-conference-2020/speaker/proposal/view/b06110e6-717e-4cb2-97c3-cd8d53693378 の初版スライドです 当日の発表版は https://speakerdeck.com/tooppoo/consideration-of-software-design-in-web-front-end で公開しています。

                                            WEBフロントエンドにおけるソフトウェア設計の考察
                                          • Go言語によるクリーンアーキテクチャの実装例紹介

                                            はじめに CastingONEでバックエンドエンジニアをやっている清水です。 この記事ではクリーンアーキテクチャについて学んだけど具体的にどのように実装すれば良いのかという悩みがあったので実装例をまとめてみた記事になります。 クリーンアーキテクチャで実装されたサンプル実装のうちGitHubのスター数が多いリポジトリをピックアップして、設計内容を紹介していきます。 具体的にどこにどんな実装をするべきなのかも含めて紹介していきます。 処理を一部省略して紹介するため実際の処理内容を確認したい場合はGitHubでご確認お願いします。 クリーンアーキテクチャとは クリーンアーキテクチャは、ソフトウェア設計の原則を適用して、依存性の方向性を逆転させ、ビジネスロジックから詳細(フレームワークやデータベース)を分離するアーキテクチャパターンです。これにより、テストしやすく、メンテナンス性が高く、柔軟性のあ

                                              Go言語によるクリーンアーキテクチャの実装例紹介
                                            • 弁護士ドットコムライブラリーのフロントエンドのアーキテクチャ(Next.js + TypeScript) - パンダのプログラミングブログ

                                              弁護士ドットコムライブラリーのフロントエンドのアーキテクチャを紹介します この記事は弁護士ドットコム Advent Calendar 2020、2日目の記事です。2020年12月に執筆された記事です。 私は弁護士ドットコムライブラリーというサービスを開発しています。これは法律書籍をネットで読める弁護士向けのサブスクリプションサービスです。 フロントエンドの採用技術はNext.js + TypeScriptで、要件定義から設計、実装は私が担当し、現在も運用しています。 この記事では、2020年5月にリリースしてから半年間、Next.jsで上記サービスを運用した知見の中から、フロントエンドでのアーキテクチャについてご紹介します。 弁護士ドットコムライブラリーの特徴は以下の通りです。 画面数は10画面ほどの中規模アプリケーション(OOUIの考え方を取り入れたら画面数が減りました) 基本的にバック

                                                弁護士ドットコムライブラリーのフロントエンドのアーキテクチャ(Next.js + TypeScript) - パンダのプログラミングブログ
                                              • クリーンアーキテクチャの各概念を定食屋で表現する - LIFULL Creators Blog

                                                プロダクトエンジニアリング部のカマトです。 普段はマーケティング・エンジニアとして、LIFULL HOME'SでLINEやメールを活用したサービスの開発に従事しています。 今回は業務でシステムの刷新を行う中で、アーキテクトにクリーンアーキテクチャを採用し初めて経験しましたのでこちらについてお話しをさせていただきます。 新しいアーキテクトに触れるときは、このレイヤーは何を担当しどのような概念でどのような機能を持たせればいいのか?と理解するをするまでいつも苦戦するのですが、クリーンアーキテクチャは特に登場人物が多く今まで以上に大変でした。 このクリーンアーキテクチャの処理の流れを日常のものに置き換えれば、別な視点で理解が深まるのではと考え、各レイヤーの概念を定食屋のフローに落とし込んで表現をし振り返りをしてみようと思います。 参考にしたイメージ図に沿ってのレイヤーと概念ですので、これにそってな

                                                  クリーンアーキテクチャの各概念を定食屋で表現する - LIFULL Creators Blog
                                                • クリーンアーキテクチャーでスマホアプリ開発した感想(勉強会用) - Qiita

                                                  はじめに 昨年からの大きな案件でClean Architectureを使った Platforms: Android/iOS Languages: Kotlin/Swift はじめに 勉強会向け資料なので、クリーンアーキテクチャー自体の解説もある程度含まれます。 逆に、時間の都合上、歴史背景や細かい部分までは行き届いていません。 もし間違いがあればご指摘ください。 オススメ書籍 アーキテクチャーを選定する目的 求められるシステムを構築・保守するために必要な人材を最小限に抑えるため 「アーキテクチャーは上位レベル、設計は下位レベル」のように区別されることがあるが、両者の間に明確な境界はなく、上位から下位に至るまで、決定の連続である スマホアプリ開発で代表的なアーキテクチャー AndroidはMVVM(Googleが推奨) iOSはMVC(AppleがCocoa applicationに採用)

                                                    クリーンアーキテクチャーでスマホアプリ開発した感想(勉強会用) - Qiita
                                                  • RustでClean Architectureを実装してみる

                                                    はじめに RustでWebアプリケーションのGraphQLバックエンドを実装してみました。その中で、できるだけClean Architectureに沿うように実装してみたので、得られた知見を公開してみたいと思います。 資料に基づきできるだけ正確な記述を目指していますが、誤りもあるかもしれません。また実装から少し時間を空けて執筆しているので、忘れている部分も多く不正確なことが書いてあるかもしれません。 Clean Architectureとは 以下のブログでRobert C. Martin(通称Uncle Bob)によって提唱されたアーキテクチャです。 その後本人により書籍も出版されました。日本語にも翻訳されています。 歴史について簡単に 多層アーキテクチャ (Multitier architecture) というものはかなり昔から考えられていたようです。初出についてはよくわからないのですが

                                                      RustでClean Architectureを実装してみる
                                                    • クリーンアーキテクチャのUsecaseはなぜControllerへ値を返すのではなくOutput PortとしてPresenterを呼び出すのか - Runner in the High

                                                      何を言っているのかと言うと、みんな大好きクリーンアーキテクチャの右下に図示されているFlow of Controlのこと。 黒線が引かれているということは、つまりUsecaseの中でOutput Portのインターフェイスを持つPresenterの関数なりが最終的に実行されるということである。 ここで湧き上がってくる疑念は「UsecaseがPresenterを呼び出さなくてもControllerに返り値とかで値を返して、Controller経由でPresenterに渡して実行しても同じなんじゃないの?」である。つまりOutput Portというインターフェイスそのものを撤廃してControllerにPresenterを使わせるアイデアである。たしかに、仮にこの方針で行ったとしても依存の方向が壊されることはない。 Software Engineeringでは同様の質問がかなり盛り上がっている

                                                        クリーンアーキテクチャのUsecaseはなぜControllerへ値を返すのではなくOutput PortとしてPresenterを呼び出すのか - Runner in the High
                                                      • [PHP Conference 2019]思想と理想の果てに――クリーンアーキテクチャのWEBフレームワークを作ろう

                                                        [PHP Conference 2019]思想と理想の果てに――クリーンアーキテクチャのWEBフレームワークを作ろう 2019.12.01 Programming スライド 動画 みなさんの反応 https://togetter.com/li/1437472 [PHP Conference Japan 2019]「思想と理想の果てに――クリーンアーキテクチャのWEBフレームワークを作ろう」のまとめ(togetter) 各種リポジトリと概要 cfg https://github.com/nrslib/cfg クラスファイルを生成するライブラリです。 クラスファイルをパースする機能も少し追加されています。 clarc-php-core https://github.com/nrslib/clarc-php-core クリーンアーキテクチャの構成例に従って、必要になるオブジェクトを生成する処理で

                                                          [PHP Conference 2019]思想と理想の果てに――クリーンアーキテクチャのWEBフレームワークを作ろう
                                                        • よくわかるSOLID原則5: D(依存性逆転の原則)|erukiti

                                                          ソフトウェアエンジニアが知っているべきSOLID原則についての記事です。SOLID原則は、5つの原則の頭文字を並べた言葉で、S・O・L・I・Dそれぞれの原則について、5回に分けて説明する記事です。 1) Single Responsibility Principle:単一責任の原則 2) Open/closed principle:オープン/クロースドの原則 3) Liskov substitution principle:リスコフの置換原則 4) Interface segregation principle:インターフェース分離の原則 5) Dependency inversion principle:依存性逆転の原則 今回は5番目の依存性逆転の原則です。 なぜソフトウェアエンジニアがSOLID原則について知っていなければいけないかは最初の記事をご覧ください。 依存性逆転の原則ものすご

                                                            よくわかるSOLID原則5: D(依存性逆転の原則)|erukiti
                                                          • Javaでクリーンアーキテクチャする方法 Part.2:クリーンアーキテクチャを理解する

                                                            開発者にはしばしば必要なものがないという状況が訪れます。デベロッパーエバンジェリストの成瀬氏が、実際に10名弱のチームで新規プロダクトを作る際にクリーンアーキテクチャの構成を実践してみた話をしました。 Part.2はクリーンアーキテクチャについて。動画はこちら。 ドメインにおける問題を解決に導くのがアプリケーション 成瀬允宣氏:順番にクリーンアーキテクチャの図を説明していきます。まずEnterprise Business Rules。図の中ではEntitiesって書かれているものですね。 もしかしたらドメイン駆動設計を調べた方がいるかもしれないですけど、ER図とかのEntityと意味は一緒なんですけど、違うものです。クリーンアーキテクチャで言うEntityは何かというと、ビジネスルールをカプセル化したもの。いわゆるドメインオブジェクトがEntityと、僕は認識しています。 ドメインオブジェ

                                                              Javaでクリーンアーキテクチャする方法 Part.2:クリーンアーキテクチャを理解する
                                                            • クリーンアーキテクチャについて学ぶ

                                                              はじめに 都内でフロントエンド開発をしております。 最近 BFF にクリーンアーキテクチャの概念を盛り込み始めたため、そのアウトプットとして本記事を書きました。 クリーンアーキテクチャは既に多くの記事が存在しますが、私なりに噛み砕いて記述してるので誰かの手助けになれば幸いです 🙏 昨今のアプリケーションの課題 アプリケーションは常に新しい要求が求められ、新規機能追加や UI リニューアルなどをリアルタイムに行っていくことが必須です。 しかし、将来性を考慮せずリリースにフォーカスした実装はシステムの複雑性を高めることに繋がり、大きなバグにつながるかもしれません。 バグに繋がらなくともシステムの拡張性を低め、今後の新規機能を追加するのに大きな工数がかかる可能性も存在します。 内部品質と外部品質を保ちながらシステムを稼働させるのはとても難しい課題です。 アーキテクチャ そこで登場するのがアーキ

                                                                クリーンアーキテクチャについて学ぶ
                                                              • フロントエンドの複雑さに立ち向かう 〜DDDとClean Architectureを携えて〜 | さくらのナレッジ

                                                                自己紹介 さくらインターネットではシニアフロントエンドエンジニアをやっています。代表作は「NES.css」というファミコン風CSSフレームワークで、エイプリルフールには「さくらのINFRA WARS」というゲームの企画開発をしていました。 話さないこと 本記事ではソフトウェア設計ということで、以下の設計・アーキテクチャに関しては話す予定はありません。コンポーネント設計や CSS 設計に関しては過去に記事やスライドを公開していますので、気になる方はそちらを参考にしていただければと思います。 コンポーネント設計 加速するコンポーネント設計入門 / Component Design as an Accelerator コンポーネント指向時代のmargin戦略 / Rethinking the relationship between Components and Margins CSS設計 OO

                                                                  フロントエンドの複雑さに立ち向かう 〜DDDとClean Architectureを携えて〜 | さくらのナレッジ
                                                                • コンポーネントに関する6つの原則 - Qiita

                                                                  コンポーネントとは コンポーネントとは、デプロイ単位のことであり、システムの一部としてデプロイできる最小限のまとまりを指す。例えば、Javaならjar、Rubyならgem、.NETならDLL等がそれにあたる。あらゆる言語において、コンポーネントがデプロイの基準となる。よくできたコンポーネントは常にデプロイできる状態を保っているため、個別に開発を進めることができる。 本記事では「コンポーネントの凝集性に関する原則」3つと「コンポーネントの結合に関する原則」3つを取り上げる。 コンポーネントの凝集性に関する原則 凝集性とは、機能と機能の関わり具合の尺度を指す。凝集性が高い(機能と機能の関わり具合が低い)ほど良いプログラムとされる。 ※密接に関係するものは1つに集め、関係しないものは分けるという考え方がベースとなる。 再利用・リリース等価の原則(REP:The Reuse/Release Equ

                                                                    コンポーネントに関する6つの原則 - Qiita
                                                                  • 【SOLID原則】依存性逆転の原則 - DIP

                                                                    SOLID原則とは、ソフトウェア設計の5つの原則の頭字語を取ったものです。ソフトウェアをより理解しやすく、より柔軟に、よりメンテナナンス性の高いものにするために考案されました。 単一責任の原則(Single Responsibility Principle) オープン・クローズドの原則(Open/closed principle) リスコフの置換原則(Liskov substitution principle) インターフェース分離の原則(Interface segregation principle) 依存性逆転の原則(Dependency inversion principle) 今回はSOLID原則のひとつ、依存性逆転の原則についてです。 TSで書いたサンプルコードを載せますが、あくまで依存性逆転の原則を理解するためのサンプルとして見て頂ければと思います。 依存性逆転の原則 依存性逆

                                                                      【SOLID原則】依存性逆転の原則 - DIP
                                                                    • 【コード付き】クリーンアーキテクチャのディレクトリ構成例を丁寧に紹介 - Express - Qiita

                                                                      はじめに クリーンアーキテクチャを学んでいる上で、どのようなディレクトリ構成にしようか参考になる記事が意外と少なかったので執筆しました。 個人的に技術の詳細とビジネスに関わる重要な部分を疎結合にできる良さげなディレクトリ構成を見つけたのでご紹介します。 また、エラーハンドリングやリポジトリの処理など一部書き途中の部分はありますがご了承ください。 サンプルコードをGitHubで確認したい方はこちら ついでにクリーンアーキテクチャとは何ぞや?という方向けに記事を書いたので、参考にしてみてください:クリーンアーキテクチャを少し説明できるようになれる記事 クリーンアーキテクチャは図の通りしっかり全部層に分ける必要性や完璧なディレクトリ構成にすることが重要ではありません。 依存関係をコントロールし、内側の層が外部の層に依存しないようにすることが一番重要です。 . ├── README.md ├──

                                                                        【コード付き】クリーンアーキテクチャのディレクトリ構成例を丁寧に紹介 - Express - Qiita
                                                                      • 初学者がクリーンアーキテクチャを学ぶ前に知っておいたほうがいいと思う4つのこと - Qiita

                                                                        はじめに この記事はand factory Advent Calendar 2019の22日目の記事です ちなみに明日も別のアドベントカレンダー入ってたせいで大変な状態になってます。 クリーンアーキテクチャを学ぶ前に知りたかった知識 自分が勉強する際にいろいろな方が書かれたクリーンアーキテクチャの記事をあさってた時、ほとんどの説明があらゆる知識を把握している前提で書かれているのが多かった為、すんなりと頭に入ってこず理解できなかったことがほとんどでした。 前提知識を学んで再度クリーンアーキテクチャについて調べると何となくわかってきた(?)ので、自分的に事前に知っておきたかった知識についてここでまとめておきます。 どこかの誰かの学習時間の短縮になれば我幸いです。 (特に自分みたいにLaravelやRailsなどフレームワークのMVCパターンしかやったことがない方とかには参考になるのではないかと

                                                                          初学者がクリーンアーキテクチャを学ぶ前に知っておいたほうがいいと思う4つのこと - Qiita
                                                                        • 将棋ソフト開発 Week1 ~ 将棋のコア部分を作る ~ - なぎなぎブログ

                                                                          プログラミングの勉強がてらに、将棋ソフト開発をしています。0週目は作るプログラムを方針を作成しましたが、1週目が終わり進捗報告と、やったこと、これから取り組むことについて記載していきたいと思います。 1週目ではリポジトリやパッケージ構成の準備と将棋のコア部分である各駒や盤の実装や、ルールの実装を取り組みました。 目次将棋ソフト開発 Week1 ~ 将棋のコア部分を作る ~目次進捗報告1週目でやったこと方針の変更パッケージ、リポジトリ構成決め駒の作成盤の作成マス目の表現持ち駒の表現ボード上でのすべての指してmoveメソッド指し手の表現やったことのまとめこれから取り組むこと進捗報告一旦ランダムに動くところまで作りました。将棋のプレイを管理するクラスはまだ書いてないのでテストコードで無理やり実装して動かしているだけです。 将棋プログラムできました ランダムで打って王手放置によって大体終わります(

                                                                            将棋ソフト開発 Week1 ~ 将棋のコア部分を作る ~ - なぎなぎブログ
                                                                          • クリーンアーキテクチャーでスマホアプリ開発した感想(勉強会用) - Qiita

                                                                            はじめに 昨年からの大きな案件でClean Architectureを使った Platforms: Android/iOS Languages: Kotlin/Swift はじめに 勉強会向け資料なので、クリーンアーキテクチャー自体の解説もある程度含まれます。 逆に、時間の都合上、歴史背景や細かい部分までは行き届いていません。 もし間違いがあればご指摘ください。 オススメ書籍 アーキテクチャーを選定する目的 求められるシステムを構築・保守するために必要な人材を最小限に抑えるため 「アーキテクチャーは上位レベル、設計は下位レベル」のように区別されることがあるが、両者の間に明確な境界はなく、上位から下位に至るまで、決定の連続である スマホアプリ開発で代表的なアーキテクチャー AndroidはMVVM(Googleが推奨) iOSはMVC(AppleがCocoa applicationに採用)

                                                                              クリーンアーキテクチャーでスマホアプリ開発した感想(勉強会用) - Qiita
                                                                            1