並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 4716件

新着順 人気順

アーキテクチャの検索結果81 - 120 件 / 4716件

  • DCIアーキテクチャ - Trygve Reenskaug and James O. Coplien - Digital Romanticism

    この記事はartima developerに掲載されている、Trygve Reenskaug氏とJames O. Coplien氏による記事「The DCI Architecture: A New Vision of Object-Oriented Programming」を、著作権者であるBill Bennrs氏の許可を得て翻訳したものです。本文内の図の著作権はArtima, Inc.に帰属します。(原文公開日:2009年3月20日) 要約 オブジェクト指向プログラミングはプログラマとエンドユーザの視点をコンピュータコードにおいて統一するものと考えられていた。この恩恵はユーザビリティとプログラムの分かりやすさの両面にわたる。しかし、オブジェクトは構造をとらえるのに長けている一方で、システムの動作をとらえることができていない。DCIはエンドユーザのロールに関する認識モデルとロール間の関係を

      DCIアーキテクチャ - Trygve Reenskaug and James O. Coplien - Digital Romanticism
    • ソフトウェア設計・アーキテクチャの学び方 - Qiita

      はじめに この記事はHow to Learn Software Design and Architecture | The Full-stack Software Design & Architecture Mapを翻訳したものです。 翻訳がおかしい箇所などあればご指摘頂けるとありがたいです。 元記事の著者: Khalil Stemmler(@stemmlerjs) 設計、アーキテクチャ、フロントエンド、ブロックチェーンに興味ある方是非Twitter(@show_clements)フォローしていただけると嬉しいです! 設計に関する記事 ソフトウェアデザインとアーキテクチャは、DevOpsやUXデザインのように、コンピューティングの領域の中でも独自の研究分野となっています。ここでは、クリーンコードからマイクロカーネルまで、ソフトウェアデザインとアーキテクチャの幅広さを説明するマップを紹介しま

        ソフトウェア設計・アーキテクチャの学び方 - Qiita
      • インフラ自動化の落とし穴と宣言的アーキテクチャ

        2020/07/14 Cybozu Tech Meetup #3

          インフラ自動化の落とし穴と宣言的アーキテクチャ
        • バックエンド Web API に管理画面/管理機能を追加するアーキテクチャパターン - valid,invalid

          プレゼンテーションレイヤ、いわゆるフロントエンドがクライアントサイドで実装・実行されるアーキテクチャ (注 1) において、管理画面/管理機能をあとから追加する際にどのような実装パターンがあるのかを整理してみます。 注 1: Presentation Domain Separation の実践の中でも、物理的にプレゼンテーションロジックとドメインロジックを分離しているアーキテクチャです。 用語の整理 プレゼンテーションレイヤ 三層アーキテクチャにおける、システムの利用者へユーザインターフェイスを提供する層です。本記事では"フロントエンド"とほぼ同義で使います。 OSI 参照モデルの第六層ではないです。 バックエンド Web API とは プレゼンテーションを持たない Web API (HTTP プロトコルを用いてネットワーク越しに呼び出すアプリケーション) とします。 プレゼンテーションレ

            バックエンド Web API に管理画面/管理機能を追加するアーキテクチャパターン - valid,invalid
          • ソーシャルゲーム サーバーアーキテクチャ選定 | GREE Engineering

            ※Read / Write のレスポンスタイムは大まかに計測した値のため適切な設定ができていない場合もあることをご了承ください MySQL 信頼と実績のあるRDBMS。新規タイトルの場合AWSではAurora、GCPではCloud SQLを利用することで運用の手間をある程度減らすことができる。分散システムではないため1クラスタでの書込性能には限界があり、ソーシャルゲームのように大規模なwrite処理がある用途では水平/垂直分割が必要になり、そのための設計とコーディングが煩雑になりがちである。またインスタンスのスケールアップ・ダウンで対応しきれない場合のクラスタの分割・統合のオペレーションは複雑なものになる。 スケールアップ・ダウンやnodeのメンテナンスなどでMaster nodeを切替える際には不通時間が発生してしまうため、安全のためゲーム自体をメンテナンス状態にする必要が発生する。 ※

              ソーシャルゲーム サーバーアーキテクチャ選定 | GREE Engineering
            • 社内のIA(情報アーキテクチャ)研修の講師をしてみた。:そのフォローアップ | future-proof.jp

              ちょっと前になりますが、自分が現在所属している会社の研修の一環で「情報アーキテクチャ」をテーマにした講座の講師を拝命して研修を行いました。 対象はおもに若手社員、というターゲットが設定されていて、講座は全3回となぜかきまっていました。 正直、3回もネタが持つかなー、と思ったり聴いてくれる人も中だるみ感がないようにしたいな、と思っていろいろ考えました。 考えた結果、講座は ・過去 ・現在 ・未来 の3軸に分けることにしました。 なぜ、そうしたかというと若手をターゲットにしていたので、若手に「Web業界でなぜIAが必要とされるようになってきたか」、を知ってほしいと思ったからでした。 それを知ることで、僕らが相手にしているクライアントさんがどういう課題意識を持って、僕らにご相談いただいているのか、プロジェクトを進める過程でどういう悩みを持って僕らと対峙しているのか、という部分を少しでもわか

              • 「Amazonでさえサーバレスやマイクロサービスを理解できない」とDHH氏が主張する一方で、「進化可能なアーキテクチャこそ重要」とAmazonのVogels博士

                Ruby on Railsの作者として知られるDavid Heinemeier Hansson(DHH)氏が自身のブログに5月4日付けで投稿した記事「Even Amazon can't make sense of serverless or microservices」(Amazonでさえサーバレスやマイクロサービスを理解できない)が話題になっています。 これはAmazon Prime Videoの技術部門が3月に自社ブログに投稿した記事「Scaling up the Prime Video audio/video monitoring service and reducing costs by 90%」(Prime Videoの音声映像監視サービスにおけるスケールアップと90%のコスト削減の実現)で紹介された、AWS Lambdaのサーバレスで作られたPrime Videoの監視サービス

                  「Amazonでさえサーバレスやマイクロサービスを理解できない」とDHH氏が主張する一方で、「進化可能なアーキテクチャこそ重要」とAmazonのVogels博士
                • サーバーレスアーキテクチャという技術分野についての簡単な調査 - Qiita

                  BaaSの制約で実現しにくい要件があったときに、サーバーレスアーキテクチャという選択肢は魅力的に見えてくる。そこで今回は最も柔軟性が高いサーバーレスインフラストラクチャだと思われるAWS Lambdaを取り上げ、BaaSの代わりになりうるか検討する。 AWS LambdaのファンクションはJava 8で書ける。ということはGroovyでも書ける。ドメインクラスをJava/Groovyで書いてLambdaファンクションのなかで利用することができれば、サーバーレスアーキテクチャでも本格的なアプリケーションを開発できそうだ。 今後のアプリケーションインフラストラクチャ選択において、従来型のアプリケーションサーバーと、近年普及してきたBaaSに加え、サーバーレスインフラストラクチャという選択肢も増えるとすれば有意義だ。 非常駐型のデメリット 歴史的にはCGI/PHPのようなイベント駆動型のアプリケ

                    サーバーレスアーキテクチャという技術分野についての簡単な調査 - Qiita
                  • 高速WebサーバMighttpdのアーキテクチャ | IIJの技術 | インターネットイニシアティブ(IIJ)

                    IIJ-II技術研究所では、2009年の秋からMighttpd(mightyと読む)というWebサーバの開発を始め、オープンソースとして公開しています。この実装を通じて、マルチコアの性能を引き出しつつ、コードの簡潔性を保てるアーキテクチャにたどり着きました。ここでは、各アーキテクチャについて順を追って説明します。 ネイティブ・スレッド 伝統的なサーバは、スレッド・プログラミングという手法を用いています。このアーキテクチャでは、1つのコネクションを1つのプロセスかネイティブ・スレッドが処理します。 このアーキテクチャは、プロセスやネイティブ・スレッドを生成する方法で細分化できます。「プール」方式では、あらかじめ複数を起動しておきます。例としては、Apacheのpreforkというモードが挙げられます。「都度」方式では、コネクションを受け取るたびに生成します。このアーキテクチャの利点は、制御を

                      高速WebサーバMighttpdのアーキテクチャ | IIJの技術 | インターネットイニシアティブ(IIJ)
                    • 安く早く開発するための個人開発アーキテクチャ

                      はじめに 最近趣味で個人開発をしながらアーキテクチャの検討を行なっていたのですが、自分なりにいい感じの結論に辿り着いたので今回はそのアーキテクチャの紹介しようと思います! インフラ、バックエンド、フロントエンドの各セクションに自分が使用しているテンプレートのリポジトリのリンクを載せてあるので興味のある方は参考にしてください。 また今回紹介するアーキテクチャはあくまで一例なので、間違いや不備などがあればご指摘いただければ幸いです。 前提条件 個人開発で使用するアーキテクチャを考える上で、自分の中でいくつか前提条件があります。 ランニングコストを抑える いくつか前提条件がある中で、個人的に一番重要な要素になります。 バズるサービスを作りたいという気持ちはありますが、そのためにいくらでもコストをかけられるかと言われるとそうではありません。むしろ個人開発となると、抑えられるコストはできる限り抑えた

                        安く早く開発するための個人開発アーキテクチャ
                      • Kubernetes-nativeなアーキテクチャ導入の手引き 先進的なクラウド環境を最強テストベッドで体験|ハイクラス転職・求人情報サイト AMBI(アンビ)

                        Kubernetes-nativeなアーキテクチャ導入の手引き 先進的なクラウド環境を最強テストベッドで体験 Kubernetes-nativeなエコシステムを実現する最強テストベッド環境です。さまざまなミドルウェアを運用したマイクロサービスをフルgRPCなサービス間通信で実現するだけでなく、CI/CDと開発環境も用意しています。 こんにちは。株式会社サイバーエージェントのAI事業本部でインフラエンジニアをしている青山真也(@amsy810)と漆田瑞樹(@zuiurs)です。今回は、Kubernetesが好きな2人が考える最強のKubernetes-nativeなお試し環境を構築してみました。記事公開時点で、総コミット数が900に迫るリポジトリになっています。 現在、Kubernetesとそれを取り巻くエコシステムは急速に発達しており、便利なツールやミドルウェアが日々生まれています。これは

                          Kubernetes-nativeなアーキテクチャ導入の手引き 先進的なクラウド環境を最強テストベッドで体験|ハイクラス転職・求人情報サイト AMBI(アンビ)
                        • Martin Fowler's Bliki in Japanese - 犠牲的アーキテクチャ

                          @@ -0,0 +1,37 @@ +http://martinfowler.com/bliki/SacrificialArchitecture.html + + +会議の席であなたは考えている。自分のチームが二年間かけて書いてきたコードのことを。そして決断に至る。いま打てる最善の手は、あのコードをすべて投げ捨てまったく新しいアーキテクチャを再構築することだ。死にゆくコード、それに費やした時間、自分が下し続けてきた判断。この決断は、あなたはどんな気持ちにするだろう? + +多くの人にとって、コードを捨てるのは失敗の証だ。ソフトウェア開発の探索的な性質を考えれば、わからない判断ではないかもしれない。けれど失敗には違いない。 + +ところが、いま書ける最良のコードは二年経ったら捨てるつもりのコードだということはよくある。 + +私たちは長命なソフトウェアとして偉大なコードを思

                            Martin Fowler's Bliki in Japanese - 犠牲的アーキテクチャ
                          • Pinterestの急成長を支えてきたアーキテクチャとは? Pythonで開発しAmazonクラウドで運用

                            Pinterestの急成長を支えてきたアーキテクチャとは? Pythonで開発しAmazonクラウドで運用 急速に人気が急上昇するWebサービスでは、どのようにスケールするアーキテクチャを構築し運用していくのかはサービスの成否を分けるほど重要です。Pinterestのように急成長してきたサービスのソフトウェア構成やリソース構成はどうなっているのでしょうか、Web上でいくつか情報が公開されているのでまとめてみました。 Pythonで開発し、Amazonクラウドで運用 1年ほど前なので少し古い情報ではあるのですが、Q&AサイトのQuoraにPinterestのco-founder Paul Sciarra氏が書き込んだソフトウェア構成の説明があります。 PinterestはPythonで開発されており、MemcachedやNginxなど高速なレスポンスに配慮した構成になっている様子がうかがえま

                              Pinterestの急成長を支えてきたアーキテクチャとは? Pythonで開発しAmazonクラウドで運用
                            • データセンターが「落ちる」ことを想定したグーグルのアーキテクチャ

                              サーバを安全に運用する施設として構築されるデータセンターですが、グーグルではそのデータセンターですら"落ちる"ことがあると想定してアーキテクチャを構築しています。 米グーグルが今年の5月に行ったイベント「Google I/O」で、同社のGoogle App Engine datastore leadであるRyan Barett氏が行った講演「Transactions Across Datacenters (and Other Weekend Projects)」のビデオがYouTubeで公開されました。 Barett氏は、担当しているGoogle App Engineのデータベースに関してグーグルが「multihoming」(マルチホーミング)と呼ぶ複数のデータセンターを用いた処理を実現している理由として、データセンターが自然災害や停電に見舞われたり、メンテナンスなどによるデータセンターの

                                データセンターが「落ちる」ことを想定したグーグルのアーキテクチャ
                              • 【2024年版】ChatGPT APIを社内利用する時に採用すべきアーキテクチャを考えた - Qiita

                                結論 社内システム上の多数のアプリケーションがChatGPT APIを活用しているというシチュエーションを想定し、AI共通基盤が持つべき機能とアーキテクチャを検討しました。 ポイントは以下の3つです。 社内システム上のあらゆるアプリケーションにChatGPT APIが組み込まれる未来が想定される アプリケーションごとに必要な実装は重複するため共通化が可能 Proxyサーバを社内に配置しそこで共通的な処理を行い、各アプリケーションはAPI呼び出しのみを行う 背景 -ChatGPT APIの2024年を予想する- 2023年5月現在のChatGPT APIの活用状況 2023年3月1日にChatGPT APIであるGPT3.5-turboがリリースされ、あらゆるプレイヤーによってこぞって活用方法が模索されています。 現在の活用状況について知見を深めたかったため、TwitterにてChatGPT

                                  【2024年版】ChatGPT APIを社内利用する時に採用すべきアーキテクチャを考えた - Qiita
                                • アーキテクチャオタクが Twitter の内情について妄想を垂れ流す

                                  Yuta Okamoto @okapies Twitter のような巨大な分散システムが、どのくらいの人員がサボタージュしたら壊れるかなんて外からは分からないし、何だったら中の人間にだって分かってないかも。イーロン・マスクも含めてね。色々な可能性を考慮しつつ推移を見守るしかない。 twitter.com/100poisha/stat… 2022-11-19 17:38:11 ざんねん @100poisha Twitterのコア開発者が辞めたのでTwitter終了←まちがい Twitterのコア開発者が辞めたので代わりの開発者を雇わないと数年で終了←せいかい ソフトウェアは腐りますけど、だからといってメンテナンスしないと1日で腐り果てるほど脆くないんですよ。そのせいでメンテナンスせずに数年経って腐り文字数 2022-11-18 14:47:09

                                    アーキテクチャオタクが Twitter の内情について妄想を垂れ流す
                                  • Vue___Vuex_のアーキテクチャ完全に理解した.pdf

                                    [RubyKaigi 2024] Ruby Mixology 101: adding shots of PHP, Elixir, and more

                                      Vue___Vuex_のアーキテクチャ完全に理解した.pdf
                                    • 思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall

                                      DevLOVE X Day1 C-5のセッションです。 ITの活用範囲の広がりとともに、費用・品質よりもデリバリを優先するプロジェクトも増えてきました。しかし「しっかり考えるよりも、作ってリリースしちゃおうぜ、正解なんて誰にも分からないんだから」というマントラを唱えながら、返済見込みの立たない大量の技術的負債を抱える。それが最善の選択なのか、もう少しだけ立ち止まって考えてみませんか? YAGNIという言葉を便利に使いすぎてはいませんか? コードを書きなぐるのと、ちょっと考えて設計して作るのとで、そんなに開発スピードに違いがありますか? 考えてみたいと思います。

                                        思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
                                      • いきあたりばったりのアーキテクチャと教訓

                                        スライドの作者であるGleicon Moraesは、これらの図を示した上で、リレーショナルデータベースはガムテープのようにつぎはぎで使えるような万能薬ではない。シャーディングや非正規化などは検討すべきよい選択肢であり、またリレーショナル以外のデータベースも選択肢としていれるとよいだろうと説いています。 そして次のような「リレーショナルデータベースの間違った使い方10項目」を示しているのです(訳は前述の記事「データベースの間違った使い方10項目」から)。 Dynamic table creation(動的なテーブルの作成) Table as cache(テーブルをキャッシュとして使う) Table as queue(テーブルをキューとして使う) Table as log file(テーブルをログとして使う) Distributed Global Locking(分散したグローバルなロック)

                                          いきあたりばったりのアーキテクチャと教訓
                                        • SaaS系スタートアップのリアルなAWSアーキテクチャ設計

                                          概要 AI革命のインフラを目指すSaaS系スタートアップのFastLabel(最近資金調達しました!記事はこちら)で働いているが、今までGCPで動かしていたインフラを訳あってAWSに基盤を載せ替えることになった。 スタートアップは何よりスピードが求められるが、だからといってセキュリティやモニタリング、可用性を疎かにはできないし、大きなインフラコストに耐えられるほど体力もない。 アプリケーション要件を満たしつつ、以下を実現するアーキテクチャを設計する。 シンプルな構成・構築の容易さ スピーディな開発・適用 可用性の担保 セキュリティの担保 最低限のモニタリング 低コスト(リソース・運用) ここで紹介するアーキテクチャは実際に運用まで行っており、問題なく稼働しているし、先日AWSの方にレビューしてもらったが、「なかなかイケてる」というお言葉をもらい、特に改善点も指摘されなかった。 結論(アーキ

                                            SaaS系スタートアップのリアルなAWSアーキテクチャ設計
                                          • アーキテクチャ設計の難しさについて - arclamp

                                            アーキテクチャについては、以下のパワポを見て頂くとして。 なぜソフトウェアアーキテクトが必要なのか - Devlove 20110423 from yusuke suzuki アーキテクチャ設計を要約すると「"何をやるか"と"どうやるか"のバランスを取る事」となります。 "何をやるか"というのは"システムのミッション"のことであり、ソフトウェア品質モデルで言うところの"利用時の品質"、つまりはシステムのユーザーが何を達成したいのかということです。これは「このシステムが動き出した時、どんな価値を生み出すべきか」を考えることになります。 次に"どうやるか"というのは、2つの話があると思っています。1つめは"静的な構成"としてのどうやるか。2つめは"動的なプロセス"としてのどうやるか。 "静的な構成"というのはクラス構成であり、設定ファイルの構成であり、フレームワークの構成であり、つまり、システ

                                              アーキテクチャ設計の難しさについて - arclamp
                                            • 12のソフトウェア・アーキテクチャの落とし穴とその避け方

                                              これは、多数派が支配すべきだという意味ではない。委員会によって設計されたアーキテクチャは、肥大化し、焦点が定まらない傾向がある。私たちの経験では、理想的なバランスとは、多様な経験と視点を持つ数人の仲間が、より良い情報に基づいた決定を下すために、主張に異議を唱えることである。 再利用の目標が誤った決定を左右するようなことがあってはならない。その代わり、再利用は理にかなった場合のみ行うこと。 コード、コンポーネント、設計、あるいはコンフィギュレーションの再利用は、最初は良いアイディアのように聞こえる。経営陣は、再利用によってコストが削減され、納期が短縮され、品質が向上すると信じて、このコンセプトを推進したがる。チームは、MVPをより早く提供するために既存のアプリケーションの大部分を再利用することを決定するかもしれないし、かなり成功した製品を提供するために作成された既存のアーキテクチャを再利用す

                                                12のソフトウェア・アーキテクチャの落とし穴とその避け方
                                              • 「ソフトウェアアーキテクチャの基礎」読書感想

                                                2010年代を乗り越えてきた経験者が読むと良さそうという噂を聞いたので読んでみた。 内容まとめではなく感想です。各章のタイトルだけは丸々記載してますが、目次として上記ページで全て公開されているものです。 ちなみにこれ書いている私はソフトウェアアーキテクトではなく、フロントエンドアプリケーションの設計を担当するテックリードぐらいのレイヤーです。この書籍の中でいう「開発者」です。 業務ではフロントエンドアプリケーションの設計・実装をしています。 全体的な感想 1章(イントロダクション)、22章(効果的なチームにする)、23章(交渉とリーダーシップのスキル)が特によかった。 やっぱ "結局人" の部分が刺さってしまう。 心に書きとめておきたい3つを挙げるとしたら以下。 ソフトウェアアーキテクチャとは「構造」「アーキテクチャ特性」「アーキテクチャ決定」「設計指針」の4つから成る 「一見どう見えよう

                                                  「ソフトウェアアーキテクチャの基礎」読書感想
                                                • クラウドのアーキテクチャ図作成ツール「CloudSkew」、Webブラウザから無料で利用可能。AWS/Azure/GCP/Kubernetes/Oracle Cloudなどマルチクラウド対応

                                                  クラウドのアーキテクチャ図作成ツール「CloudSkew」、Webブラウザから無料で利用可能。AWS/Azure/GCP/Kubernetes/Oracle Cloudなどマルチクラウド対応 クラウドのアーキテクチャ図を作成するためのWebアプリケーション「CloudSkew」が公開されています。 AWS/Azure/GCP/Kubernetes/Oracle Cloud/HashiCorp/Alibaba Cloudなど人気のクラウドやツールのアイコンがあらかじめ用意されており、Webアプリケーションとして提供されているためインストール不要で、誰でも無料で利用可能です。 操作は一般的なドローツールと同じように、左側からアイコンを選んで真ん中の図に置き、アイコン同士を矢印でつなげていくことでアーキテクチャ図が作成されていく、という感じです。 開発しているのは、元マイクロソフトのエンジニアを

                                                    クラウドのアーキテクチャ図作成ツール「CloudSkew」、Webブラウザから無料で利用可能。AWS/Azure/GCP/Kubernetes/Oracle Cloudなどマルチクラウド対応
                                                  • モバイルアプリのアーキテクチャを考える - クックパッド開発者ブログ

                                                    こんにちは、サービス開発部の森川 (@morishin127) です。主にクックパッドの iOS アプリの開発に携わっています。 日々アプリを開発する中で、近頃は最適なアーキテクチャとは何かを考えながら色々な形を試行錯誤しています。世の中で採用されているモバイルアプリのアーキテクチャには様々なものがあります。MVC, MVP, MVVM, VIPER, Clean Architecture などなど。開発している、あるいは開発しようとしているアプリケーションでどういったアーキテクチャを選択するかというのは難しい問題です。選択するためにはアーキテクチャに求める要件を定義する必要があります。この記事では私がアーキテクチャに求める要件と、それらをある程度満たすと考えた MVVM と Flux という2つのアーキテクチャで実装したサンプルを見つつその長所・短所について考えてみようと思います。 アー

                                                      モバイルアプリのアーキテクチャを考える - クックパッド開発者ブログ
                                                    • サーバレスでスケーラブルかつ堅牢なシステムを構築するためのデザインパターンとアーキテクチャ。Serverlessconf Tokyo 2017 - Publickey

                                                      サーバレスコンピューティングは新しいシステム開発手法である。Serverlessconf Tokyo 2017で紹介された、スケーラブルで堅牢かつ高性能なアプリケーションの構築に役立つ6種類のデザインパターンを紹介する。 2017年11月2日、3日の2日間、東京都内でサーバレスコンピューティングのイベント「Serverlessconf Tokyo 2017」が開催されました。 サーバレスコンピューティングもしくはサーバレスアーキテクチャと呼ばれるアプリケーション実行環境は、一般にサーバのことを意識せずにアプリケーションを実行できる環境のことを指します。 そのサーバレスコンピューティング環境の実装として一般的なのが、あらかじめアプリケーションとして実行したいコードを関数として登録しておくと、指定されたイベントによって自動的に関数が呼び出されて実行されるという、いわゆるFunction-as-

                                                        サーバレスでスケーラブルかつ堅牢なシステムを構築するためのデザインパターンとアーキテクチャ。Serverlessconf Tokyo 2017 - Publickey
                                                      • 認可のアーキテクチャに関する考察(Authorization Academy IIを読んで)

                                                        みなさま、認可の設計に苦しんでいるでしょうか?私は苦しんでいます。苦しまなかった瞬間などありません。昔「アプリケーションにおける権限設計の課題」を執筆しましたが、あれから3年以上が経ちます。 当時は認可の設計に関する情報がうまくまとまっている記事などほとんど無く、調べに調べて得たナレッジを書き記したのが上記の記事です。3年以上経ちますが、苦悩が今も特に変わっていないことが驚きです。 ただし、世の中的には認可のライブラリであったりサービスというのは少しずつ増えてきている印象があります(Auth0の OpenFGA であったりOsoの Oso Cloud 、Asertoの Topaz )。 認可の設計に関する記事も少しずつ増えている印象があり、その中でも本記事で紹介したいのがAuthorization Academyです。 これは認可サービスである Oso Cloud やOSSのライブラリ o

                                                          認可のアーキテクチャに関する考察(Authorization Academy IIを読んで)
                                                        • 「RESTful MVC」なアーキテクチャの話

                                                          最近、増井君と私でアーキテクチャの話をすることが多いのだが、そんなディスカッションの中で気に入っているのは左の図のようなアーキテクチャ。 もちろん、核となるのはビジネスロジックを含んだModelの部分。そこをしっかりと実装し、内部構造を隠す粒度の荒いインターフェイスを定義し、外から何をされてもデータの整合性が壊れない様にすることは何よりも大切。 そして、そのModel層へのインターフェイスを特定の言語に依存したクラスやAPIではなく、HTTP上でJSON(XMLでもかまわない)をやりとりするだけの RESTfulなWeb Serviceにすることがミソ。こうすることによりにより、どんなに締め切りに負われようが、誰がControllerを実装しようが「ずるができない」ように作っておく(ずる=本来使うべき外部インターフェイスだけでなく、Model内部に直接アクセスして依存関係を作ってしまう事)

                                                            「RESTful MVC」なアーキテクチャの話
                                                          • MySQLアーキテクチャ図解講座

                                                            第1回Database Lounge Tokyoで発表したスライドです。ゆるふわにMySQLのアーキテクチャを解説しました。

                                                              MySQLアーキテクチャ図解講座
                                                            • 実践クリーンアーキテクチャ【プログラミング】

                                                              音ズレ修正 Ver. → https://www.youtube.com/watch?v=BvzjpAe3d4g 本編 → 7:08 ~ JJUC CCC 2019 Spring の講演「「先行開発!クリーンアーキテクチャ -- ゼロから始める新規開発」の再演です。 講演の概要は下記URLのイベントページをご覧ください。 # URL イベントページ: https://nrs-seminar.connpass.com/event/174000/ Togetter: https://togetter.com/li/1502339 文字起こし(ログミーTechさま): https://logmi.jp/tech/articles/323233 スライド: https://speakerdeck.com/nrslib/clean-architecture-with-java github: h

                                                                実践クリーンアーキテクチャ【プログラミング】
                                                              • クックパッドのログをいい感じにしているアーキテクチャ / Logging architecture at Cookpad

                                                                Cookpad Tech Kitchen #9 https://cookpad.connpass.com/event/60831/

                                                                  クックパッドのログをいい感じにしているアーキテクチャ / Logging architecture at Cookpad
                                                                • Martin Fowler氏の語る“犠牲的アーキテクチャ"

                                                                  Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

                                                                    Martin Fowler氏の語る“犠牲的アーキテクチャ"
                                                                  • 実録パフォーマンス改善 - 高速化のためアーキテクチャやアルゴリズム選択から見直すSansanの事例 - エンジニアHub|Webエンジニアのキャリアを考える!

                                                                    実録パフォーマンス改善 - 高速化のためアーキテクチャやアルゴリズム選択から見直すSansanの事例 インフラの特性をふまえ、ミドルウェアの挙動を理解し、プロファイリングによってボトルネックを把握し、要求に合ったアーキテクチャを選択する。そういった工夫を重ねることでアプリケーションのパフォーマンスを改善する事例を、Sansanの千田智己さんに聞きました。 アプリケーションの設計・実装方法を変えることで、性能が格段に向上するケースは数多くあります。有名IT企業のエンジニアは、どのような方針のもとでアーキテクチャあるいはアルゴリズム選択などでパフォーマンスを改善しているのでしょうか? 法人向けクラウド名刺管理サービス「Sansan」や個人向け名刺アプリ「Eight」を提供するSansan株式会社の千田智己さんに、これまで取り組んできた事例と、そのノウハウを教えていただきました。 千田 智己(せ

                                                                      実録パフォーマンス改善 - 高速化のためアーキテクチャやアルゴリズム選択から見直すSansanの事例 - エンジニアHub|Webエンジニアのキャリアを考える!
                                                                    • 「わかりやすさ」を デザインする情報アーキテクチャ必修入門 / Introduction to IA for "Design for Understanding"

                                                                      MdN Bau-ya “「わかりやすさ」をデザインする 情報アーキテクチャ(IA)必修入門” (2023/1/18開催) https://www.street-academy.com/myclass/149720 上記イベントで使用したスライドを公開用に編集したものです。 作者:森田 雄 / 株式会社ツルカメ https://twitter.com/securecat https://turucame.jp/ Made with Canva https://www.canva.com/

                                                                        「わかりやすさ」を デザインする情報アーキテクチャ必修入門 / Introduction to IA for "Design for Understanding"
                                                                      • ソフトウェアアーキテクチャ入門

                                                                        はじめに 今回の記事では、ソフトウェアアーキテクチャの入門的な内容を解説する。 対象とする読者 ソフトウェアアーキテクチャを勉強するエンジニア アーキテクチャに関して全くわからない初心者 タイトルで気になったひと ソフトウェアアーキテクチャとは? ソフトウェアのアーキテクチャは、システムの主要なコンポーネント、それらの関係(構造)、およびそれらがどのように相互作用するかを記述する。ソフトウェアのアーキテクチャとデザインには、品質属性、人間のダイナミクス、デザイン、IT環境など、多種多様な寄与要因が含まれる。アーキテクチャは、品質、保守性、パフォーマンス等のような全体的な成功に影響を与える重要な決定を含む。 ソフトウェアアーキテクチャの主な目的は、アプリケーションの構造に影響を与える要件を特定することだ。良好なアーキテクチャは、技術的な解決策を構築する際のビジネスリスクを削減し、ビジネス要件

                                                                          ソフトウェアアーキテクチャ入門
                                                                        • プログラムの「アーキテクチャに関するドキュメント」は面倒でも書くべき、ではどのように書くべきか?

                                                                          開発プロジェクトに新しく加わった時は、まずプロジェクトの理解が第一。しかし、全体像を把握できるようなドキュメントがなく、コードから断片的な情報をかき集めるしかない場合もあります。新参の開発者がスムーズにプロジェクトを理解できるよう、大規模なプロジェクトでは「プロジェクト全体のアーキテクチャ」を示した「ARCHITECTURE.md」を添えた方がよいと、エンジニアのAleksey Kladov氏が指摘しています。 ARCHITECTURE.md https://matklad.github.io//2021/02/06/ARCHITECTURE.md.html Kladov氏はオープンソースプロジェクトの開発に携わる中で、「プロジェクトのアーキテクチャに対する知識量」によって開発スピードに大きな差が生じると気づいたとのこと。アーキテクチャに関する知識がない開発者にとって、大量のコードは「バラ

                                                                            プログラムの「アーキテクチャに関するドキュメント」は面倒でも書くべき、ではどのように書くべきか?
                                                                          • 53サービス・アプリのクラウドやフレームワーク・言語など聞いてみた! アーキテクチャ大調査2020|ハイクラス転職・求人情報サイト AMBI(アンビ)

                                                                            53サービス・アプリのクラウドやフレームワーク・言語など聞いてみた! アーキテクチャ大調査2020 エンジニアHub恒例のアーキテクチャ大調査。2020年版では、フロントエンドとサーバサイドの開発環境や、クラウドサービスの利用を分けてアンケートを実施。53のアプリ・サービスから回答がありました。 ソフトウェア開発には日進月歩で新しいテクノロジーが続々と登場し、開発からデプロイ・運用までさまざまな環境でトレンドが次々と移り変わっていきます。そこには、技術選択した開発者の設計思想も見えてきます。 エンジニアHubでは、2017年と2019年にさまざまなIT企業にアンケートを実施し、各社のサービスやアプリを開発しているプログラミング言語やアーキテクチャ、またインフラを構成するミドルウェアやデータベースをまとめて掲載しました。 今回の2020年版ではテクノロジーの進化にあわせ、開発環境についてWe

                                                                              53サービス・アプリのクラウドやフレームワーク・言語など聞いてみた! アーキテクチャ大調査2020|ハイクラス転職・求人情報サイト AMBI(アンビ)
                                                                            • クリーンアーキテクチャ(The Clean Architecture翻訳)

                                                                              Robert Martin (a.k.a. ボブおじさん) による、 The Clean Architecture の翻訳です。似たようなアーキテクチャである ヘキサゴナルアーキテクチャ も翻訳したので参考にしてください。 この記事を翻訳して公開したことは 8th Light, Inc. に報告済みです。いまのところ苦情は来ていません。 ここ数年以上、システムのアーキテクチャに関する実にさまざまなアイデアを見てきた。これには、次のものが含まれる: Hexagonal Architecture (別名 Ports and Adapters) by Alistair Cockburn。Steve FreemanとNat Pryceが、Growing Object-Oriented Software というすばらしい本で採用した。 Onion Architecture by Jeffrey Pa

                                                                                クリーンアーキテクチャ(The Clean Architecture翻訳)
                                                                              • 最速最強Webサーバーアーキテクチャ - Qiita

                                                                                POST /post HTTP/1.1 Host: localhost Content-Type: application/x-www-form-urlencoded Content-Length: 7 foo=bar 1行目は request-line で、 method URI HTTP-version の形をしています。URIはホストを含めた絶対URIの場合と、ホストを含めない絶対パスの場合がありますが、絶対パスの方が一般的です。 2行目から空行までが request-header です。各行は field-name: field-value の形をしています。 field-name は大文字小文字を区別しません。 request-line から request-header とそれに続く空行まで、改行は CR LF になってます。Windowsでよく見る改行コードですね。 meth

                                                                                  最速最強Webサーバーアーキテクチャ - Qiita
                                                                                • 大規模Webアプリケーションにおける複雑性とアーキテクチャ設計に関する一考察 - Qiita

                                                                                  Webアプリケーション開発についての知見を、自分の経験と知識をベースに整理してみようという試みです。 いわゆるサーバサイドにスコープを絞り、フロントエンドは対象外です。筆者は普段、オブジェクト指向言語で書いているので、本記事でもその前提(Ruby、PHP、Python、Java、Scalaあたりを想定)になっています。 では、本編をどうぞ。 ソフトウェア開発は複雑さとの戦い 『人月の神話』では、ソフトウェアの本質的な困難性について4つの性質をあげている。その中で最初に出てくるのが「複雑性」である。『新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡』なんか読んでもらえると、ソフトウェアの複雑性と戦うために、人類が生み出してきた発明の数々が説明されている。 では、複雑さとは何か?もう少し掘り下げて考えてみよう。 複雑さの正体 Webアプリケーションが複雑になる

                                                                                    大規模Webアプリケーションにおける複雑性とアーキテクチャ設計に関する一考察 - Qiita