並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 40件

新着順 人気順

clean-architectureの検索結果1 - 40 件 / 40件

  • エンジニアに読んで欲しい技術書90選 - Qiita

    はじめに タイトル通り、読んで欲しい(圧)技術書をたくさん集めてみました。自身の担当から外れる領域に関しては、会社の人に協力を仰ぎ、編集しました。「何を読めばいいかわからない」、「次の読む本を探したい」などのように考えている方の参考になればと思います。 また、大きく、 ・新米エンジニア ・脱新米エンジニア と分けてまとめたので、参考にしてみてください。 技術書のススメ 技術書の紹介の前に、技術書で得られるものについて説明したいと思います。全然読み飛ばしてもらって大丈夫です。この章から本の紹介を行なっていきます。 技術書は体系的な構成となっているため、技術書を読むことで、 ・論理的な思考力が身に付く ・技術の歴史・背景を知れる ・技術の知識、手法を学べる これらを学ぶことができます。論理的な思考力、知識はわかるけど、技術の歴史・背景を知ってどうするんだと思う方もいるかもしれません。しかし、歴

      エンジニアに読んで欲しい技術書90選 - Qiita
    • ソフトウェアエンジニアにおすすめしたい本を100冊選んでみた | gennei's blog

      Adobe Firefly で生成PdMむけの記事でこのような記事がある。 「プロダクトマネージャーこそ、戦略的に読書せよ!」── 最短で成果を出すための読書地図 (1/6)|ProductZine(プロダクトジン) これのエンジニア向けの記事がないかなと思っていたがなさそうだったので作ろうと思った。しかし客観的な視点でこれがおすすめというのは難しいので自分が参考になったと思った本を家の本棚を見ながらまずは100冊リストアップしてみた。 紹介する本は10年読まれていたり、近年発売のものであれば10年後にも読まれているだろうというものを選ぶようにしている。個別のプログラミング言語やフレームワークなどの本はバージョンアップに追随ができないことが多いので選んでいない。 入門本プリンシプル オブ プログラミングリーダブルコード定番中の定番。おそらくこの2冊はあちらこちらで紹介されている。とりあえず

        ソフトウェアエンジニアにおすすめしたい本を100冊選んでみた | gennei's blog
      • どうしてあなたの共通化は間違っているのか:目次 - Qiita

        はじめに この連載では共通化とモジュール分割について扱います。この話題においてQiitaで有名な記事のひとつが@MinoDrivenさんの単一責任原則で無責任な多目的クラスを爆殺するでしょう。この記事を未読の方はまずこちらを読むことをお勧めします。本連載では、この記事に書かれているような基礎的な事項については既知であることを前提に、どのようにすれば単一責任原則にそったモジュールの分割を行うことが出来るのかをなるべく 「場合による」という言葉に逃げずに なるべく 網羅的・理論的に 解説します。 いいね、ストックをよろしくお願いします。 対象読者 設計に興味のあるエンジニア 基礎的な設計原則について学んだものの、実際の場面でどのように応用すればいいのかが掴めないエンジニア ミクロな設計についての知識を増やしたい人 ※この記事では、特定のメソッドをどのように作成するべきか、このクラスは複数の処理

          どうしてあなたの共通化は間違っているのか:目次 - Qiita
        • 新入社員に向けて私が3年間で読んだ技術書を紹介する - Qiita

          はじめに 今回は私が3年間で読んだ技術書をひたすら紹介します。 私は2021年4月に新卒でSIerに就職し、2024年4月でエンジニア4年目となりました。 そんな私の入社時のスキル感はどうだったかというと... 非情報系学部卒の理系 学部4年生の時に研究室で少しPythonを触ったことがある程度 HTTP?なにそれ? でした。 こんな感じでほぼゼロからのスタートでしたが、3年間でどのくらいのスキル感になったかというと、ざっくりと 基本的に一人称で開発業務ができる 小規模のシステム開発なら技術選定やアーキテクチャの検討も可能 某(若手向け)技術コンテストで入賞経験あり OSSコントリビューション経験あり IT関連の資格7つ取得 くらいには成長することができました。 これから紹介する技術書を読むだけでこのくらいのスキル感になれますという話ではなく、当然日々の業務であったり、その他のインプット/

            新入社員に向けて私が3年間で読んだ技術書を紹介する - Qiita
          • データ詰め替え戦略 - kawasima

            このSpring Bootを使ったクリーンアーキテクチャの例は、データの詰め替え過剰にみえる。 https://www.baeldung.com/spring-boot-clean-architecture これだけのモデルと詰め替えが必要なのだろうか? 『Get Your Hands Dirty on Clean Architecture 』にこのマッピング戦略(詰め替え戦略)が書かれている No Mapping (レイヤ間でモデルを共有し、詰め替えをしない) 2-way Mapping (各レイヤで独自のモデルを持ち、レイヤを跨ぐ呼び出しは上位レイヤが詰め替えの責務を負う) Full Mapping (各レイヤで独自のモデルを持ち、レイヤを跨ぐ呼び出しには専用のモデルを使う) またこの戦略のどれを選ぶかの基準は『Balancing Coupling in Software Design

              データ詰め替え戦略 - kawasima
            • 現実世界の事象から学ぶSOLID原則

              # Object-Oriented Conference 2024 https://fortee.jp/oocon-2024/proposal/e1eb34cf-78ef-43f6-8a03-bb26c996cb62 概要 オブジェクト指向プログラミング (OOP) のコーディング慣例として広く採用される、SOLIDの原則。 コードの保守性、拡張性、再利用性を語る上では共通言語としても使用される一方で、初学者にとっては決して理解のしやすいものではありません。 これらの原則が抽象的であり、実際のコードにどのように適用されるか・適用した際に得られるメリットを理解するのが難しいことが理解を困難にする一因です。 しかし一度理解すると、SOLID原則が現実世界のありとあらゆる場所で適用されていることに気が付くはずです。 「clean architecture 達人に学ぶソフトウェアの構造と設計」にお

                現実世界の事象から学ぶSOLID原則
              • なぜDependency Injectionなのか? ~関心の分離と疎結合~

                本稿は「アーキテクチャを突き詰める Online Conference」における発表「なぜDependency Injectionなのか? ~関心の分離と疎結合~」の登壇原稿となります。 発表時の動画アーカイブは後日公開されたタイミングでリンクを追加いたします。 また、本稿のサンプルコードとPower PointはGitHubで公開しています。 「CC BY-SA 4.0」で公開していますので、気に入っていただけたら営利目的含め、ライセンスの範囲で自由に利用していただいて問題ありません。 https://github.com/nuitsjp/WhyDependencyInjection というわけで、本稿の目指すゴールはこちら。 今日は、この場にいる皆さんが「なぜDependency Injectionを利用するのか?」ということを、理解いただくのが本日のゴールとなります。 というわけで本

                  なぜDependency Injectionなのか? ~関心の分離と疎結合~
                • RDBの主キー、UUID使った方がいいの?(DDD, CleanArchitecture対応)

                  結論 お手軽モノリスならAutoIncrementが効率的だしこれでいいよ アプリケーション側で主キーを生成したい場合はLUIDを作る必要があるよ。GUIDで大は小を兼ねよう 主キーでGUIDを使うならULIDよりもUUIDv7がおすすめだよ ただし分散されているエンジンによってはUUIDv4の方が効率的になる場合もあるよ 主キーは原則公開しない方がいいよ UUIDv7やULIDはユニーク性を持ったInstant(timestamp)としても使えるよ 分散されたシステムでは厳密な時系列性を担保することはできないよ、あきらめてロックをかけつつ連番を一か所で生成しよう RDBのPrimary Key(主キー)とは? MySQL、PostgresQLなどのRDBでは各レコードを識別するために一意な値を必要とします。これをPrimary Key(主キー)と呼びます。別のカラムにUNIQUEなInd

                    RDBの主キー、UUID使った方がいいの?(DDD, CleanArchitecture対応)
                  • goquを駆使してgoでSQL構築も構造体マッピングもRDBテストもやる - エムスリーテックブログ

                    【Unit4 ブログリレー6日目】 こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 最近まで開発していたm3ラウンジでは、goからRDBを利用していました。 m3ラウンジでは、SQLの組みやすさやテストのしやすさの観点で検討した結果、goquを採用しましたので、 そこで得られた知見とその実装例を紹介します。 これから試してみる方(と将来m3ラウンジの開発に新たに入ることになったメンバー)の参考になるように、サンプルコードも説明も多くなってしまいかなり長いです。 お時間ある時にお読みいただければ。 名古屋城は、日本の城のひとつ。尾張国愛知郡名古屋(現在の愛知県名古屋市中区本丸・北区名城)にある。本文には特に関係ありません。 m3ラウンジ goqu 実例 modelの構造体 mapper mapperの実装 goquのSQLの結果から構造体へのマッピング

                      goquを駆使してgoでSQL構築も構造体マッピングもRDBテストもやる - エムスリーテックブログ
                    • TypeScriptでクリーンアーキテクチャを実践する

                      概要 本記事は、スクラムを管理するアプリケーションをクリーンアーキテクチャの考え方で実装し、WebからもCLIからも動かせるようにしたという実践を紹介するものです。学習のための個人開発で作成したサンプルアプリケーションの設計と実装を適宜紹介することで、クリーンアーキテクチャに対する理解を深めることが目的です。 モチベーション なぜ現代の開発現場で定着しているクリーンアーキテクチャのアプリを手元で実装してみようと思ったかというと、私自身Webエンジニアとして働く中で、クリーンアーキテクチャの実践例は入出力をWebに限定したものばかりだったからです。 しかし、「詳細に依存せず抽象に依存すること」と唱えるクリーンアーキテクチャにとって、Webはただの詳細です。そこで、入力元、出力先を問わないアプリケーションはどのような書き味になるのか、自分で確かめてみたくなりました。 例えば、「ドメイン層は独立

                        TypeScriptでクリーンアーキテクチャを実践する
                      • Go言語によるクリーンアーキテクチャの実装例紹介

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

                          Go言語によるクリーンアーキテクチャの実装例紹介
                        • 理解しやすいコードの書き方~理解容易性の7つの観点~ - Qiita

                          はじめに 「理解容易性」は「保守性」の観点の1つとして重視され、多くの原則や技法が紹介されているが、断片的かつ多様であり、全体像を理解することは難しい。 抽象度は高いが、体系的に観点を整理する事で、その理解の助けとなれば幸いである。 定義 「理解容易性」を簡単に言えば、「理解のしやすさ」であるが、その意味から掘り下げると、「思考する量」と言い換えることができる。 本記事では理解容易性を「思考量の少なさ」と定義し、7つの観点に整理した。 先に要約およびチェックリストを記載し、概略を記載した。 後に詳細で理解のため、各観点毎の説明と個別の原則や技法へのリンクを記載した。 要約 7つの観点の要約を先に示す。 (変数や関数の)名称は分かりやすくする (変数や関数の)役割は1つにする (変数や関数の)参照は狭くする (変数や関数の)状態は変えられなくする (関数やクラスの)面積は小さくする (関数や

                            理解しやすいコードの書き方~理解容易性の7つの観点~ - Qiita
                          • 開発効率を追い求めた実装プラクティス集

                            この記事は MICIN Advent Calendar 2023 の24日目の記事です。 前回はSaneさんの「データ基盤チームで社内インターンをやってみて」でした。 はじめに abekohです。MICINでMiROHAの開発をしております。 本記事では、書籍等から得た設計・実装パターンの知識や、実際にプロダクト開発で試して得られた経験などから編み出した、開発効率向上のためのWeb API開発のプラクティスを紹介します。 筆者が関わっているMiROHAは治験の業務支援を取り扱うプロダクトです。MiROHAの開発における特性として、以下のようなものが挙げられます。 治験業務に関するドメインが特有で複雑 前例が少なく、MVPを追求中。プロダクトのアプローチが頻繁に変わる 外部品質は高い水準が求められる これらの特性を意識して開発を促進させるために日々試行錯誤しております。 複雑なドメインに対す

                              開発効率を追い求めた実装プラクティス集
                            • フロントエンドの複雑さに立ち向かう / Tackling Complexity of Front-end Software with DDD and Clean Architecture

                              フロントエンドの複雑さに立ち向かう 〜 DDD と Clean Architecture を携えて 〜 さくらのテックランチvol.6 〜ローストチキンのフロントエンドパスタとクリスマスFigmaケーキ〜 https://sakura-tokyo.connpass.com/event/303232/ YouTube配信アーカイブ https://www.youtube.com/watch?v=usmLmI1bj74&t=472s ドメイン駆動設計(Domain-Driven Design)や Clean Architecture をヨイショもディスもせずフラットな立場で評価し、現実解を探りながらフロントエンドの複雑さに立ち向かった半年間の軌跡

                                フロントエンドの複雑さに立ち向かう / Tackling Complexity of Front-end Software with DDD and Clean Architecture
                              • ゲーム開発に所謂なアプリケーション設計パターンを適用するのは難しい - hadashiA

                                ゲーム開発ひいてはクライアントサイドの開発において「クリーン」かどうかは正直けっこうどうでもよく、設計すべき一番のポイントは「制御フロー」にあります。 じゃあ具体的にどういう設計がいいのか、ていうのは、やはりjs界隈みたいにフレームワークになっていないとなかなか伝わらないようです。そういうのもそのうちつくってみたいなあと最近思ってます。 以下、以前ブログに書いたものの転載。 -- Unityで長らくゲーム開発をやっているけれど、Web界隈などで色々と発達しているアプリケーション設計パターンをおいそれと持ち込めば良いわけではないと感じているので、それについて考えてみようと思う。 ここでいう設計パターンていうのは、たとえばUIとかをつくるフレームワークの競争で発達してきた MVC派生 や ReactとかのElmアーキテクチャに影響を受けたものたち、はたまた、Webサーバ(HTTPサーバ) を書

                                  ゲーム開発に所謂なアプリケーション設計パターンを適用するのは難しい - hadashiA
                                • freeeカードチームの開発(Go)から得た学びベスト5 - freee Developers Hub

                                  この記事はfreeeアドベントカレンダー2023の19日目の記事です。 こんにちは!freeeカードチームのmattsunです。freeeカードUnlimitedの開発運用をしています。私は1年前にfreeeに入社しfreeeカードチームに所属しています。これまでの自分のエンジニアとしてのキャリア(10年強)を通してみても、今のチームではPRレビューやリファクタなどからの学びが多いなぁと感じます。個人的に学びがあったことやチームとしての知見が深まったもののうち、ベスト5(私の主観)をまとめます。 freeeカードシステムは、フロントエンド(TS,React)・BFF(RoR)・Backend(Go)で構成されており、Goでの開発比率が多いことから、本記事はGoのコードに関する言及が多いです。freee社全体をみるとRailsで開発されたシステムも多いですが、Goで開発しているサービスもある

                                    freeeカードチームの開発(Go)から得た学びベスト5 - freee Developers Hub
                                  • やってみてわかった クリーンアーキテクチャの勘所 | ドクセル

                                    スライド概要 Findyさんのイベント「アーキテクチャを突き詰める Online Conference」のLT登壇資料です。

                                      やってみてわかった クリーンアーキテクチャの勘所 | ドクセル
                                    • iOSプロジェクトに対してモジュール分割しながらSwiftUIを部分適用している事例 - Mirrativ Tech Blog

                                      こんにちは、クライアントエンジニアの竹澤(@to4iki)です。 MirrativのiOSチームでは、開発効率の最大化を狙い以下に取り組んでいます。 データフローの単方向化 (Fluxアーキテクチャの強制) 宣言的UIによるView実装 (SwiftUIの部分適用) 責務分割 (モジュール分割) 今回の記事では、どのような構成でSwiftUIを適用し始めたか、また、MirrativのiOSプロジェクトの構成やプロダクト特性の課題感からセットでモジュール分割を進めている点を紹介します。 背景 前提となるプロジェクト構成 導入に向けて決めたこと SwiftUIでどこまで実装するか 本体アプリではなくSwiftPackageを活用する 垂直分割するか水平分割するか 方針やTipsを明文化し育てる 新規開発部分のUI開発をFeatureモジュールで行う SwiftPackage: SwiftUI.

                                        iOSプロジェクトに対してモジュール分割しながらSwiftUIを部分適用している事例 - Mirrativ Tech Blog
                                      • クリーンアーキテクチャをパン工場で説明する【Go】

                                        はじめに 本記事は技術書典16(2024)で一部執筆させていただいた「CA Tech Lounge note #2」のクリーンアーキテクチャとパン工場を元に、一部抜粋&変更したものです。 本記事の対象読者 本記事では、クリーンアーキテクチャを全くわかっていない筆者が、一度個人開発したものをクリーンアーキテクチャにリファクタリングしていく過程で学んだことをまとめていきます。そのため、以下のような読者を想定しています。 クリーンアーキテクチャを聞いたことがあるけどわからない人 コードは書くけれどアーキテクチャを意識したことはない人 アーキテクチャを意識して開発したい人 クリーンアーキテクチャを一度学んでもピンと来なかった人 Goが好きな人! リファクタリング前の筆者の状況 バックエンド歴は半年弱ほどで、実務経験としてはPythonで簡単なAPIを実装するアルバイトのみになります。アーキテクチャ

                                          クリーンアーキテクチャをパン工場で説明する【Go】
                                        • 理解しやすいコードの書き方~理解容易性の7つの観点~ - Qiita

                                          はじめに 「理解容易性」は「保守性」の観点の1つとして重視され、多くの原則や技法が紹介されているが、断片的かつ多様であり、全体像を理解することは難しい。 抽象度は高いが、体系的に観点を整理する事で、その理解の助けとなれば幸いである。 定義 「理解容易性」を簡単に言えば、「理解のしやすさ」であるが、その意味から掘り下げると、「思考する量」と言い換えることができる。 本記事では理解容易性を「思考量の少なさ」と定義し、7つの観点に整理した。 先に要約およびチェックリストを記載し、概略を記載した。 後に詳細で理解のため、各観点毎の説明と個別の原則や技法へのリンクを記載した。 要約 7つの観点の要約を先に示す。 (変数や関数の)名称は分かりやすくする (変数や関数の)役割は1つにする (変数や関数の)参照は狭くする (変数や関数の)状態は変えられなくする (関数やクラスの)面積は小さくする (関数や

                                            理解しやすいコードの書き方~理解容易性の7つの観点~ - Qiita
                                          • モジュラモノリスを試験運用している話 - ロコガイド テックブログ

                                            ビジネス開発部のバックエンドエンジニアの伊藤です。主にトクバイのビジネスサイドの開発を担当しています。 Shopify記事の影響もありしばらく前からモジュラモノリスが注目されるようになりました。 我々が開発しているトクバイではモノリシックに構築されており、各機能が密結合になりメンテナンスしづらくなっています。 今回、新機能プロジェクトを担当する上で各機能をモジュール分割・コンポーネント化することを試してみました。 Packwerk PackwerkはShopifyが開発しているGemで、Railsアプリケーションをモジュール分割する手助けをしてくれます。 USAGEに書かれていることを要約すると、大規模なアプリケーションは境界を作り境界間の依存関係をコードレベルで最小にしようということだと考えています。 後述しますが幾つかのエコシステム導入する事で、よりモジュラモノリス化を促すことができま

                                              モジュラモノリスを試験運用している話 - ロコガイド テックブログ
                                            • インターン中、タスクに付随する予想外のエラーと戦った話 - Mirrativ Tech Blog

                                              初めまして。9月から10月にかけて、インターンとしてミラティブのバックエンド基盤に関わっていた、logicaと申します。 今回は、期間中に扱っていたある1つのタスクにフォーカスしながら、インターンを振り返りたいと思います。 割り当てられたタスク 背景 すぐに終わる想定だった 検証用環境で問題発生! 管理画面へのログインができない タスクの続行 原因究明 403エラー CSRFトークン セッションの非永続性 対処 そもそもCSRFトークンは永続化するべきか セッション用Clientのみ、一定確率で値を返さなくする対応を止める 今回のタスクを振り返って 終わりに 割り当てられたタスク 比較的簡単な1つ目のタスクを終え会社の雰囲気にも慣れてきた頃、出された次のタスクは「開発環境のみ一定確率でmemcachedの値を返さないようにする」というものでした。 背景 Mirrativのバックエンドは設計

                                                インターン中、タスクに付随する予想外のエラーと戦った話 - Mirrativ Tech Blog
                                              • フロントエンドの複雑さに立ち向かう 〜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を携えて〜 | さくらのナレッジ
                                                • やさしいクリーンアーキテクチャ

                                                  SREホールディングス株式会社の松本です。 プロダクトはリリースしてからが始まりで開発し続けることが当たり前の時代、ソフトウェアは変更や拡張に強く設計しなければなりません。クリーンアーキテクチャはそんな設計を実現する方法の1つですが、名前は聞いたことはあるけど実践したことはない、なんだか複雑で難しそう、という印象を持っている人が多いのではないでしょうか。 クリーンアーキテクチャを詳細に説明している記事は数多くありますので、本記事ではクリーンアーキテクチャを触ったことがない方に良さが伝わるように、やさしく噛み砕いて説明してみようと思います。 対象読者 クリーンアーキテクチャをこれから学びたい方 クリーンアーキテクチャとは 機能を実現しているコアな部分をフレームワークやDBなどに依存しない状態(関心事の分離)にすることで、他が変わってもコアな部分への影響をなくし、変更や拡張に強くすることができ

                                                    やさしいクリーンアーキテクチャ
                                                  • 奥野さんと社員のリファクタリング部屋 -ディレクトリの名付け方 - トレタ開発者ブログ

                                                    「奥野さんと社員のリファクタリング部屋」は、リファクタリングに励むトレタの社員と技術顧問の奥野さん ( @okunokentaro ) の間で実際に行われた会話を切り取った開発現場実録コンテンツです。 技術顧問: 奥野さん 三度の飯よりリファクタリングが好き 今回の質問者: 武市さん トレタ在籍2年。沖縄在住のフロントエンジニア 今回の質問 前回に引き続き、Webアプリケーション (Next.js) のプロダクトのリファクタリングを進めている武市さんから、ディレクトリ構造のリファクタリングについての質問です。 tech.toreta.in 前回の指摘も踏まえて、新しいディレクトリ構造とその定義を考えてきました。 ┗ server ┃ ┣ boundary -- 外部システムとのやり取りを行うためのエンドポイント。 ┃ ┃ ┗ mojito ┃ ┃ ┃ ┗ mojitoClient.ts ┃

                                                      奥野さんと社員のリファクタリング部屋 -ディレクトリの名付け方 - トレタ開発者ブログ
                                                    • ざっくりDDD・クリーンアーキテクチャにおける各層の責務を理解したい①(ドメイン層・ユースケース層編) - Qiita

                                                      概要 弊社で開発中のプロダクトは、ドメイン駆動設計とクリーンアーキテクチャを組み合わせた設計となっています。 これまでフロントエンドの開発を担当することが多かった中で、golangでのAPI開発を担当した際に、「この処理はRepositoryに書くべき?」「Usecaseにこの処理を書いたら責務を持たせすぎ?」「Domain ServiceとUsecaseはどう分ける?」など迷うことが多々ありました。 そこで、これら設計に関する考え方を整理するために具体的な実装を踏まえてこの記事を書いています。 この後、インフラストラクチャ層・プレゼンテーション層は別の記事として書く予定です。 DDD(ドメイン駆動設計)とは ドメインの専門家からの入力に従ってドメインに一致するようにソフトウェアをモデル化することに焦点を当てるソフトウェア設計手法である。 ドメイン駆動設計 下の画像のように4つの層に責務を

                                                        ざっくりDDD・クリーンアーキテクチャにおける各層の責務を理解したい①(ドメイン層・ユースケース層編) - Qiita
                                                      • API シナリオテストツール runn で E2E テストを実装する

                                                        API シナリオテストツール runn とは 今回は、API シナリオテストツールである runn について紹介します😉✨ runn の主な特徴 runn は Go 言語で実装されているツールで、主な特徴は以下です。 発音は「ラン エヌ」です。 シナリオベースのテストツールとして機能 Go 言語用のテストヘルパーパッケージとして機能 ワークフロー自動化ツールとして機能 以下をサポート: HTTP リクエスト gRPC リクエスト DB クエリ Chrome DevTools Protocol SSH/ローカルコマンド実行 HTTP リクエストテストに OpenAPI 文書に似た構文を使用 単一のバイナリファイル = CI (継続的インテグレーション)に適している 引用: k1LoW/runn: runn is a package/tool for running operations f

                                                          API シナリオテストツール runn で E2E テストを実装する
                                                        • 手を動かしてわかるクリーンアーキテクチャ ヘキサゴナルアーキテクチャによるクリーンなアプリケーション開発 - インプレスブックス

                                                          3,300円(本体 3,000円+税10%) 品種名書籍 発売日2024/7/19 ページ数288 サイズA5判 著者 Tom Hombergs 著/須田 智之 訳 ISBN 9784295019787 Tom Hombergs『Get Your Hands Dirty on Clean Architecture: Build 'clean' applications with code examples in Java, 2nd Edition』Packt Publishingの翻訳書。Robert C. Martin氏が提唱するソフトウェア設計パターン「クリーンアーキテクチャ」の概念に沿って、Webアプリケーションを構築するにはどうするのか、について実装コードとともに解説。ソフトウェア設計に興味を持っている開発者の方、クリーンアーキテクチャとその実装方法を知りたい開発者の方におすすめの

                                                            手を動かしてわかるクリーンアーキテクチャ ヘキサゴナルアーキテクチャによるクリーンなアプリケーション開発 - インプレスブックス
                                                          • ActiveRecordパターンの呪縛を学びほぐして挑むクリーンアーキテクチャへの入り口 | ドクセル

                                                            スライド概要 ActiveRecordパターンに引きづられて設計が歪みがちになるのを学びほぐすことでクリーンアーキテクチャでの開発の良いスタートラインに立てるのではないでしょうか?

                                                              ActiveRecordパターンの呪縛を学びほぐして挑むクリーンアーキテクチャへの入り口 | ドクセル
                                                            • NEエンジニアがお薦めする夏の課題図書13選+α

                                                              みなさんこんにちはー!あすみ(@asumikam)です✨夏楽しんでますかー🌞 夏といえば・・・夏休みですね。 大量の休みと共に、大量の宿題と戦ったあの夏・・・あの頃は辛かったですが、今思うと、懐かしい気持ちと「学生」たるイベントに羨ましくなります(...よね?) その中で「課題図書」というものがありました。お薦めの本リストから本を選んで読書感想文書くやつ。 夏休み、図書館に行って自分に合いそうな本を選んだ記憶があります。 ・・・あれ・・・やりたいッ!また、やりたいッ!!(...ですよね??) ということでー!!NEのエンジニアに「お薦めの課題図書」を聞いてきました🫡 お願いしてその日中に10冊集まりました!素敵👏 そこに、自分のお薦めを3冊追加して、13選を紹介したいと思います! 「夏休み」気分を味わうために、新しい本に出会ってみるのはいかがでしょうか?✨ 「技術部門」「デザイン部門

                                                                NEエンジニアがお薦めする夏の課題図書13選+α
                                                              • Modern web application authentication and authorization with Amazon VPC Lattice | Amazon Web Services

                                                                AWS Security Blog Modern web application authentication and authorization with Amazon VPC Lattice When building API-based web applications in the cloud, there are two main types of communication flow in which identity is an integral consideration: User-to-Service communication: Authenticate and authorize users to communicate with application services and APIs Service-to-Service communication: Auth

                                                                  Modern web application authentication and authorization with Amazon VPC Lattice | Amazon Web Services
                                                                • ビジネスロジックとは何か?

                                                                  業務システムの設計/開発/運用の文脈での、ビジネスロジックについて考察してみたいと思います。 ソフトウェア設計についての本やブログ記事などで、「ビジネスロジックは重要である」ということは、何度も何度も言われていて常識になっていて否定する人はほとんど居ないと思います。この点については文字通りの意味で納得するところなのですが、「ビジネスロジック」というのは、何なのでしょうか? 実際のところ ビジネスロジックとは何か?と問われて思いうかべる事は人によって異なるかもしれません。 要件定義書に書かれていることがビジネスロジック? 基本設計書に書かれていることがビジネスロジック? ○○テーブルの××カラムと□□テーブルの△△カラムを同一トランザクションで更新することがビジネスロジック? あるページの○○ボタンをクリックしたら、行を削除するということがビジネスロジック? どうも捉え所が無い感じです。 W

                                                                    ビジネスロジックとは何か?
                                                                  • 達人出版会

                                                                    [令和6年度]基本情報技術者 超効率の教科書+よく出る問題集 五十嵐 順子 徹底攻略 データベーススペシャリスト教科書 令和6年度 株式会社わくわくスタディワールド 瀬戸美月 著 徹底攻略AWS認定SysOpsアドミニストレーター - アソシエイト教科書&問題集[SOA-C02]対応 鮒田 文平, 長澤 美波, 日暮 拓也, 奥井 務, 渡辺 樹, 山下 千紗, 伊藤 翼 世界標準MIT教科書 アルゴリズムイントロダクション 第4版 第2巻 高度な設計と解析の手法・高度なデータ構造・グラフアルゴリズム Thomas H. Cormen, Charles E. Leiserson, Ronald L. … 問題解決の教科書  CITA式問題解決ワークブック 市岡 和之 はじめてのType-C電子工作 じがへるつ スッキリわかるJava入門 実践編 第4版 中山 清喬(著), 株式会社フレアリ

                                                                      達人出版会
                                                                    • The API database architecture - Stop writing HTTP-GET endpoints

                                                                      The API database architecture - Stop writing HTTP-GET endpoints Table of contents Introduction Data retrieval via PostgREST, data modification in the existing backend Compatibility with REST, CQRS and GraphQL Strategies for adapting existing architectures Adapting a monolithic system with a single backend Adapting (domain-driven) microservices with one or more databases Benefits of the API databas

                                                                      • Awesome Software Architecture

                                                                        Abstraction Actor Model Architecture AI Algorithms Anti Patterns Architectural Design Principles Architecture Decision Records (ADR) Azure Cloud Back Pressure Caching Clean Architecture Clean Code Cloud Best Practices Cloud Design Patterns Cloud Native Code Review Concurrency CQRS Data Driven Design Design Best Practices Design Patterns DevOps Distributed Locking Distributed Transactions & Saga Do

                                                                        • Clean Architectures in Python - Chapter 1 - A day in the life of a clean system

                                                                          Must be my lucky day. Terminator 2, 1991In this chapter I will introduce the reader to a (very simple) system designed with a clean architecture. The purpose of this introductory chapter is to familiarise with main concepts like separation of concerns and inversion of control, which are paramount in system design. While I describe how data flows in the system, I will purposefully omit details, so

                                                                          • 2023年こんな本がおもしろかった - またお前かよ!

                                                                            やまかわアドベントカレンダー Advent Calendar 2023 - Adventar 1日目の記事だよ! このアドベントカレンダーはノンジャンルだけど、買ってよかったものみたいなお題があるんで、じゃあ今年読んでおもしろかった本とか紹介してみようと思いました。 技術書も実用書もお話も漫画もとりまぜていってみましょう。 六人の嘘つきな大学生 www.kadokawa.co.jp 殺人事件じゃないミステリー。 1ページごとにどんでん返しがあるみたいなジェットコースター展開なので飽きることなく一気に読めちゃいます。楽しいよ。 読者への解けるかなという挑戦という正統派ミステリーとしてよくできているかっていうと、目指しているのはそっちではないかもしれない。 でもページめくるごとに急展開でもってかれるのは気持ちいいし、あと何より大事なこととして読後感とても良いです。だからおすすめ。 話題のミステ

                                                                              2023年こんな本がおもしろかった - またお前かよ!
                                                                            • 【再放送】t-wadaさんが後世に残したい、実録レガシーコード改善 を見た感想

                                                                              リンク connpass: 【再放送】t-wadaさんが後世に残したい、実録レガシーコード改善 - connpass t-wadaさんの資料 実録レガシーコード改善 / Working with Legacy Code: the True Record - Speaker Deck 会社で、「t-wadaさんのこの発表すごいよかったですよ」と聞いたので興味が湧いて再放送を見ることにしました。Findyさん、t-wadaさん再放送ありがとう… 特に個人的に面白かったポイントを書きます。 ソフトウェア開発の三本柱には優先度がある ソフトウェア開発の三本柱は、Version Control, Testing, Automationの3つです。今回t-wadaさんが取り組んだコードはどれも備えていませんでした。優先度順に手をつけたいけどどこから手をつけるべきか。 ここでVersion Contro

                                                                                【再放送】t-wadaさんが後世に残したい、実録レガシーコード改善 を見た感想
                                                                              • 関数型プログラミング言語"Clojure"が「私たち」と「あなた」にもたらすもの | 株式会社AGE technologies

                                                                                こんにちは、株式会社AGE technologies CTOの黒川です。 この記事では、私たちがシステム開発のほとんど全ての場面で使用しているClojure(クロージャー)という言語について紹介します。大きく下記の3点をトピックとして、弊社のテクノロジースタックに理解を深めていただくことを目指します。 なぜClojureを選定したのか / Clojureが「私たち」にもたらすものClojureが「あなた」にもたらすもの未経験のチームメンバーがどうやって適応していったか前提私は、現代のシステム開発のユースケースにおいて、特定の言語でなければ実現できない機能はほとんど存在しないと考えています。とはいえ、「じゃあCOBOLでもいいよね」といった極論は必ずしもベターな解決方法ではなく、選定する技術に応じたトレードオフは理解しておく必要があります。 この前提に基づいて、本記事では私たちの技術スタック

                                                                                  関数型プログラミング言語"Clojure"が「私たち」と「あなた」にもたらすもの | 株式会社AGE technologies
                                                                                • PHPカンファレンス関西 2024【参加レポート】 - RAKUS Developers Blog | ラクス エンジニアブログ

                                                                                  はじめに 配配メール開発課moryosukeです。 2024/02/11(日)にPHPカンファレンス関西 2024が開催されました。 ラクスはブロンズスポンサーとして協賛させていただいています。 2024.kphpug.jp ラクスからは5人が登壇した他、多くのメンバーが参加しました。 そこで今回は参加者によるレポート、そしてラクスからの登壇者本人によるレポートを紹介させていただきます。 はじめに 参加レポート はじめてのOSSコントリビュート Laravelでミニマム開発からスタートして個人サービスを利益化するまでの経験談! RDBアンチパターンと戦う - 削除フラグ 完全攻略ガイド 令和最新版 PHP メモリ管理術 「"品質"が高いコード」って何? CodeRevieweeが求められること アプリケーションエンジニアこそ「監視」だよね!と私が考える訳 コードを自在に操るためのPHP文法

                                                                                    PHPカンファレンス関西 2024【参加レポート】 - RAKUS Developers Blog | ラクス エンジニアブログ
                                                                                  1