タグ

設計に関するikosinのブックマーク (367)

  • 「1億台の常時接続」を実現せよ! Nintendo Switchのプッシュ通知システム全面刷新の裏側 (1/3)

    アマゾン ウェブ サービス ジャパンは、2024年6月20日と21日、国内最大の年次イベントである「AWS Summit Japan」をハイブリッドで開催。150を超えるセッションが展開された。 記事では、ニンテンドーシステムズによるセッション「Nintendo Switch向けプッシュ通知システムのリプレイス事例」をレポートする。登壇したのは、同社 システム開発部の林愛美氏と坂東聖博氏だ。 2017年のNintendo Switchの発売とあわせてリリースされた「プッシュ通知システム」。同社は、長期運用を見据えて、よりクラウドネイティブなシステムへのリプレイスを決定するが、大量のTCP接続を維持するための様々な課題が立ちふさがった。 セッションでは、AWS FargateやNetwork Load Balancer(NLB)といったAWSのマネージドサービスを用いた、“最大1億台”級

    「1億台の常時接続」を実現せよ! Nintendo Switchのプッシュ通知システム全面刷新の裏側 (1/3)
  • Web API設計実践入門──API仕様ファーストによるテスト駆動開発

    2024年7月25日紙版発売 柴田芳樹 著 A5判/208ページ 定価2,860円(体2,600円+税10%) ISBN 978-4-297-14293-3 Gihyo Direct Amazon 楽天ブックス ヨドバシ.com 電子版 Amazon Kindle honto このの概要 書は,著者が1993年から約30年間経験してきたAPI仕様の作成,2003年から20年間経験してきたテストファースト開発/テスト駆動開発の知見をまとめたものであり,一般的なソフトウェア開発者が習得することが容易ではない事柄を,書を通して学び,実践してもらうことを目的としています。 書が提唱する「API仕様ファースト開発」はWebサービスにおける大域的なテスト駆動開発の実現に必要なものであり,また,API仕様ファースト開発を実現するにはテスト駆動開発が必要です。API仕様ファースト開発とテスト駆動

    Web API設計実践入門──API仕様ファーストによるテスト駆動開発
  • ガバメントクラウド先行事業(市町村の基幹業務システム等)の中間報告を掲載しました|デジタル庁

    採択結果については、ガバメントクラウド先行事業の採択結果について(市町村の基幹業務システム)をご確認ください。 ※個人情報、アプリケーション開発事業者等のノウハウ、セキュリティに関する部分等を一部削除・修正しています。 ※zipファイルがダウンロードされます。 採択団体応募資料神戸市(ZIP/1,837KB) (令和3年8月作成、令和3年11月改訂、令和4年5月改訂、令和5年3月改訂) 倉敷市(ZIP/6,513KB) (令和3年8月作成、令和3年11月改訂、令和4年5月改訂、令和5年3月改訂) 盛岡市(ZIP/2,437KB) (令和3年8月作成、令和3年11月改訂、令和4年5月改訂、令和5年3月改訂、令和5年7月改定) 佐倉市(ZIP/3,454B) (令和3年8月作成、令和3年11月改訂、令和4年5月改訂、令和5年3月改訂) 宇和島市(ZIP/4,214KB) (令和3年8月作成、令

    ガバメントクラウド先行事業(市町村の基幹業務システム等)の中間報告を掲載しました|デジタル庁
  • ディメンショナルモデリング勉強会を実施しました - 10X Product Blog

    データ基盤チームに所属しているデータエンジニアの吉田(id:syou6162)です。10X社内のデータマネジメントの仕事をしています。 最近、社内でディメンショナルモデリング勉強会を行なったですが、なぜ勉強会を行なったのか、どのように行なったのか、勉強会を行なった結果何が得られたかについてまとめます。 ディメンショナルモデリング勉強会開催の背景 勉強会の進め方やスコープ 勉強会の参加者 勉強会で学んだ内容 Four-Step Dimensional Design Process キーの設計について 複数スタースキーマを適切に利用し、ファントラップを避ける コンフォームドディメンション まとめ: 勉強会で得られたもの ディメンショナルモデリング勉強会開催の背景 前回のエントリにまとめた通り、10Xのデータマネジメントの課題の中でも「データウェアハウジングとビジネスインテリジェンス」は優先度が

    ディメンショナルモデリング勉強会を実施しました - 10X Product Blog
  • プレミアムプランの状態管理と決済ハンドリングの難しさ|tsusowake

    はじめにこんにちは、PIVOTでソフトウェアエンジニアをしている裾分です。PIVOTは2024年2月にアプリ・Webを格始動しました。私はPIVOTにジョインして以降、サブスクリプション機能の開発をしてきたので設計の概要と決済プラットフォームが係る実装の難しさについてまとめてみました。 題冒頭のリリースの通り、PIVOTはYouTubeからプロダクトに集中するにあたり、サブスクリプション機能をリリースしています。 サブスクリプションを実装するにあたり考慮すべき点として、以下の状態を考慮する必要があります。 自サービスで管理する状態 ユーザーのサブスクリプション ユーザーのプラン 他サービスで管理する状態 ユーザーへの課金を行うプラットフォームに登録されているサブスクリプションの状態 決済状態(成功 | 失敗 | …) PIVOTの場合では、決済プラットフォームとして App Store

    プレミアムプランの状態管理と決済ハンドリングの難しさ|tsusowake
  • 請求関連テーブルのスキーマ変更をした話 - Feedforce Developer Blog

    以前に アプリケーションを停止させずにRDBのスキーマ変更する話 を書きました。 developer.feedforce.jp 今日は、その実践編というか、実例として EC Booster というサービスで請求関連テーブルのスキーマを変更した話をしようと思います。 はじまりのテーブル 元々、 EC Booster の請求を管理するテーブルは、このような形でした。 create_table "monthly_charges", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| t.uuid "shop_id", null: false t.integer "year", null: false t.integer "month", null: false t.datetime "created_at"

    請求関連テーブルのスキーマ変更をした話 - Feedforce Developer Blog
  • React のルール – React

    様々な概念を表現する方法がプログラミング言語によってそれぞれ異なるように、React にも、理解しやすい方法でパターンを表現し高品質なアプリケーションを産み出すための慣用的な記法、ないしルールが存在します。 このセクションでは、自然な React コードを書くために従うべきルールを説明します。自然な React コードを書くことで、安全で整理されており、組み合わせ可能なアプリケーションを作成することができます。以下に挙げる特性により、アプリは変更に対して頑健になり、他の開発者やライブラリやツールと連携しやすくなります。 以下のルールは React のルールとして知られています。これらを守っていないならアプリにバグがある可能性が高い、という意味で、これらは単なるガイドラインではなくルールです。またこれらを守らない場合、あなたのコードは不自然で、理解や推測が難しいものになるでしょう。 Reac

    React のルール – React
  • データモデリングでドメインを駆動する | プログラミング・システム開発,開発技法・ソフトウェアテスト・UML,開発技法・開発管理 | Gihyo Direct

    データモデリングでドメインを駆動する ──分散/疎結合な基幹系システムに向けて 2024年2月24日紙版発売 杉啓 著 A5判/400ページ 定価3,740円(体3,400円+税10%) ISBN 978-4-297-14010-6 このの概要 書のテーマは「データモデリング」と「基幹系システム」です。 Web上で台頭しつつある新たなビジネスは,新たな基幹系システムを必要としています。一方,既成ビジネスでは,モノリシックで硬直的な基幹系システムをしなやかな姿に変えていく必要があります。 基幹系システムの中核には「構造化されたビジネス記録」=「帳簿」があります。そのデザイン,つまりデータモデリングがいずれの取り組みにおいてもカギですが,データモデリングが真価を発揮するには,その知識体系を現代的に仕立て直す必要があります。 書では,「活動のシステム」と「経営管理のシステム」という線引

    データモデリングでドメインを駆動する | プログラミング・システム開発,開発技法・ソフトウェアテスト・UML,開発技法・開発管理 | Gihyo Direct
  • Databricks レイクハウスプラットフォームでのデータウェアハウスのモデリングと実装

    レイクハウスは、データレイクとデータウェアハウスの長所を組み合わせた、新しいデータプラットフォームパラダイムです。多くのユースケースやデータプロダクトを格納できる、大規模なエンタープライズレベルのデータプラットフォームとして設計されています。データレイクとデータウェアハウスを統合した、単一のエンタープライズデータリポジトリとして使用することができます。 データドメインリアルタイムストリーミングのユースケースデータマート異種データウェアハウスデータサイエンス機能ストア、データサイエンスサンドボックス部門別のセルフサービス型分析サンドボックスユースケースの多様性を考えると、レイクハウスのプロジェクトによって異なるデータ整理の原則やモデリングテクニックが適用されるかもしれません。技術的には、Databricks レイクハウスプラットフォームは、多くの異なるデータモデリング形式をサポートすることが

    Databricks レイクハウスプラットフォームでのデータウェアハウスのモデリングと実装
  • UbieにおけるGo言語のエラーハンドリング

    背景 Ubieでは以下の記事にあるように、一昨年から新しく始めるプロジェクトにはGoTypeScriptを積極的に採用しています。私は来プロダクトセキュリティが主な専門領域なのですが、公私ともに普段からGoでツールやサービスの開発をしているため、社内のGo言語の普及をサポートしたりプロダクト開発に参加したりしています。 Go言語で開発したことがある方はご存知かと思いますが、Goは標準パッケージで提供されているエラーハンドリングは最低限の機能しか提供されていません。これは、CLIツールなどではエラーの内容が簡潔に表せてよいのですが、サーバサイドアプリケーションのようにエラーにまつわる情報を詳細に残してあとから調査に利用する、という場面では不向きです。特に番環境でしか再現しないようなエラーの場合は、いかに関連情報を残せているかが、問題の解決に大きく影響します。 先日も話題になっていました

    UbieにおけるGo言語のエラーハンドリング
  • 新しいモデリング手法: EventStormingをはじめるための準備 - yoskhdia’s diary

    EventStorming (イベントストーミング) というモデリング手法があります。 www.eventstorming.com EventStorming is a flexible workshop format for collaborative exploration of complex business domains. EventStormingは、複雑なビジネスドメインを協同的に探求するための柔軟なワークショップ形式のひとつです。(意訳) 考案者はAlberto Brandolini氏で2013年にはブログに最初の投稿がされています。 海外での認知度は高く*1、Eric Evans氏のプレゼンテーションの中でも強力な手法であると言及*2されています。 近々、この手法を試せる機会が来そうなので、そのやり方について(私見を交えつつ)まとめてみるエントリです。 注意 現在進行系

    新しいモデリング手法: EventStormingをはじめるための準備 - yoskhdia’s diary
  • イベントストーミングを実施して、3日間で境界づけられたコンテキストを定義した話

    この記事は何? 2024/3/5~2024/3/7にAWS ソリューションアーキテクトの福井さん、金森さんの助力を得てイベントストーミングを実施しました。 そのイベントストーミングでどういうことを実施して、どういう成果が出たのか、得た知見や学びについて書いていきます。 背景 前提として、弊社のバックエンドのアプリケーションの構成としては、いわゆるモノリスな構成となっております。2018年の創業からsnkrdunkの成長に合わせて、アプリケーションもイケイケドンドンと実装が追加され成長していきました。2022年ごろにはグローバル向けのアプリも提供し始めました。 その勢いのままに弊社はさらに事業を成長させ、時価総額1,000億規模のIPOを実現しようとしています。 IPOを目指すにあたって、システムでは大きな問題が2つあります。 機能開発の速度が低下しつつある JP側で開発した機能をGE側で再

    イベントストーミングを実施して、3日間で境界づけられたコンテキストを定義した話
  • データベースの在庫の持ち方をビットで管理してる話 - 一休.com Developers Blog

    こんにちは、一休.comスパ(以下、「スパ」)の開発を担当しているshibataiと申します🙏 今回はスパのデータベースの在庫の持ち方で試行錯誤した話をさせていただきます。 背景 2024-03-29追記: 一休.comスパにおける在庫の特徴について 一休.comスパが扱う「在庫」は、「ある日付の特定の時間に対する空き枠」です。以降の説明では、スパ施設ごと、日付ごと、また時間ごとに増えていく「在庫」をいかに効率よく扱うかについて説明しています。 詳細については次のスレッドも参照してください! https://t.co/Y0SPmDE4yZ この記事のコメントみてると、少し我々のシステムの要件が伝わってないというかそこの説明が記事に不足しているように思った。ので以下その補足— naoya (@naoya_ito) March 29, 2024 現在の実装 スパは予約を受け付けるために在庫の

    データベースの在庫の持ち方をビットで管理してる話 - 一休.com Developers Blog
  • バッチ処理について考える - Qiita

    TL;DR ひとくちにバッチといっても色々ある 夜間バッチをもう作るな オンラインバッチはSQL以前にDB設計がんばれ はじめに Twitterのタイムラインで以下のようなツイートが回ってきました。 バッチ処理をみんな舐めてかかったり、ショボイとか思ってる人多い印象なんだけれども、数十万~数千万件規模のデータを処理したことあるのかな。テンプレ通りのコードじゃ動かないよ?ネットににも答え載ってないよ?低レイヤも意識しないと動かないよ? 2020年1月10日 ツイートされたわだっしーさんの意図がどこにあるかは確認してないですが、極限の世界でテンプレート的な処理では対応出来ないのはあるよな、と思いつつもある程度はバッチの作法としての書き方があると思っています。 このツイートとその関連ツイートを読みながら、そういえばバッチ処理に関して書いてある記事はあまり見ないなぁ、とおもったので他のネットや

    バッチ処理について考える - Qiita
  • 設計の知識と技能で駆動するソフトウェア開発

    Object Oriented Conference 2024 登壇の機会をいただいたので、ここ数年、設計について考えていることを、言語化してみました。 はじめに 設計と開発プロセスの関係性 ソフトウェア設計の知識と技能 ① ソフトウェア設計の基礎知識 a. 基課題 b. 解決のアプローチ c. モジュール化:基となる4つの技法 ② モジュール化 a. モジュールの分類 b. オブジェクト指向プログラミングのモジュール化 c. ドメイン駆動設計のモジュール化 ③アプリケーションのモジュール構成(参照モデル) コア(中心) ポート(境界) アダプタ(周辺) ④モデル駆動設計 全体 事業活動、要件、アーキテクチャ コア(中央) 業務ロジック、ドメインモデル 業務機能、アプリケーションサービス アダプター(周辺) 記録モデル、データベーススキーマ 連係モデル、プロトコル設計 対話モデル、イン

    設計の知識と技能で駆動するソフトウェア開発
  • マルチテナントの実現におけるDB設計とRLS / Utilizing RSL in multi-tenancy

    # 実装の参考資料 - https://soudai.hatenablog.com/entry/2022/11/11/110825 # 類似の登壇内容の動画 - https://www.youtube.com/watch?v=PXy6I-AeI-I

    マルチテナントの実現におけるDB設計とRLS / Utilizing RSL in multi-tenancy
  • 大規模データを扱う現場でどんな変化が? Snowflake導入5社のデータ基盤アーキテクチャと設計意図 - Findy Tools

    公開日 2024/03/11更新日 2024/03/12大規模データを扱う現場でどんな変化が? Snowflake導入5社のデータ基盤アーキテクチャと設計意図 スケーラビリティやデータ活用までのリードタイム、価格面での懸念に応える製品として注目を集めるSnowflake。特に大規模なデータを取り扱う現場では、Snowflake導入によってどんな変化があるのでしょうか。 記事では、前回の第一弾でご紹介したChatworkさん、delyさん、GENDAさん、スターフェスティバルさんに引き続き、第二弾として大規模データを取り扱う5社に、データ基盤の設計思想やデータチームの方針にも触れながら、Snowflake導入の背景や効果を伺いました。 ■目次 ・株式会社Algoage ・株式会社GROWTH VERSE ・株式会社マイナビ ・ノバセル株式会社 ・株式会社セゾン情報システムズ 株式会社Alg

    大規模データを扱う現場でどんな変化が? Snowflake導入5社のデータ基盤アーキテクチャと設計意図 - Findy Tools
  • サーバーレスマイクロサービスを構築するための設計アプローチの比較 | Amazon Web Services

    Amazon Web Services ブログ サーバーレスマイクロサービスを構築するための設計アプローチの比較 AWS Lambda でワークロードを設計すると、コードレベルでもインフラレベルでも表現できるモジュール性のために、開発者に疑問が生じます。また、コードを実行するためにサーバーレスを使用するには、基盤となる機能コンポーネントからビジネスロジックを抽出するためのさらなる検討が必要です。この意図的な関心の分離により、堅牢なモジュール性が保証され、進化的なアーキテクチャへの道が開かれます。 この投稿は同期ワークロードに焦点を当てていますが、他のワークロードのタイプでも同様の考慮が当てはまります。API の境界を特定し、コンシューマと API について擦り合わせた後、その境界と関連するアーキテクチャを構成します。 Lambda 関数を使用して API を構成する最も一般的な 2 つの方

    サーバーレスマイクロサービスを構築するための設計アプローチの比較 | Amazon Web Services
  • ID生成方法についてあれこれ

    ID生成について聞かれることが多いので、独自の観点でまとめてみます。タイトルは適当です…。 DBMySQL(InnoDB)を想定しています。あしからず。 ID生成を知りたいなら ID生成に関しては以下の記事がよくまとまっているので参考にしてみてください。値形式など詳しく書かれています。 ID生成大全 Facebook, Twitter, Instagram等がどうやってIDを生成しているのか まとめ ID生成方法 以下のID生成方法は、お手軽に採用しやすいもの順で列挙します。 DB採番/連番型 AUTO_INCREMENT DBのAUTO_INCREMENTで採番する方法。 Pros 数値型で扱える 普通は64ビットの整数型を採用することが多い 単調増加する連番ですので、ソート可能でかつインデックスの空間効率がよい 単調増加するので、キャパシティを予測しやすい 64ビットあればあまり気に

    ID生成方法についてあれこれ
  • RDBアンチパターンと戦う - 削除フラグ 完全攻略ガイド / delete flag

    PHPカンファレンス関西の登壇資料です。 WEB+DB PRESS Vol.134に詳細があります https://gihyo.jp/magazine/wdpress/archive/2023/vol134

    RDBアンチパターンと戦う - 削除フラグ 完全攻略ガイド / delete flag