タグ

architectureに関するefclのブックマーク (122)

  • QCon London: Meta Used Monolithic Architecture to Ship Threads in Only Five Months

    InfoQ Software Architects' Newsletter A monthly overview of things you need to know as an architect or aspiring architects. View an example

    QCon London: Meta Used Monolithic Architecture to Ship Threads in Only Five Months
    efcl
    efcl 2024/04/14
    Threadsでも Server-Driven UI (SDUI) をやっていたという話
  • Acing the System Design Interview

    efcl
    efcl 2024/03/14
    システムデザイン面接についての書籍
  • フロントエンドのディレクトリ設計思想

    はじめに フロントエンドのディレクトリ構成、世の中に色んな「推し」が有って悩みますよね。 例えば、、、 さらに最近は、App Directoryの登場や、それに合わせたNext.js公式の「推し」構成がドキュメント化されたりと、さらに色々なパターンが出てきています。 記事の趣旨 記事では、具体的な構成そのものではなく、 様々ある構成を横串で見通して整理できる設計思想を紹介します。 新しい推し構成の紹介ではなく、構成を考えたり決めたりするときに役立つ抽象的・汎用的な指針を提供できればと考えています。 基となる考え 分割の方向 一般的に、アーキテクチャにおける分割には2つの方向が有ります。 (出典も良書なのでリンクを貼っておきます: https://www.amazon.co.jp/dp/4873119820) これはディレクトリにおいても同じだと思っていて、筆者は分かりやすさのために

    フロントエンドのディレクトリ設計思想
    efcl
    efcl 2024/03/11
    共通のLayerと機能ごとのFeatureのディレクトリ構造の組み合わせ
  • How Netflix Scales its API with GraphQL Federation (Part 1)

    Netflix is known for its loosely coupled and highly scalable microservice architecture. Independent services allow for evolving at different paces and scaling independently. Yet they add complexity for use cases that span multiple services. Rather than exposing 100s of microservices to UI developers, Netflix offers a unified API aggregation layer at the edge. UI developers love the simplicity of w

    How Netflix Scales its API with GraphQL Federation (Part 1)
    efcl
    efcl 2024/03/07
    GraphQL Federartionのアーキテクチャについて
  • キャッシュを活用するために必要な知識と勘所 - そーだいなるらくがき帳

    どうもキャッシュバスターズ、 id:Soudai です。 Cache(以下、キャッシュ)は特定の場面に置いて劇的な効果を発揮し、様々な問題を解決する反面、新たなコンポートやミドルウェアが追加され、複雑性が上がり、運用のレベルが上がるため、扱いに注意する必要があります。 キャッシュを活用することで、パフォーマンスの改善や負荷軽減が行われ、コンピュータリソースの最適化によるサーバコストの削減や、レスポンスの改善によるユーザエクスペリエンスの改善がされます。 反面、その劇的な効果に毒され安易に多用すると、サービスが強くキャッシュに依存してしまい、非常に壊れやすくなり、運用が難しくなってしまいます。これをWeb界隈では「キャッシュは麻薬」と比喩されて、戒められてきました。 そのためキャッシュを使わずにサービスが運用できるのであれば使わないに越したことはないのですが、ある一定以上の規模になった際にコ

    キャッシュを活用するために必要な知識と勘所 - そーだいなるらくがき帳
    efcl
    efcl 2023/12/31
    キャッシュの更新パターン
  • メルペイのProgram型組織への移行 | メルカリエンジニアリング

    はじめに こんにちは。メルペイVPoEの@keigowです。 この記事は、Merpay Advent Calendar 2023 の2日目の記事です。 今年の3月まではソウゾウでHead of Engineeringとして働いていましたが、4月にメルペイに2年ぶりに戻ってきました。日はメルペイのProduct組織の改善とProgram組織への移行の取り組みについてご紹介します。 以前のProject Matrix型組織 2022年9月までは、Microservicesの単位をベースとして構成されたFunctionチーム(Growth、Platform、与信領域など)から、3ヶ月ごとに決めているProject(新機能開発、他社連携など)に各メンバーをアサインしていくという形でProduct開発を推進していました。 会社のOKRとして合意した目標に沿って、Productチーム内でProjec

    メルペイのProgram型組織への移行 | メルカリエンジニアリング
    efcl
    efcl 2023/12/08
    職種別のレポートライン上にProgramを載せたという話
  • 5-Minute DevOps: Feature Team Strawman Fallacy

    StrawmanRecently, I’ve had conversations about team structure, specifically whether development teams should be organized around features or product capabilities. During those conversations, it became clear that Large Scale Scrum (LeSS) agile coaches are adamant that teams should be organized around features. This article from LeSS hits all of their talking points. Now, I’m no agile coach, and it

    5-Minute DevOps: Feature Team Strawman Fallacy
    efcl
    efcl 2023/11/12
    ここでのFeature Teamは、チーム自体は長命で色々な機能に関わるようなチームのことなんだ。 そのチームは機能ごとのドメインを再学習しないといけないのと、そのようなTeamが複数ある場合は大規模なチームとあまり変わら
  • Version Skew

    There is a phrase that is very frequently used at Google and other big tech companies. It’s a nice and short phrase. And the problem it describes is broadly applicable to modern software engineering. Yet it doesn’t seem to be used much outside of the Google diaspora, and there doesn’t seem to be an alternative naming for the concept either. The phrase is version skew or for short: skew. Version sk

    Version Skew
    efcl
    efcl 2023/10/28
    デプロイ時に、クライアントとサーバのバージョンがずれてエラーが起きる"Version Skew"の問題について。 バージョンロック、下位互換性、上位互換性、バージョン管理などの対応方法について。
  • GitHub - ByteByteGoHq/system-design-101: Explain complex systems using visuals and simple terms. Help you prepare for system design interviews.

    Architecture styles define how different components of an application programming interface (API) interact with one another. As a result, they ensure efficiency, reliability, and ease of integration with other systems by providing a standard approach to designing and building APIs. Here are the most used styles: SOAP: Mature, comprehensive, XML-based Best for enterprise applications RESTful: Popul

    GitHub - ByteByteGoHq/system-design-101: Explain complex systems using visuals and simple terms. Help you prepare for system design interviews.
    efcl
    efcl 2023/10/28
    システムデザインのビジュアライズ集
  • 参照の局所性 - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "参照の局所性" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2023年8月) 参照の局所性(さんしょうのきょくしょせい、英: locality of reference)とは、1つのリソースに複数回アクセスする処理に関する情報工学上の概念である。 局所性の分類[編集] 参照の局所性には以下の3種類が存在する。 時間的局所性 (英: temporal locality) ある時点で参照されたリソースが近い将来にも再び参照される可能性が高いことを表す概念 空間的局所性 (英: spatial locality) あるリソースが参照されたとき

    参照の局所性 - Wikipedia
    efcl
    efcl 2023/10/07
    時間的局所性、空間的局所性、逐次的局所性について
  • UUIDs are Popular, but Bad for Performance — Let’s Discuss

    All of Percona’s open-source software products, in one place, to download as much or as little as you need.

    UUIDs are Popular, but Bad for Performance — Let’s Discuss
    efcl
    efcl 2023/10/07
    UUIDをprimary keyとして利用した時の局所性の問題について
  • Blitz(後編):リアルタイムユーザー解析エンジンを実現する技術(強整合な解析) - PLAID engineer blog

    PLAIDではPersonalizationに特化したリアルタイムユーザー解析エンジン(Blitz)を自分達で開発し、KARTEの基盤として使ってきました。今回新たに刷新した解析エンジンのコア要素である「強整合な解析」を実現する具体的なアーキテクチャ、技術選定の内容を紹介します。

    Blitz(後編):リアルタイムユーザー解析エンジンを実現する技術(強整合な解析) - PLAID engineer blog
    efcl
    efcl 2023/10/07
    Bigtableを分散キューの代わりに利用する。 Bigtableはキーが偏るとhot spotになるので、hash + user + timestampをキーにして、timestamp部分をレンジでスキャン + TTLで消すことで特定の期間のデータを取得する分散DBとして利用
  • クラウドアプリケーション 10の設計原則 「Azureアプリケーションアーキテクチャガイド」から学ぶ普遍的な原理原則 - インプレスブックス

    ■真壁 徹(まかべ とおる) 北陸先端科学技術大学院大学 博士前期課程修了 修士(情報科学)。 株式会社大和総研に入社。公共向けパッケージシステムのアプリケーション開発からIT業界でのキャリアを始める。その後日ヒューレット・パッカード株式会社に籍を移し、主に通信事業者向けアプリケーション、システムインフラストラクチャの開発に従事する。その後、クラウドコンピューティングとオープンソースに可能性を感じ、OpenStack 関連ビジネスでアーキテクトを担当。パブリッククラウドの成長を信じ、日マイクロソフト株式会社へ。 主な著書に『しくみがわかるKubernetes Azure で動かしながら学ぶコンセプトと実践知識』(翔泳社)、『Microsoft Azure 実践ガイド』(インプレス)、共著に『Azureコンテナアプリケーション開発 ── 開発に注力するための実践手法』(技術評論社)などが

    クラウドアプリケーション 10の設計原則 「Azureアプリケーションアーキテクチャガイド」から学ぶ普遍的な原理原則 - インプレスブックス
    efcl
    efcl 2023/10/05
    https://learn.microsoft.com/ja-jp/azure/architecture/guide/design-principles/ をベースにしたクラウドのアプリケーションアーキテクチャの本
  • ソシャゲサーバー開発するとき始めに考慮しておかないと死ぬポイント備忘録

    事前知識編 システム開発するプログラマも読んでおいたほうがいい資料とか。 今時のシステムならまず仕様や運用に反映される。されてなかったらむしろこっちから確認取りに行った方がいい。 JOGAガイドライン 昔ガチャとかが問題になったときに出てきた協会のガイドライン。 オンラインゲーム安心安全宣言 オンラインゲームにおけるビジネスモデルの企画設計および運用ガイドライン ランダム型アイテム提供方式を利用したアイテム販売における表示および運営ガイドライン オンラインゲームガイドライン 開発環境編 GitHubみたいなPullRequestを出せる環境 GitだけじゃなくてGitHub。必然的に規模が大きくなるのでプルリク出して進めることになります。 CIまで設定をする 最初のうちにCircleCIのようなテストの自動実行する仕組みまで揃えてしまっておいたほうが良いです。後からだとそもそも対応できなく

    ソシャゲサーバー開発するとき始めに考慮しておかないと死ぬポイント備忘録
    efcl
    efcl 2023/09/17
    ソシャゲ開発
  • Skip the API, Ship Your Database

    Skip the API, Ship Your Database Author Name Ben Johnson @benbjohnson @benbjohnson Image by Annie Ruygt With Fly.io, you can get your app running globally in a matter of minutes, and with LiteFS, you can run SQLite alongside your app! Now we’re introducing LiteFS Cloud: managed backups and point-in-time restores for LiteFS. Try it out for yourself! My favorite part about building tools is discover

    Skip the API, Ship Your Database
    efcl
    efcl 2023/09/14
    SQLiteのレプリケーションを使って、read-onlyなレプリカを渡すことでAPIじゃなくてDBを使ったデータのやりとりをするというパターン
  • Design Trade-offs in Bundler: The Rationale Behind Creating Rspack · web-infra-dev · Discussion #1

    chinese version Before embarking on the development of Rspack, we explored various build tools and frameworks, including extensive use of Webpack, Vite, esbuild, and Rollup in real-world production environments. To provide some context, our team, known as the WebInfra Team, is responsible for overseeing the company's suite of front-end build tools and frameworks. Some of these are open-source, whi

    Design Trade-offs in Bundler: The Rationale Behind Creating Rspack · web-infra-dev · Discussion #1
    efcl
    efcl 2023/09/02
    Rspackの開発の目的やwebpack/parcel/esbuild/rollupなどのbundlerのアーキテクチャについて。 webpackにはデバッグやパフォーマンスの問題があり、Vite/Rollupも大規模プロジェクトではパフォーマンスにビルド環境の差異の問題があり、es
  • ソフトウェアはなぜバージョンアップしなければならないのか - Qiita

    はじめに 社内インフラの運用担当者にとってソフトウェアのバージョンアップは地味な割に大変な業務です。 特に社内のオンプレサーバで動いているようなソフトウェアの場合、バージョンアップに伴う諸々の調整をそのソフトウェアを利用している各部署と行う必要があります。 そんなときに「今は忙しいからバージョンアップを先送りしてほしい」「このバージョンはスキップしてもよいのでは?」なんて声が各部署から聞こえてきます。バージョンアップの価値を各部署に理解してもらうのは大変です。 この文章はそんな時になぜバージョンアップしなければならないのかを上司や各部署のマネージャに伝えるために書きます。 ソフトウェアの有効期限は2-5年 まず、第一に、ソフトウェアというものは無限に使えるわけではなく、一定の有効期限があり、それを過ぎると徐々に動かなくなってきます。俗にいう「何もしてないのに動かなくなった問題」です。 なぜ

    ソフトウェアはなぜバージョンアップしなければならないのか - Qiita
    efcl
    efcl 2023/07/29
    パージョンアップ頻度と難易度について。 頻度が低いほど難易度が高くなるため、スパイクが発生する。EOLとなりサポートが切れた場合は、より難易度が高くなる
  • メルコイン決済基盤における分散トランザクション管理 | メルカリエンジニアリング

    この記事は、Merpay Tech Openness Month 2023 の7日目の記事です。 はじめに こんにちは。メルコイン Payment Platform チームの @sapuri です。 メルコインではマイクロサービスアーキテクチャを採用しており、お客さまによりアプリの操作が行われると、それぞれのマイクロサービスを横断してリクエストが処理されます。 メルコインの Payment Platform は、お客さまの残高の管理や各種帳簿の作成などの決済事業のための基盤となる仕組みを提供しています。 そのなかで、Payment Service は決済トランザクションを管理するサービスとして、下位層のサービスが提供する各種決済手段を利用して、上位層のサービスが共通して利用できる決済 API を提供しています。 この記事ではマイクロサービスアーキテクチャにおける分散トランザクション管理の課

    メルコイン決済基盤における分散トランザクション管理 | メルカリエンジニアリング
    efcl
    efcl 2023/06/15
    Sagaパターンによるrecoveryトランザクション
  • ソフトウェア設計のトレードオフと誤り

    「プログラムを設計するときに行った技術的な判断や選択が、後日大きな制約となる」これはプログラマなら誰しも経験したことのあることでしょう。書は、そんなプログラミングにおける各種の設計上の選択について、トレードオフの内容やそれがどのような誤りを招きうるのかという点を踏まえて紹介する書籍です。 コードの重複、エラーや例外処理、柔軟性と複雑性のバランスのようなコードレベルの選択から、APIの設計、時刻の扱い、データローカリティのようなシステム寄りの話題、またライブラリの選択、分散システムの一貫性と原子性、バージョニングのようなより抽象度の高い内容まで、さまざまなシチュエーションにおけるトレードオフの実態と、その失敗例をとり上げます。 書は日々のプログラミングにおける解決策のヒントを得るだけでなく、より幅広い設計上の知見を広める上でも役に立つでしょう。 正誤表 ここで紹介する正誤表には、書籍発行

    ソフトウェア設計のトレードオフと誤り
    efcl
    efcl 2023/05/16
    アーキテクチャのトレードオフについての書籍
  • Flutterアプリにおける、過不足ない設計の考察🎅

    Photo by Hush Naidoo Jade Photography on Unsplash「一般的なモバイルアプリ」の設計全般において、特に何に気を付ける必要があるか、あるいは逆にあまり気にしてなくても良いのではと思うことなどを述べていきます。 (…のつもりでしたが、後者含めると1記事に収めるの困難で、最後にさらっと触れつつ別記事で手厚く書きたいところです🤔) ここでの「一般的なモバイルアプリ」は規模観点では以下程度のイメージですが、それを超えるような規模でも通ずる内容も多いと思っています。 コード量: 数万〜十数万行実装者: 一桁人種類としては(スマホ向けの)クライアントアプリコードであり、以下などではないです。 パッケージ・ライブラリではないサーバーサイドではないこの種類によって適切な組み方はけっこう変わり、アプリコードは依存関係の末端側(基的に依存される側にはならない)な

    Flutterアプリにおける、過不足ない設計の考察🎅
    efcl
    efcl 2023/01/01
    Flutterの設計