インターネット上のIPアドレスやドメイン名などの管理や調整を行っているICANN(Internet Corporation for Assigned Names and Numbers)は、プライベートネットワークやホームネットワークのためのトップレベルドメインとして「.INTERNAL」を予約語として割り当てるという提案を1月24日付で公開しました。 プライベートネットワークには、「192.168.xx.xx」などの専用のIPアドレス空間が公式に割り当てられており、このIPアドレス空間はインターネット上のIPアドレスと衝突しないことが約束されています。 しかし、このIPアドレス空間で管理されているプライベートネットワークのために公式に割り当てられたドメイン名の名前空間は、現時点ではありません。 そのため、プライベートネットワークの運用者がプライベートネットワーク内で何らかのドメイン名を運
Gmailが「メール送信者のガイドライン」を改訂し、なりすましメールへの対策を強化する旨を発表しています。今までは原則、なりすましメール対策の有無にかかわらず、メールはいちおうは届いていました。しかし今後は、なりすましとみなされたメールは届かなくなる方向に向かいつつあります。 なりすましメールとみなされないようにするために、メール送信者には、「メール送信ドメイン認証」への対応が求められます。メール送信ドメイン認証の技術には、主に以下の3つがあります。 SPF: Sender Policy Framework (RFC 7208) DKIM: DomainKeys Identified Mail (RFC 6376) DMARC: Domain-based Message Authentication, Reporting, and Conformance (RFC 7489) SPFは従来
はじめに フロントエンドのディレクトリ構成、世の中に色んな「推し」が有って悩みますよね。 例えば、、、 さらに最近は、App Directoryの登場や、それに合わせたNext.js公式の「推し」構成がドキュメント化されたりと、さらに色々なパターンが出てきています。 本記事の趣旨 本記事では、具体的な構成そのものではなく、 様々ある構成を横串で見通して整理できる設計思想を紹介します。 新しい推し構成の紹介ではなく、構成を考えたり決めたりするときに役立つ抽象的・汎用的な指針を提供できればと考えています。 基本となる考え 分割の方向 一般的に、アーキテクチャにおける分割には2つの方向が有ります。 (出典も良書なのでリンクを貼っておきます: https://www.amazon.co.jp/dp/4873119820) これはディレクトリにおいても同じだと思っていて、筆者は分かりやすさのために
この記事では、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 本記事ではエンティティをイミュータブルな実装にするサンプルコードと合わせて、イミュータブルにした場合の旨みを感じられるコードを紹介します。 イミュータブルなエンティティ実装の例 エンティティをイ
長い記事なので先に結論を書きます。 Spectre の登場で、ウェブサイトに必要とされるセキュリティ要件は増えました。具体的に必要な対策は下記の通りです。 すべてのリソースは Cross-Origin-Resource-Policy ヘッダーを使って cross-origin なドキュメントへの読み込みを制御する。 HTML ドキュメントには X-Frame-Options ヘッダーもしくは Content-Security-Policy (CSP) ヘッダーの frame-ancestors ディレクティブを追加して、cross-origin なページへの iframe による埋め込みを制御する。 HTML ドキュメントには Cross-Origin-Opener-Policy ヘッダーを追加して popup ウィンドウとして開かれた場合の cross-origin なページとのコミュニ
こちらはDEV Communityに2021年9月2日に投稿され、現在反響を巻き起こしているフロントエンドにおけるクリーンアーキテクチャの実装についてのAlexさんの記事になります(原文はこちら)(twitterにて翻訳掲載許可取得済み)。 かなり大ボリュームな超大作記事となっておりますが、Reactなどを使ったフロントエンドプロジェクトのディレクトリー構成やファイルごとの責務の切り分けのベストプラクティスなどの決定版といえるものがまだまだ出てこない中で、個人的にまさに待ち侘びていたような内容の記事かと思い、是非日本のフロントエンドコミュニティでも知見が共有されればと思いました。 それでは以下、本文です。 *翻訳は大部分をDeepL翻訳によって行っていますが、適宜修正してあります。 少し前に、私はフロントエンドにおけるクリーンアーキテクチャについての講演を行いました。この記事では、その講演
こんにちは!エンタメ領域のDXを進めるブロックチェーンスタートアップ、Gaudiyでバックエンドエンジニアをしている椿(@mikr29028944)です。 Gaudiyは、まだエンジニア10名、デザイナー2名ほどの開発チームですが、今年の6月からDDDと呼ばれるドメイン駆動設計を開発に取り入れました。 DDDとは、一言で言うとドメインエキスパートと呼ばれる担当業務やシステム設計に最も詳しい人と、エンジニアが共創してソフトウェアを開発する手法です。 今回は、DDDを実践する中での気づきや学び、躓きやすいポイントをどのように乗り越えてきたかについて、ご紹介してみたいと思います。 DDDを検討しているチームや、導入して間もないチームのご参考になれば幸いです! 1.なぜDDDを導入したのか 2.GaudiyではどのようにDDDを取り入れているか 3.DDDの実践で生じた課題と乗り越え方 3-1.チ
リーダブルコード by DDD モデリングを起点に可読性の高いコードを実現する
レッドインパルスのたかけんです。 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というドメインを利用しています。 ドメイン取得の流れは下記ブロ
この記事は ドメイン駆動設計 Advent Calendarの記事です。 今年の9月にログラスというスタートアップに転職しました。 ログラスは元々DDDについて講師として勉強会をさせてもらっていた会社であり、DDD自体は社として取り組んでおりある程度進んでいました。ですが、講師ではなく中の人になったからこそできる色々な取り組みがあり、3ヶ月である程度形になりました。 本記事では、DDDを広めるための取り組みについて、極力再現性がある形を意識しつつ、ご紹介したいと思います。 入社時の状況 なにをしたか テストの話が多い理由 実施内容詳細 TDD Boot Campの@t_wadaさんの基調講演観賞会を行った Serviceクラスを1パブリックメソッドにした レイヤーごとのオブジェクトの依存関係を整理 レイヤーごとのテスト方針 クラス名の重要性 参照実装を作成した 「責務」と「テスト」の重要性
by GuillermoJM ウェブサービスにとって「ドメイン」はサービスの入り口にあたる非常に大切な存在です。そんなドメインの登録に「Google Domains」を利用していたオンラインドキュメント作成サービス「GitBook」が、Googleにドメインをブロックされサービスを一時的に提供できなくなったとブログで報告しています。 06/2020: GitBook domains blocked by registrar - GitBook's Blog https://blog.gitbook.com/tech/post-mortems/06-20-gitbook-domains-blocked-by-registrar 協定世界時の6月4日午前6時40分、GitBookのチームは特定のサービスがアクセス不能になっていることにアラートで気づいたとのこと。その8分後の午前6時48分に、G
はじめに S3を使うと手軽に静的ウェブサイトホスティングすることができ、 Route53でCNAMEを指定すれば独自ドメインでホスティングすることができます。 ただhttps化することはできずChromeでは「保護されていない通信」扱いされてしまいます。 そこでCloudFrontを使ってS3で独自ドメインhttpsホスティングさせたときのメモです。 前提 独自ドメイン取得済みでACMなどの設定済 S3バケット作成 任意の名称でS3バケットを作成する CloudFront Distributions 作成 CloudFrontへアクセス 「Create Distributions」-Web:「Get Started」 下記設定項目入力 S3許可用のOrigin Access Identity追加 Distributionsの「Origins and Origin Groups」よりOrig
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く