インターネット上のIPアドレスやドメイン名などの管理や調整を行っているICANN(Internet Corporation for Assigned Names and Numbers)は、プライベートネットワークやホームネットワークのためのトップレベルドメインとして「.INTERNAL」を予約語として割り当てるという提案を1月24日付で公開しました。 プライベートネットワークには、「192.168.xx.xx」などの専用のIPアドレス空間が公式に割り当てられており、このIPアドレス空間はインターネット上のIPアドレスと衝突しないことが約束されています。 しかし、このIPアドレス空間で管理されているプライベートネットワークのために公式に割り当てられたドメイン名の名前空間は、現時点ではありません。 そのため、プライベートネットワークの運用者がプライベートネットワーク内で何らかのドメイン名を運
この記事では、CQRSの入門として、軽量CQRS、別名クエリモデルについて解説します。 DDDの参照系処理で発生する課題 解決策 CQRSのメリット、デメリット 実装時の注意事項 部分的導入について なぜQueryServiceの定義がUseCase層なのか 整合性をどうやって担保するのか よくある誤解 データソースを分ける必要があるのか イベントソーシングとの関係 過去資料との繋がり もっと詳しく知りたい方は 現場での導入で困ったら DDDの参照系処理で発生する課題 DDDで定義されている実装パターンを使っていると、基本的には永続化層との入出力はRepositoryを使うことになります。 更新系の処理ではEntityやValueObjectでドメインの知識を表現し、Repositoryを使って集約単位で永続化するという構成をとると、非常にメンテナンス性の良いものになります。 参考過去記事
DDDではよく「モデリングが重要だ!」と言われますが、どのようにモデリングすればいいのかがわからず、一歩を踏み出せないことは多いのではないでしょうか。 そんな方のために、本記事ではDDDにおいてシンプルで成果が出しやすいモデリング手法について紹介します。 (本記事は、YouTube動画「10分でわかるドメインモデリング」の内容をもとにした解説記事です。) DDDの目的 DDDの目的から確認しましょう。 DDDの目的は2つ。 ①機能性を高めること これは、役に立つものを作ること、言い換えると「作ったけど使えない」を避けることです。 そのために、ドメインモデリングを行い、ソフトウェアを適用して役立てようとしている現実世界の領域(これの領域をDDDでは「ドメイン」と呼びます)について理解を深め、解決策を検討することを目指します。 ②保守性を高めること これは、長期間開発しても機能拡張が容易であり
1.DDD関連でほしい情報は英語であるという覚悟を決める。 これは冗談のようですが本当です!笑 英語と日本語でDDD情報は本当に格差がある!! DDDの記事、wikipediaですらわかりやすいんですよ。 こちらの記事もeric evansの公式サイト(当然英語)を調べていたら見つけたものです。 なので、DDDについて調べたけばまず英語で調べるという覚悟を決めましょう。 2.アメリカのgoogleにアクセスする 日本のgoogleで「domain driven design」と調べても日本語の資料がたくさん出てきてしまいます。それを回避するために、以下のURLからアメリカのgoogleを使用しましょう。 https://www.google.com/webhp?gl=us&hl=en&gws_rd=cr これはパラメーターに意味があります。 gl=us:国がUSであることを指定。 hl=e
TL;DR (長い3行で) Firebase HostingにHello World出すHTMLをデプロイ ドメインはムームードメイン等で適当に取得 ブラウザ等から独自ドメインにアクセスしてHello WorldのHTMLを表示させる Firebase Hostingのセットアップ ↓ のFirebaseのConsoleから適当なProjectを作成しておきます. https://console.firebase.google.com Firebase CLI Install コマンドラインからFirebaseを制御するためのTool. # Install, あらかじめNodeのInstallが必要 $ npm install -g firebase-tools # Firebase Consoleから作ったProjectと同じアカウントでLogin $ firebase login 自U
株式会社ログラスの松岡(@little_hand_s)です。 ドメイン層のオブジェクトを設計する際に、重要な基本方針があります。 ドメインモデルの知識を対応するオブジェクトに書く 常に正しいインスタンスしか存在させない この2つを守ると、非常に保守性の高いコードにすることができます。 以下、詳細に解説します。 ドメインモデルの知識を対応するオブジェクトに書く ドメイン知識(ルール/制約)を表現する実装を、ドメイン層のオブジェクトに寄せていきます。 この判断は、「ドメインモデル図に書かれた吹き出しの内容が、どの層で実装されているか」という基準に基づき行います。 この基準はコード設計の指針として非常に役立ちます。 設計の良し悪しというのはさまざまな基準があるため、レビューをしていてもいわゆる「俺の考えた最強の設計」同士が戦ってしまうことがあります。 しかし、「ドメイン知識はドメイン層に書く」と
本記事はドメイン駆動設計(DDD) Advent Calendar 2021の13日目の記事です。 エンティティとイミュータブル性 オブジェクトをイミュータブル、つまり内部状態を変えない実装にすることで可読性やマルチスレッド対応性が向上することがあります。 エンティティはモデリング上の定義はミュータブルなものですが、実装方法をイミュータブルにすることは可能です。 (DDDでは、エンティティはミュータブルもしくはイミュータブル、値オブジェクトは必ずイミュータブルという定義です。詳しくはこちら) DDD基礎解説:Entity、ValueObjectってなんなんだ - little hands' lab 本記事ではエンティティをイミュータブルな実装にするサンプルコードと合わせて、イミュータブルにした場合の旨みを感じられるコードを紹介します。 イミュータブルなエンティティ実装の例 エンティティをイ
レッドインパルスのたかけんです。 REDIMPULZ Advent Calendar 2020 の3日目のエントリーです。 はじめに 昨日のアドベントカレンダーで、「TypeScript導入済みのミニマムなNext.jsのテンプレートを作った」という記事を作成した際に、 サンプルページを公開を公開しようと思ってVercelでデプロイしたのですが、 Vercel以外のDNSで管理しているドメインのサブドメインを設定するのに若干手こずったので、注意点をまとめようと思います。 VercelのDNS機能 VercelにはDNSの機能があり、Vercelで購入したドメインや、他のレジストラで購入したドメインもネームサーバーにVercelを設定すれば、Vercel上でドメインの管理が可能になります。 しかし、DNSは別のサービス(AWSのRoute 53など)を使っていて、VercelのDNSを使わず
どうも!大阪オフィスの西村祐二です。 Vercelは無料の個人アカウント(Hobbyプラン)でもかなりいろいろできます。複数のアプリケーションもホスティングすることができます。詳細は公式サイトをご確認ください。 Next.jsやGatsby.jsなどで作成したサイトをホスティングさせるとき、サブドメインを設定したいなと思うことがあります。 (個人的にドメインを設定するとなんだかモチベーションがあがります。) やりたいことのイメージとしては下記になります。 Route53で取得しているドメインがあるのでそれを利用してVercelでホスティングしているアプリケーションにサブドメインを設定する手順を備忘録を兼ねてまとめたいと思います。 やってみる 前提 Route53でドメインを取得済である 今回、ynishimura0922.comというドメインを利用しています。 ドメイン取得の流れは下記ブロ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く