タグ

設計とアーキテクチャに関するR2Mのブックマーク (11)

  • Architecture Decision Record を一年運用してみた - Qiita

    この記事は、株式会社カオナビ Advent Calendar 2023の2日目です。 カオナビでは2022年9月からArchitecture Decision Record(以下ADR)を導入開始しました。記事ではADRを導入し実際に一年間運用して見た経過をご報告しつつ、導入のポイントや注意点について紹介します。 ADRをなぜ導入したのか? まずADRについて簡単に説明すると、「アーキテクチャー設計の記録をドキュメントとして残すこと」 です。Michael Nygardのブログ記事が初出のようです。 ソフトウェア開発を行っていく間には、途中で様々な設計決定をする必要があります。例えばウェブアプリケーションであれば、データベースはMySQLにしようとか、キャッシュはRedisを使おうとかという実行環境の決定の話から、実際のプログラムの基構造といったところまで様々です。 この設計決定は、口

    Architecture Decision Record を一年運用してみた - Qiita
  • WebAPIを構築する際にAPI Gateway+Lambdaを選択するべきか?

    はじめに このツイートに結構反響があったので、雑になるがとにかく自分の考えをダンプする。もともと書いていた記事はうっかりやらかしてデータロストした、泣きたい。 話をわかりやすくするために、ALB+ECS(Fargate)を使ってWebAPIと対比して説明しているが現実はもっと複雑である。 引用リツイートをもらえた部分などについてもアンサーっぽいことも書いていく。 AWS利用費と人件費の話 AWS上にWebAPIを構築する際に、AWS利用費の削減をモチベーションとしてApiGW+Lambda構成が、採用されることがある。確かにAWS利用費は下がるがApiGW+Lambda構成を設計〜運用するためにはAWSに関する知識の中でもとくに専門的な知識が必要になる。こういった人材を雇用または外部へ発注し続けることは人件費に跳ね返ってくる。 ApiGW+LambdaがWebAPIのための構成として唯一無

    WebAPIを構築する際にAPI Gateway+Lambdaを選択するべきか?
  • React で作る中規模 SPA のレイヤードアーキテクチャ - GiXo Ltd.

    TAG : Advent Calendar | Firebase | Firestore | React | Refeed | TypeScript | トチカチ | フロントエンド AUTHOR :   ギックス POSTED :  2020.12.23 08:25 この記事は GiXo アドベントカレンダー の 23 日目の記事です。 昨日は、少人数の開発で Kubernetes を活用するための設計戦略 でした。 MLOps Div. の堀越です。記事では、ReactTypeScript で SPA の実装を行う際に採用しているレイヤードアーキテクチャについてご紹介します。 レイヤードアーキテクチャというとクリーンアーキテクチャや DDD が有名ですが、弊チームフロントエンド の場合はクリーンアーキテクチャから SPA にマッチする箇所を部分的に取り入れた簡易版のレイヤードア

    React で作る中規模 SPA のレイヤードアーキテクチャ - GiXo Ltd.
  • ADOP (Application Domain Others Pattern)

    TL;DR ADOP はヘキサゴナルアーキテクチャの実装パターンとして考えられます。 パターンという名前はそれに由来します。 あえて名付けた理由はこぼれ話をご確認いただけると幸いです。 ADOP の概要 ADOP (Application Domain Others Pattern) は中長期的に運用可能なコードへ誘導するアプリケーションアーキテクチャパターンです。 ADOP は次の特徴があります。 最小限のルールである 指針が明確である 特定の技術スタックに縛られない テスタビリティが確保される これらの特徴は、コードを自然と中長期的に運用可能なコードへ導きます。 まず、簡単にそれぞれがどういった意味を成すのかを確認してきましょう。 最小限のルールである どれほど完璧な作戦であっても、その実行が不可能であれば何の意味もありません。 プログラミングにおいてもそれは同じことで、制約を守るため

    ADOP (Application Domain Others Pattern)
  • アーキテクチャ設計における垂直思考と水平思考 - kawasima

    このADRをレビューするにあたっては、コンテキストのセクションもよくよく議論すべきで、意思決定が妥当かだけ見ても、「実はコンテキストに誤りやあやふやなところがありA案よりもB案の方が良かった…」みたいなことが発生するし、十分にコンテキストが理解されていない第3者や有識者をまじえてのレビューでは、レビューアに意思決定の構造を理解してもらいにくい、ということもある。

    アーキテクチャ設計における垂直思考と水平思考 - kawasima
  • アクターモデルとアプリケーションアーキテクチャの関係 - nkty blog

    背景 マイクロサービスアーキテクチャが浸透し、それに伴いDDDを導入する企業も増えている気がします。 それと同時に、アクターモデルの話題も最近以前より聞くようになった気がします。 ただ、以下のような疑問を持つ人は多くいるのではないでしょうか? アクターモデルは聞いたことがあるけど、重要性が分からない 使い所が分からない サーバーレスコンピューティングなの?でもAkkaの説明ばかり出てくるけど? こういう状況になっている要因の一つは、おそらく、アクターモデルの説明の多くが分散システムにフォーカスしており(当たり前なんですが)、アプリケーションアーキテクチャとの関係性については、使う人まかせになっているためではないでしょうか。 ここでは、アプリケーションアーキテクチャと合わせて、アクターモデルの使い所を考えてみます。 先に結論 アクターモデルは、分散環境で実行するアプリケーションを開発するため

    アクターモデルとアプリケーションアーキテクチャの関係 - nkty blog
  • 実践クリーンアーキテクチャ - 複雑化した大規模ECサイトをモダナイズしたモノタロウの事例 - エンジニアHub|Webエンジニアのキャリアを考える!

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

    実践クリーンアーキテクチャ - 複雑化した大規模ECサイトをモダナイズしたモノタロウの事例 - エンジニアHub|Webエンジニアのキャリアを考える!
  • 新卒にも伝わるドメイン駆動設計のアーキテクチャ説明[DDD] - little hands' lab

    ドメイン駆動設計で実装を始めるのに一番とっつきやすいアーキテクチャは何か ドメイン駆動 + オニオンアーキテクチャ概略 以前こちらの記事でアプリケーションアーキテクチャについて書きました。 こちらの記事では比較的ネタ元に忠実な解説をしたのですが、実際これに基づいて人にレイヤの説明をした際、依存性の逆転部分や円形で表現する部分がなかなか伝わりにくいことがありました。 そんな中で、所属プロダクトで新卒含めて大規模なリニューアル案件でDDDを採用することになり、新卒にも伝わるように説明をする必要性が生じました。 結果、新卒にも伝わり、運用が割と回る説明が見つかったのでご紹介したいと思います。 アプリケーションアーキテクチャ全体図 とにかく、何か説明する際はこの図を常に傍に置き、一方通行の依存性を徹底したい、という話をしています。 何かについて議論をする際は、 「それはどの層の責務なの?」 という

    新卒にも伝わるドメイン駆動設計のアーキテクチャ説明[DDD] - little hands' lab
  • 思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall

    2. What is Software Architecture ● IEEE1471「コンポーネント、それらの関係や環境、設計やそのコンポーネント、それらの関係や環境、設計やそのそれらの関係や環境、設計やその関係や環境、設計やそのや環境、設計やその環境、それらの関係や環境、設計やその設計やそのや環境、設計やそのその関係や環境、設計やその 進化を左右する原則に具現化されたシステムの基的な構成」を左右する原則に具現化されたシステムの基的な構成」左右する原則に具現化されたシステムの基的な構成」する原則に具現化されたシステムの基的な構成」原則に具現化されたシステムの基的な構成」に具現化されたシステムの基的な構成」具現化を左右する原則に具現化されたシステムの基的な構成」されたシステムの基的な構成」システムの基的な構成」の関係や環境、設計やその基的な構成」な構成」構成」」 ● M

    思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
  • 500日のトライエラーから生まれた大規模設計ノウハウ / Frontend Conference Fukuoka 2018 - Speaker Deck

    2018/12/8 Frontend Conference Fukuoka 2018にて発表した資料です。

    500日のトライエラーから生まれた大規模設計ノウハウ / Frontend Conference Fukuoka 2018 - Speaker Deck
  • 分散キューという名の苦しみ - Software Transactional Memo

    TL;DR 分散システムにおいてキューを導入する場合、当にキューが必要なのか再考すべき。そこが地獄の入り口だから。 システムの抽象 コンピュータの世界は、来は0と1の信号の羅列が飛び交う無機質なものである。でも人類は信号だけですべてを語らず、様々な喩えを定義してきた。それはデスクトップ・ウィンドウ・マウスカーソルといったグラフィカルな表現に留まらず、パケットやカプセル化といった用語にロック・キュー・リスト・木などのアルゴリズムやデータ構造の世界にも自然に溶け込んでいる。これらはすべて人間の理解を助けるための喩え話に過ぎず、この喩えこそが人間のより直感的な理解をもたらす一方で、発想の制約を生み出してきた。 人間が大きなシステムを作るときも何らかの喩えを用いてシステム全体を整理する。アーキテクチャの「ポンチ絵」を描いて情報共有をするのは企業に勤めていれば経験した人も多いだろう。パワーポイン

    分散キューという名の苦しみ - Software Transactional Memo
  • 1