並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 36 件 / 36件

新着順 人気順

3層アーキテクチャ 例の検索結果1 - 36 件 / 36件

  • Amazon VPCを「これでもか!」というくらい丁寧に解説 - Qiita

    はじめに AWS上で仮想ネットワークを構築できるAmazon VPCは、多くのAWSサービスが動作する基盤となる、非常に重要かつ多機能なサービスです。 多機能ゆえに公式ドキュメントやネット上の記事も断片的な機能の解説が多く、全体像を把握することが難しいサービスとも言えます。 そこで本記事はVPCの全体像を理解できるよう、各機能のつながりや動作原理を丁寧に解説し、 「VPC界の百科事典」 (あくまで例えですが…笑) となるような記事を目指したいと思います。 【追記】 実践編の記事を追加しました VPCの実画面での構築方法は、以下の別記事にまとめました。「VPCを実際に触ってみたい!」という方は、こちらもご一読いただけると嬉しいです。 VPCとは 「Virtual Private Cloud」の略で、クラウド上に仮想的なネットワークを構築するためのサービスです。 例えば、オンプレ環境でWebア

      Amazon VPCを「これでもか!」というくらい丁寧に解説 - Qiita
    • [2021年版]AWSセキュリティ対策全部盛り[初級から上級まで] というタイトルでDevelopersIO 2021 Decadeに登壇しました #devio2021 | DevelopersIO

      [2021年版]AWSセキュリティ対策全部盛り[初級から上級まで] というタイトルでDevelopersIO 2021 Decadeに登壇しました #devio2021 DevelopersIO 2021 Decadeで登壇した動画や資料を掲載、解説をしています。AWSのセキュリティについて網羅的に扱っています。ちょー長いのでご注意を。 こんにちは、臼田です。 みなさん、AWSのセキュリティ対策してますか?(挨拶 ついにやってまいりました、DevelopersIO 2021 Decade!私は「[2021年版]AWSセキュリティ対策全部盛り[初級から上級まで]」というテーマで登壇しました。 動画と資料と解説をこのブログでやっていきます。 動画 資料 解説 動画はちょっぱやで喋っているので、解説は丁寧めにやっていきます。 タイトル付けの背景 今回何喋ろうかなーって思ってたら、2年前のDeve

        [2021年版]AWSセキュリティ対策全部盛り[初級から上級まで] というタイトルでDevelopersIO 2021 Decadeに登壇しました #devio2021 | DevelopersIO
      • 「ビジネスロジック」とは何か、どう実装するのか - Qiita

        アプリケーション開発で、「ビジネスロジックは分離しろ」だとか「Controller にビジネスロジックを書くな」といったことをよく言われると思います。 しかし、ビジネスロジックという言葉の意味を聞いたり調べたりしてみても、「システムのコアの部分」とか「システムの目的になる処理をするところ」みたいなことを言われたりして、よく分かりませんでした。 そんな中、クリーンアーキテクチャや DDD の戦術的設計について学ぶことで、「ビジネスロジックとは何か」、「ビジネスロジックはどう実装するか」について、自分なりの考えが整理されてきたので、この記事ではそれをまとめます。 ※ 曖昧な言葉を自分としてどう使っているかという話になります。違う意味で使う方もいると思うので、ご注意ください ビジネスロジックとは何か 「システムのコアの部分」とか「システムの目的になる処理をするところ」といった説明も正しいとは思い

          「ビジネスロジック」とは何か、どう実装するのか - Qiita
        • JP Contents Hub

          AWS 日本語ハンズオン Amazon Web Services(AWS) の 日本語ハンズオンやワークショップを、カテゴリごとにまとめています。 右側の目次や、ヘッダー部分の検索ボックスから、各コンテンツにたどり着けます。 また、Ctrl + F や command + F を使ったページ内検索もご活用いただけます。 料金について ハンズオンで作成した AWS リソースは通常の料金が発生します。作成したリソースの削除を忘れずにお願いします。 もし忘れてしまうと、想定外の料金が発生する可能性があります。 画面の差異について ハンズオンで紹介されている手順と、実際の操作方法に差異がある場合があります。 AWS は随時アップデートされており、タイミングによってはハンズオンコンテンツが追いついていない事もあります。 差異がある場合、AWS Document などを活用しながら進めて頂けますと幸い

            JP Contents Hub
          • Firestoreセキュリティルールの基礎と実践 - セキュアな Firebase活用に向けたアプローチを理解する - Flatt Security Blog

            こんにちは、株式会社Flatt Security セキュリティエンジニアの梅内(@Sz4rny)です。 本稿では、Cloud Firestore (以下、Firestore) を用いたセキュアなアプリケーション開発を行うためのアプローチについて説明するとともに、そのアプローチを実現するセキュリティルールの記述例を複数取り上げます。 本稿を読むことで、そもそも Firestore とは何か、どのように Firestore に格納するデータの構造を設計、実装すればセキュアな環境を実現しやすいのか、また、Firestore を利用するアプリケーションにおいてどのような脆弱性が埋め込まれやすいのかといったトピックについて理解できるでしょう。 なお、本稿は以前に投稿した記事と共通する部分があります。理解を補強するために、こちらの記事も適宜ご覧ください。 flattsecurity.hatenablo

              Firestoreセキュリティルールの基礎と実践 - セキュアな Firebase活用に向けたアプローチを理解する - Flatt Security Blog
            • ビジネスロジック層内部の2つの実装パターンを比較 選択時に考えたい、アプリケーション設計の観点

              今回はアプリケーションアーキテクチャを学ぶ最初の一歩として、「MVC」や「3 層アーキテクチャ」などの基本的な用語の意味や関係性を整理する「改めて整理するアプリケーション設計の基本」。ここで大嶋氏が登壇。次に、ビジネスロジックの実装方法について紹介します。前回はこちらから。 ビジネスロジックの実装の2つのパターン 大嶋勇樹氏:ここまでの流れは、「そもそも3層アーキテクチャって何だっけ?」というところから、特に「真ん中のビジネスロジックって何だっけ?」と(いう話)、「例えば、このあたりがビジネスロジックだよね」と(いう話)。(そして)「ビジネスロジックの中には、ドメインロジックとユースケースの2種類があると考えるとわかりやすいですよ」というところまで話してきました。 ドメインロジックは、システム都合ではないコアなルールみたいなもので、ユースケースは処理の流れを実現することです。これを踏まえて

                ビジネスロジック層内部の2つの実装パターンを比較 選択時に考えたい、アプリケーション設計の観点
              • 3層アーキテクチャで最も謎な「ビジネスロジック層」 “システムのコア”をゲーム「リバーシ」で解説

                今回はアプリケーションアーキテクチャを学ぶ最初の一歩として、「MVC」や「3 層アーキテクチャ」などの基本的な用語の意味や関係性を整理する「改めて整理するアプリケーション設計の基本」。ここで大嶋氏が登壇。ここからは、3層アーキテクチャの典型例について話し、ビジネスロジック層について深掘りして紹介します。前回はこちらから。 3層アーキテクチャ+MVCの通信の流れ 大嶋勇樹氏:こうやって話してくると、具体的に「じゃあコードをどういうふうに書くの?」「どういうクラスで書くの?」ということを疑問に思うかもしれません。派生形やちょっと違う例もいろいろありますが、典型的な例を1個書いています。 (スライドを示して)これが3層アーキテクチャとMVC(Model、View、Controller)ともいえる典型例です。クラス名のつけ方はいろいろあります。これはどういう構造になっているかというと、まずCont

                  3層アーキテクチャで最も謎な「ビジネスロジック層」 “システムのコア”をゲーム「リバーシ」で解説
                • Clean Architecture on Frontend (翻訳) - Qiita

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

                    Clean Architecture on Frontend (翻訳) - Qiita
                  • アプリケーションアーキテクチャ理解に必要な“3層構造” プレゼンテーション層・ビジネスロジック層・データアクセス層それぞれの役割

                    今回はアプリケーションアーキテクチャを学ぶ最初の一歩として、「MVC」や「3 層アーキテクチャ」などの基本的な用語の意味や関係性を整理する「改めて整理するアプリケーション設計の基本」。ここで大嶋氏が登壇。続いて、3層アーキテクチャそれぞれの役割について紹介します。前回はこちらから。 本セッションにおける「3層アーキテクチャ」の定義 大嶋勇樹氏:ということで、ここまでで「そもそもアプリケーションアーキテクチャとは何でしょう」という話をしました。ここからが本題的なところで、まず最も基本、最も基本というのは僕の意見ですが、3層アーキテクチャについて話していこうと思います。なにか気になる点があれば、Q&Aに気軽に(質問して)もらえればそちらも回答します。 では、3層アーキテクチャについてに入っていこうと思います。3層アーキテクチャと言われた時に想像するものは、少なくとも私の場合は2つあります。 (

                      アプリケーションアーキテクチャ理解に必要な“3層構造” プレゼンテーション層・ビジネスロジック層・データアクセス層それぞれの役割
                    • “1つの独立して動く要素”の内部を整理し直す 「改めて整理するアプリケーション設計の基本」で伝えたいこと

                      今回はアプリケーションアーキテクチャを学ぶ最初の一歩として、「MVC」や「3 層アーキテクチャ」などの基本的な用語の意味や関係性を整理する「改めて整理するアプリケーション設計の基本」。ここで大嶋氏が登壇。まずは本セッションの内容について説明します。 大嶋氏の自己紹介 大嶋勇樹氏:では、「改めて整理するアプリケーション設計の基本」ということでお話しします。(スライドを示して)最初に私の自己紹介ですが、名前は大嶋勇樹と申します。最近はよく“しまさん”とか“しまちゃん”とか、そんなふうに呼ばれることが多いです。 キャリアは新卒で都内のあるIT企業に入って、その後フリーランスエンジニアとして独立して、今は会社を設立していろいろしています。今は実務に就き始めぐらいのエンジニアの方のスキルアップのサポートで、研修や勉強会、あと最近は「Udemy」講座をいくつか作ったりしています。 今日の発表に関連する

                        “1つの独立して動く要素”の内部を整理し直す 「改めて整理するアプリケーション設計の基本」で伝えたいこと
                      • シェルスクリプトの長所と短所のまとめ - Qiita

                        はじめに シェルスクリプトに関しての長所と短所をまとめてみました。多くの短所を上げていますが、私はシェルスクリプトを嫌っているわけではなく(むしろ逆)、現在のシェルスクリプトが抱える問題点を明らかにし、シェルスクリプトはどう使うべきか? またはどう使うべきではないか? 問題点があるならばそれを解決することはできないか? を考えるためにまとめています。問題を解決するにはまず問題点を明らかにしなければいけません。 またシェルスクリプトを本来の用途に合わないものに使うと逆に開発が難しくなってしまいます。それは使い方が悪いわけでシェルスクリプトの問題ではありません。間違った使い方によってシェルスクリプトの価値が不当に下げられてしまうことを減らすために、あえて多くの短所をあげています。つまり最初からこんな用途に使おうと思うな。ということです。(使うことを禁止はしませんが、わかった上でやりましょう。実

                          シェルスクリプトの長所と短所のまとめ - Qiita
                        • 【AWS】AWS認定『ソリューションアーキテクト- アソシエイト』(SAA)に未経験から合格した話:ふりかえり - Rのつく財団入り口

                          AWS認定の代表的な入門位置に属する資格『ソリューションアーキテクト- アソシエイト』(以下SAA)に実務未経験から一発合格できまして、多くの方にお祝いをいただきました。ありがとうございます。 いかに突破してきたかを試験後に振り返ってみるエントリです。まずは直接の学習に関わらない全体の振り返りから。 挑戦への経緯 きっかけ 書いている人のスキルセット(笑) AWSの実務経験とよく使うサービス やったこと 気持ちを切り替える 資格に挑戦することを宣言し、気持ちを高めていく イベントに行ってみる 学習記録をつけてみる ネット上の合格エントリを参考にする 最大の難関:学習時間の確保に立ち向かう 得られたことをアウトプットしてみる 理解が進んでいることを自分でも実感する 資格対策を苦行にしない 技術の変遷を楽しみながら学ぶ 挑戦への経緯 きっかけ 僕のところもグループ全体としてはAWSパートナーの

                            【AWS】AWS認定『ソリューションアーキテクト- アソシエイト』(SAA)に未経験から合格した話:ふりかえり - Rのつく財団入り口
                          • 「クラスごとの役割を明確化すること」がポイント アプリケーション設計におけるドメインロジックの分離法

                            今回はアプリケーションアーキテクチャを学ぶ最初の一歩として、「MVC」や「3 層アーキテクチャ」などの基本的な用語の意味や関係性を整理する「改めて整理するアプリケーション設計の基本」。ここで大嶋氏が登壇。続いて、Controllerにプレゼンテーション層からデータアクセス層の処理をすべて記載している場合の分離方法について紹介します。前回はこちらから。 質疑応答 ドメインモデルパターンはドメイン騒動設計と同義か? 大嶋勇樹氏:ということで、ここまでビジネスロジックの実装について話してきました。ここからは最後のステップとして、「Controllerに全部書く」からどうやってステップアップするかを話していこうと思います。 ここまでで質問があれば、ぜひQ&Aにもらえれば回答します。せっかくなので、このタイミングで「ドメインモデルパターンはドメイン駆動設計と同義ですか?」(という質問)に回答しておこ

                              「クラスごとの役割を明確化すること」がポイント アプリケーション設計におけるドメインロジックの分離法
                            • 「ビジネスロジックの処理は2つに分類すると整理しやすい」 4つの例から考える、プレゼンテーション層・データアクセス層の見分け方

                              今回はアプリケーションアーキテクチャを学ぶ最初の一歩として、「MVC」や「3 層アーキテクチャ」などの基本的な用語の意味や関係性を整理する「改めて整理するアプリケーション設計の基本」。ここで大嶋氏が登壇。さらに、ビジネスロジック層の役割について深掘りします。前回はこちらから。 リクエストの形式チェックはビジネスロジック層の役割か? 大嶋勇樹氏:(スライドを示して)続けて「これはビジネスロジック?」(というもの)をもう少し見ていこうと思います。2つ目として、リクエストの形式チェックがあります。 例えば、リクエストの必須パラメーターが足りているかとか、データサイズは決められた範囲内かとか、そういうチェックがあると思いますが、個人的にこれはプレゼンテーション層でチェックすべきものだと思っています。 なぜかというと、リクエストは利用者とのインターフェイス、利用者との境界での約束事に対するチェックな

                                「ビジネスロジックの処理は2つに分類すると整理しやすい」 4つの例から考える、プレゼンテーション層・データアクセス層の見分け方
                              • 重要なのは「基本を押さえ、適したものを採用すること」 “本来の役割”を押さえたアプリケーション設計

                                今回はアプリケーションアーキテクチャを学ぶ最初の一歩として、「MVC」や「3 層アーキテクチャ」などの基本的な用語の意味や関係性を整理する「改めて整理するアプリケーション設計の基本」。ここで大嶋氏が登壇。最後に、本来のアクティブレコードの設計パターンと役割について整理します。前回はこちらから。 アクティブレコード系のO/Rマッパーを使用している場合のステップアップ方法 大嶋勇樹氏:次に「Controllerに全部書く」からのステップアップの例2を出していこうと思います。 (スライドを示して)今度はRuby on RailsやLaravelといった、アクティブレコード系のO/Rマッパーを使う例を考えてみようと思います。よくある苦しくなりやすい構成はこうなっています。 最近はやはりRailsやLaravelを使って開発している例も多いし、入門で勉強する方も多いのですが、このRails、Lara

                                  重要なのは「基本を押さえ、適したものを採用すること」 “本来の役割”を押さえたアプリケーション設計
                                • 【全2回】AWS Lambda x FastAPIによるPythonモダンAPI開発のすゝめ 2 - RAKSUL TechBlog

                                  はじめに 対象読者 あまり説明しないこと 前提とするバージョン 参考となるレポジトリ 3. アーキテキチャ及びディレクトリ構造 オニオンアーキテクチャを採用 オニオンアーキテクチャとは 誕生の背景 依存関係逆転の原則の活用 採用理由 参考になった記事 ディレクトリ構造 全体の構成 api schema apiとusecaseの間のデータ構造を提供する役割 schemaはパスオペレーション関数のリクエストとレスポンスの構造を提供する役割 usecase domain infrastructure core container_config exception 参考にしたもの まとめ はじめに ラクスルグループのノバセルで新卒2年目のエンジニアをしています田村(tamtam)です。 第1回では、AWS Lambda x FastAPIによるPythonモダンAPI開発を実現する上で役立つであろ

                                    【全2回】AWS Lambda x FastAPIによるPythonモダンAPI開発のすゝめ 2 - RAKSUL TechBlog
                                  • [神機能]Security HubでCISの違反を自動修復する仕組みが提供されたので試したりちょっと深堀りして理解してみた | DevelopersIO

                                    [神機能]Security HubでCISの違反を自動修復する仕組みが提供されたので試したりちょっと深堀りして理解してみた セキュリティ運用の自動化をめちゃくちゃ簡単に展開して利用できる神リリースです。これからAWSアカウントのセキュリティをちゃんとやりたい人も、大規模な環境のAWSセキュリティ管理を簡単にしたい人にもオススメのソリューションです! こんにちは、臼田です。 みなさん、快適なセキュリティ運用してますか?(挨拶 出たときにはフーン( ´_ゝ`)ぐらいに思っていたのですが使ってみるとなかなか神機能なSecurity Hubの新しい仕組みがリリースされました。 AWS Security Hub で自動化された応答と修復ソリューションの一般提供が開始に これまでSecurity HubはAWS環境のセキュリティリスクを具体的にチェックする仕組みをセキュリティ基準(standard)と

                                      [神機能]Security HubでCISの違反を自動修復する仕組みが提供されたので試したりちょっと深堀りして理解してみた | DevelopersIO
                                    • Next.jsとTypescriptが奏でるUniversal JSの世界 ~commmune を支えるアーキテクチャ~ - Commune Engineer Blog

                                      commmuneとは? アーキテクチャの全体像 概観 組織アーキテクチャ おもな要素技術のご紹介 バックエンド Express + Passport + Sequelize Cloud SQL(MySQL) nginx (Let's Encrypt) SendGrid Elasticsearch BigQuery imgix フロントエンド Next.js Redux redux-saga プロジェクト基盤 Typescript Circle CI Cloud Functions Cloud DNS (参考)Universal / Isomorphic JavaScript 1. 型定義ファイル、定数ファイルを楽に共有できる 2. 未知の領域への不安を和らげることができる APIサーバのアーキテクチャ commmuneとは? 企業独自の「ユーザーコミュニティ」のカンタンな構築と、効果的な運

                                        Next.jsとTypescriptが奏でるUniversal JSの世界 ~commmune を支えるアーキテクチャ~ - Commune Engineer Blog
                                      • 目的を選ぶだけでクラウドアーキテクチャを作ることができるユーザ体験を目指して - NTT Communications Engineers' Blog

                                        この記事は、 NTT Communications Advent Calendar 2023 10日目の記事です。 そして、DevOpsプラットフォームの取り組みを紹介する9回目の記事です。Qmonus Value Streamについては、当プロダクトの連載記事をご覧ください。 はじめに こんにちは、イノベーションセンターのQmonus Value Stream チームに所属している松本です。 私たちQmonus Value Stream チームのミッションはNTTコミュニケーションズおよびNTTグループ向けDevOpsプラットフォームであるQmonus Value Streamを開発してプロダクトチームに提供し、プロダクトチームを課題解決に集中させることでプロダクトの成功に寄与することです。 本記事は、そんなDevOpsプラットフォーム Qmonus Value Streamを使ってユー

                                          目的を選ぶだけでクラウドアーキテクチャを作ることができるユーザ体験を目指して - NTT Communications Engineers' Blog
                                        • MVC、3 層アーキテクチャから設計を学び始めるための基礎知識 - Qiita

                                          はじめに アプケーション・アーキテクチャについて学ぶと「MVC」や「3 層アーキテクチャ」といった言葉にたどり着きます。 さらに勉強を進めると「MVVM」、「ドメインモデル」、「クリーンアーキテクチャ」など、よく分からない言葉がどんどん増えていきます。 また、「オブジェクト指向」を勉強しても、実際のアプリケーションでの使いどころが分からなかったりします。 この記事では、これらの用語の非常に分かりにくい関係を整理しました。 2 種類の 3 層 伝統的な Web アプリケーションは、以下のように 3 種類のサーバから成り立ちます。 このサーバ構成を 3 層アーキテクチャと言うことがあります。 一方、アプリケーションサーバで動いているプログラムの内部構造も、以下のように 3 層に分離することがあります。 これも 3 層アーキテクチャと言うことがあります。 この記事では、サーバの構成ではなく、アプ

                                            MVC、3 層アーキテクチャから設計を学び始めるための基礎知識 - Qiita
                                          • スターターキット

                                            クラウドスターターキット¶ About¶ AWSにおける3層アーキテクチャのためのテンプレートになります(以降スターターキットと呼びます)。 構成¶ スターターキットは1つのドキュメントリポジトリと2つのアプリケーション用リポジトリで構成されます。 y-ohgi/starterkit スターターキットのドキュメントです。 当リポジトリ(gitbook)です。 y-ohgi/starterkit-inf TerraformでAWSの共通リソース(VPC, ALB, ECS Cluster, etc...)を記載 y-ohgi/starterkit-app アプリケーションコード用リポジトリ ローカル環境ではdocker-composeを、本番環境では"starterkit-inf"で構築した共通リソースの上にECS/Fargateを構築します。 サンプルとして別ブランチにgolangでの例を

                                            • ZOZOTOWN検索マイクロサービスにおけるキャッシュの導入とその効果 - ZOZO TECH BLOG

                                              はじめに こんにちは。検索基盤部 検索基盤チームの佐藤(@satto_sann)です。検索基盤チームでは、 ZOZOTOWNの検索周りのシステム開発に日々取り組んでいます。 本記事では、ZOZOTOWNの検索マイクロサービスにおけるキャッシュ導入で得られた知見や工夫点について紹介します。検索に限らずマイクロサービスへキャッシュの導入を検討されている方の参考になれば幸いです。 目次 はじめに 目次 キャッシュの導入背景 負荷とレイテンシの悪化 ABテストの仕組みをマイクロサービスへ移設する上での問題 キャッシュ導入の検証 Cache Stampede Cache Stampedeの対策 2重キャッシュ 分散していたキャッシュの統合 キャッシュの有効期限 定められたタイミングでの情報反映 キャッシュ導入後の構成 キャッシュ制御の設計 【A案】アプリケーション層とドメイン層の間 【B案】ドメイン

                                                ZOZOTOWN検索マイクロサービスにおけるキャッシュの導入とその効果 - ZOZO TECH BLOG
                                              • 堅牢な node.js プロジェクトのアーキテクチャとは? - Qiita

                                                こちらの記事は、Sam Quinn 氏により2019年 4月に公開された『 Bulletproof node.js project architecture 』の和訳です。 本記事は原著者から許可を得た上で記事を公開しています。 GitHub repositoryでの実装例: 2019/04/21 アップデート 始めに Express.jsは、node.js のREST APIを作成するための優れたフレームワークですが、node.jsプロジェクトの設計方法についての手がかりを与えてくれるものではありません。 ばからしく聞こえるかもしれませんが、この問題は確かに存在するのです。 node.jsプロジェクト構造の正しい設計により、コードの重複を回避でき、安定性を向上させます。また、正しく設計されていれば、サービスをスケールさせるときに役に立つかもしれません。 この記事は、貧弱な構造のnode.

                                                  堅牢な node.js プロジェクトのアーキテクチャとは? - Qiita
                                                • 「テスタビリティの高いGoのAPIサーバを開発しよう」というハンズオンを公開しました - DeNA Testing Blog

                                                  はじめに SWETグループのGoチームの伊藤(@akito0107)です。 「テスタビリティの高いGoのAPIサーバを開発しよう」というタイトルでGoを用いてWeb APIを書くエンジニア向けのハンズオンを公開しました。 この記事ではハンズオンの内容と補足を紹介しようと思います。 ハンズオンのねらい このハンズオンでは、APIサーバーを題材としてテスタビリティを担保した設計をするためには何が必要なのかを学んでもらうことを目的にしています。 特に、私自身がテスタビリティを考える上で重要だと考える、Dependency InversionやDependency Injection (DI), Test Doubleについて詳しく説明し、さらには自分で実装してもらう形をとっています。 Goでは他の言語と違い、デファクトのWeb Frameworkなどはありません(強いて言うなら標準がデファクトで

                                                    「テスタビリティの高いGoのAPIサーバを開発しよう」というハンズオンを公開しました - DeNA Testing Blog
                                                  • トランザクションスクリプトとDDD

                                                    エヴァンスが2003年に書籍 Domain-Driven Design で紹介してから早17年。 やっと時代が追いつき、近年ではこれまでにないほど DDD が注目を集めている。 注目が高まるとともに、DDD を取り扱う良質な書籍も増え、 私自身も複数の DDD の実践を経て、以前よりも理解は進んできたように思う。 そこで、私の現時点での DDD に対する解釈を、一度ここに書き起こし、残してみようと思う。 (これはあくまで現時点での解釈であり、解釈のアップデートがあれば書き換えるかもしれない。) なお本稿では、ドメインエキスパートや、ユビキタス言語といった、 DDD のプロジェクトへの適用側面には触れず、あくまでプログラミングする際に どのように理解、適用していけばよいかを中心に見ていく。 2011年9月、Spring Framework 3.0.6がリリースされて間もない頃、Spring

                                                    • ITベンダー資格の英語受験はイイぞ - Qiita

                                                      はじめに 先日、AWS認定資格を受験してきた。せっかくやるなら英語で受験すれば、AWSも英語も身に着けることができるので、一石二鳥なのではないかという安直な考えから、英語で試験を予約し、勢いで受験してきたのだが、一連の受験体験がとても良かったので、共有したいと思う。 今回受験したのは、SAP, DVA, DBSの3つの試験である。1週間に1つの資格を取得するペースで3週間で受験してきた。いずれの試験も英語で受験を行った。 AWS認定試験に限らず、ITベンダー資格には英語受験の機会が設けられている。以降の章では、資格の種別を問わず、英語受験する際に共通するメリットを挙げているが、AWS認定試験の受験体験を前提とした記となっている点に留意いただきたい。 経歴 Slerでサラリーマンみたいなことしてるので技術的なことはそこまで詳しくない SAAを2年前に取得済み 1 AWSの経験は少しある 2

                                                        ITベンダー資格の英語受験はイイぞ - Qiita
                                                      • 防御的プログラミングと契約プログラミング - よしたろうブログ

                                                        1. 猜疑心か相互信頼か、防御的か契約に基づくか 防御的プログラミングと契約プログラミングについて、後述する勉強会で疑問を持ち、勉強会内で説明されていること深堀りしてみました。 asken.connpass.com すべてが勉強になる話だったのですが、こちらの記事でフォーカスするのは「クラス設計スタイル」におけるふたつの選択肢 トランザクションスクリプト方式 ドメインモデル方式 に登場する「防御的プログラミングと契約プログラミング」になります。 トランザクションスクリプト方式が「防御的プログラミング」 ドメインモデル方式が「契約プログラミング」 増田さんのお話ではクラス設計において変更容易性を実現するには「ドメインモデル方式」選択すべきというお話でした。 本記事では、実装フェーズにおいて、各クラスがどのレイヤー以降なのか?によって、防御的・契約どちらのプログラミングを行うべきか異なる。とい

                                                          防御的プログラミングと契約プログラミング - よしたろうブログ
                                                        • Builders Box イベントレポート 〜クリーンアーキテクチャ〜 (前編) - Sansan Tech Blog

                                                          はじめに はじめまして。DSOC の Gees・Jes チーム所属の松本です。 普段は 名刺のデータ化システム「GEES」や、人事異動データ化システム「JES」の開発を、主にRuby on Railsで行っています。 今回は弊社が運営するBuilders Boxの主催で2021年1月29日 に行われた 「ON AIR #3 クリーンアーキテクチャ」のイベントレポートということで、自身のクリーンアーキテクチャの経験とを交えてレポートしたいと思います。 今回のイベントで一番印象に残ったのは、イベントの内容も然りですが、それ以上にMartin氏のなんと素敵な(豪快な)笑い方と笑顔! 最初の挨拶以外は日本語の同時通訳が提供されていたため日本語でイベントを聞いていましたが、その裏からもMartin氏の素敵な笑い声が聞こえてきていて、とても楽しそうにアーキテクチャの会話をされているのが非常に印象的でし

                                                            Builders Box イベントレポート 〜クリーンアーキテクチャ〜 (前編) - Sansan Tech Blog
                                                          • Web APIアーキテクチャ|デジタル庁 ガバメントクラウド

                                                            デジタル庁クラウドチーム Cloud Architect 山本教仁 前回のnote記事「マネージドサービス、コンテナ、サーバレス」を説明した際に、Web API (Application Programming Interface)アーキテクチャを採用することで、従来のWeb 3層アーキテクチャ実現方式よりサーバアプリケーションを軽量化でき、コンテナ化と合わせて大規模なアプリケーションをより低コストで実現できると説明しました。アプリケーションアーキテクチャを選択する際には、システム要求や既存の各種制約、開発効率、その他さまざまな観点から検討すると思いますが、ここではインフラ技術とコスト最適という観点からWeb APIアプリケーションアーキテクチャについて説明します。従来のWebアプリケーションサーバで画面を生成してブラウザに返し、画面間の遷移を管理するというアーキテクチャに比べて、ユーザ体

                                                              Web APIアーキテクチャ|デジタル庁 ガバメントクラウド
                                                            • AWS Support - Troubleshooting in the cloud Workshopをやってみた③

                                                              AWS Support - Troubleshooting in the cloudとは AWSが提供するWorkshopの一つで、現在(2024/5)は英語版が提供されています。(フィードバックが多ければ日本語化も対応したいとのこと) クラウドへの移行が進む中でアプリケーションの複雑性も増しています。このワークショップでは様々なワークロードに対応できるトラブルシューティングを学ぶことが出来ます。AWSだけでなく一般的なトラブルシューティングにも繋がる知識が得られるため、非常にためになるWorkshopかと思います。また、セクションごとに分かれているので、興味のある分野だけ実施するということも可能です。 学習できるコンテンツ・コンセプトとしては、CI/CD、IaC、Serverless、コンテナ、Network、Database等のシステムに関わる全てのレイヤが網羅されているので、ぜひ一度

                                                                AWS Support - Troubleshooting in the cloud Workshopをやってみた③
                                                              • 非同期処理と対障害性を実現する、アクターモデルを用いたアプリケーション構成

                                                                マーベリック株式会社のリチャード 伊真岡です。この連載では非同期処理に役立つアクターモデルを学ぶため、JavaとScalaから使えるOSSであり、アクターモデルの実装を提供するAkkaを紹介します。前回の記事ではミュータブルオブジェクトの管理はなぜ難しいのか、そしてアクターモデルの仕組みがなぜミュータブルオブジェクト管理を楽にしてくれるのかを解説しました。今回はアクターモデルを用いたアプリケーション構成を紹介していきます。 Akkaらしいアプリケーションの設計 記事を読みすすめる上で、いったん伝統的な3層アーキテクチャ、つまりWeb API層、アプリケーション層、データベース層という構成は一度忘れてください。3層アーキテクチャでよくある「アプリケーション層で処理を行う際、常にデータベース読み出し・書き込みを意識する」作り方ではなく、アクターモデルの思想に沿った「アクター同士がメッセージを送

                                                                  非同期処理と対障害性を実現する、アクターモデルを用いたアプリケーション構成
                                                                • 開発効率、運用性、保守性のカギを握る「アーキテクチャ」選定ポイントとは?──ISIDの現役アーキテクトがアーキテクチャの学習ステップを解説 - TECH PLAY Magazine

                                                                  アーキテクチャが不在のレガシーコードは、エンジニアを疲弊させ、ビジネスのスピードも遅延させてしまう。そんな事態を避けるためには、開発の開始段階から適切なアーキテクチャを導入することが重要だ。そもそもアーキテクチャとは何なのか。どのような種類があり、どれを選択すればよいのか。設計や実装における注意点なども含め、電通国際情報サービス(以下、ISID)の現役アーキテクトが解説する。 アーキテクチャの定義、プロジェクトにおける設計・実装を解説 株式会社電通国際情報サービス Xイノベーション本部 エンタープライズプラットフォームセンター チーフアーキテクト 米久保 剛氏 最初に登壇したのは、2008年にISIDにジョインした、米久保剛氏だ。米久保氏はアーキテクトとして複数の大型SI案件への参画を経験した後、現在は非IT部門の担当者でもノーコードで、社内の各種申請業務を電子化するワークフローシステム「

                                                                    開発効率、運用性、保守性のカギを握る「アーキテクチャ」選定ポイントとは?──ISIDの現役アーキテクトがアーキテクチャの学習ステップを解説 - TECH PLAY Magazine
                                                                  • いきなりWebアプリケーションエンジニアになった未経験者に最低限知っておいてほしいこと - Qiita

                                                                    あらすじ サラリーマンをしていると、自分の望まない仕事もしないといけません。 今までWebアプリケーション開発に携わったことがないけれど、仕事でやることになったので急遽知識が必要になった方向けの記事です。 Webアプリケーションとは Microsoft EdgeやGoogle ChromeやFirefoxなどのウェブブラウザでアクセスしてログインしてポチポチして登録とか更新とか閲覧とか削除とかするソフトウェアです。 ヤフーにしろグーグルにしろアマゾンにしろ楽天市場にしろ、ウェブブラウザを使って利用するソフトウェアはWebアプリケーションです。 特徴としては、クライアント/サーバーシステム(いわゆるクラサバ)と違い、クライアント端末(パソコン)に特定のアプリケーションをインストールする必要がありません。 つまり、ウェブブラウザとインターネット環境さえあれば誰でも利用でき、基本的にはクライアン

                                                                      いきなりWebアプリケーションエンジニアになった未経験者に最低限知っておいてほしいこと - Qiita
                                                                    • 【初心者向け】AWSは怖くない!これだけ読めばAWSのアーキテクチャ図がわかるようになる〜後編〜 - Qiita

                                                                      こちらはシリーズ記事の後編です。 前編はこちらからどうぞ。 【初心者向け】AWSは怖くない!これだけ読めばAWSのアーキテクチャ図がわかるようになる〜前編〜 前回の続き ここでちょっと図を整理します。 ・3層アーキテクチャの各層の名称を削除 ・仮想サーバー(インスタンス)の領域を明確化 世界中にあるAWSのサーバーの中で、どこにあるサーバーを使いたいですか? AWSは世界各地にの主要な都市(リージョン)ごとに、複数のデータセンター群(アベイラビリティゾーン)(イメージ図)があり、それぞれに固有のIDが振られています。 現在、日本を例にとると… ・東京リージョン(ap-northeast-1) 4つのアベイラビリティゾーン(ap-northeast-1a ~ ap-northeast-1d) ・大阪リージョン(ap-northeast-3) 3つのアベイラビリティゾーン(ap-northea

                                                                        【初心者向け】AWSは怖くない!これだけ読めばAWSのアーキテクチャ図がわかるようになる〜後編〜 - Qiita
                                                                      • Amazon VPCを「これでもか!」というくらい丁寧に解説 - Qiita

                                                                        はじめに AWS上で仮想ネットワークを構築できるAmazon VPCは、多くのAWSサービスが動作する基盤となる、非常に重要かつ多機能なサービスです。 多機能ゆえに公式ドキュメントやネット上の記事も断片的な機能の解説が多く、全体像を把握することが難しいサービスとも言えます。 そこで本記事はVPCの全体像を理解できるよう、各機能のつながりや動作原理を丁寧に解説し、 「VPC界の百科事典」 (あくまで例えですが…笑) となるような記事を目指したいと思います。 【追記】 実践編の記事を追加しました VPCの実画面での構築方法は、以下の別記事にまとめました。「VPCを実際に触ってみたい!」という方は、こちらもご一読いただけると嬉しいです。 VPCとは 「Virtual Private Cloud」の略で、クラウド上に仮想的なネットワークを構築するためのサービスです。 例えば、オンプレ環境でWebア

                                                                          Amazon VPCを「これでもか!」というくらい丁寧に解説 - Qiita
                                                                        • 【感想】『マイクロサービスパターン 実践的システムデザインのためのコード解説』:後編 - Rのつく財団入り口

                                                                          マイクロサービスパターン 同書の読書記録と感想、長いので3回に分けた最終回です。 マイクロサービスパターン[実践的システムデザインのためのコード解説] impress top gearシリーズ 作者:Chris Richardson,長尾高弘,樽澤広亨発売日: 2020/03/23メディア: Kindle版 マイクロサービスパターン Chapter 9 マイクロサービスのテスト(前編) 9.1 マイクロサービスアーキテクチャのテスト戦略 9.2 サービスのユニットテストの開発 Chapter 10 マイクロサービスのテスト(後編) 10.1 統合テストの開発 10.2 コンポーネントテストの開発 10.3 エンドツーエンドテストの開発 Chapter 11 本番環境に耐えられるサービスの開発 11.1 セキュアなサービスの開発 11.2 設定可能なサービスの設計 11.3 可観測性を備えた

                                                                            【感想】『マイクロサービスパターン 実践的システムデザインのためのコード解説』:後編 - Rのつく財団入り口
                                                                          1