ブックマーク / future-architect.github.io (52)

  • DynamoDB設計ガイドライン

    免責事項 有志で作成したドキュメントである。フューチャーには多様なプロジェクトが存在し、それぞれの状況に合わせて工夫された開発プロセスや高度な開発支援環境が存在する。ガイドラインはフューチャーの全ての部署/プロジェクトで適用されているわけではなく、有志が観点を持ち寄って新たに整理したものである相容れない部分があればその領域を書き換えて利用することを想定している。プロジェクト固有の背景や要件への配慮は、ガイドライン利用者が最終的に判断すること。ガイドラインに必ず従うことは求めておらず、設計案の提示と、それらの評価観点を利用者に提供することを主目的としている掲載内容および利用に際して発生した問題、それに伴う損害については、フューチャー株式会社は一切の責務を負わないものとする。掲載している情報は予告なく変更する場合がある はじめに ​AWS が提供するフルマネージドな NoSQLデータベース

  • ログ設計ガイドライン

    免責事項 有志で作成したドキュメントである。フューチャーには多様なプロジェクトが存在し、それぞれの状況に合わせて工夫された開発プロセスや高度な開発支援環境が存在する。ガイドラインはフューチャーの全ての部署/プロジェクトで適用されているわけではなく、有志が観点を持ち寄って新たに整理したものである相容れない部分があればその領域を書き換えて利用することを想定している。プロジェクト固有の背景や要件への配慮は、ガイドライン利用者が最終的に判断すること。ガイドラインに必ず従うことは求めておらず、設計案の提示と、それらの評価観点を利用者に提供することを主目的としている掲載内容および利用に際して発生した問題、それに伴う損害については、フューチャー株式会社は一切の責務を負わないものとする。掲載している情報は予告なく変更する場合がある 対象スコープアプリケーションが出力するログ(アプリログ)が対象AWS

  • ログ設計ガイドラインを公開しました | フューチャー技術ブログ

    はじめにTechnology Innovation Groupの八木です。 フューチャー社内の有志メンバーでログ設計ガイドラインを作成し公開しました! ログは、システムの稼働状況を可視化し、トラブルが発生した際に迅速に原因特定するための生命線になります。しかし、その重要性の一方で、プロジェクトごとに設計がバラバラになりがちだったり、とりあえず標準出力しているだけになっていたりと、十分に活用しきれていないケースも多く見受けられます。 記事では、今回公開したログ設計ガイドラインの背景や、現場で役立つ設計のポイントを抜粋してご紹介します。 ガイドライン作成のモチベーションこれまで、ログ設計は個々のエンジニアの経験則や、プロジェクトごとの慣習に委ねられることが多くありました。しかし、システムが複雑化し、マイクロサービスやクラウドネイティブな構成が当たり前になった現代において、ログの役割は「単なる

    ログ設計ガイドラインを公開しました | フューチャー技術ブログ
  • データベースと向き合う決意をしてから3年たった | フューチャー技術ブログ

    秋のブログ週間の5目です。 3年前の秋のブログ週間でデータベースと向き合う決意というエントリーを書きました。3年経ちましたが、多少ベクトルは変わりましたが今も基的な気持ちは変わっていません。むしろ、「生成AIによって自然言語で気軽に作れるようになった」ことで、SQLの敷居は大きく下がりました。 DFDのガイドライン作りを始めた今年はDFDのが出ました。5月にブログも書きました。 データフローダイアグラムの献をいただきました書を読んだことで、フューチャー社内のDFDが何を工夫してどのように活用してきたのか、というのを相対的に見れるようになりました。フューチャースタイルも有志で公開しているガイドライン集にいつか入れられたらいいな、ということを思いました。そして、いつか他社のDFD図の発展がどのようになっているのかとかも世の中に出てきて、50年分の図の進化が行われると良いな、という気

    データベースと向き合う決意をしてから3年たった | フューチャー技術ブログ
  • なぜアーキチームは設計や実装のパターンを絞りたいか? 背景にある思考と技術選定のジレンマ | フューチャー技術ブログ

    秋のブログ週間の7目です。TIG 真野です。 アーキチーム(アーキテクト)やテックリードなどからの設計/開発のレビューで、こんな経験はありませんか? 「その実装は、この機能ID “BL310” の実装パターンでお願いします」「そのライブラリの採用は見送りでお願いします」「そのミドル(DB)のその機能の利用は原則禁止です。え? はい、あー、、ガイドラインには…確かに今、書いていないですね。後出しで申し訳ないのですが利用はしない方向でお願いします。開発規約には私がこれから追記しますね。え? あ、はい。そうですね、今度タイ料理でもべに行きましょう」難しい要件・厳しい期限・不確実性・そして必ずしも満足とは言い難い体制の中、こっちはベストを尽くしていて、ましてより直感的で意図が明確な設計や実装だと思っていて、ていうか品質やスケジュールで遅延が生じた際に結局、矢面に立つのは自分なのに、否定されてか

    なぜアーキチームは設計や実装のパターンを絞りたいか? 背景にある思考と技術選定のジレンマ | フューチャー技術ブログ
  • PostgreSQL 18の新機能「B-treeインデックスのスキップスキャン」 | フューチャー技術ブログ

    PostgreSQL18連載の6目の記事です。 PostgreSQL 18がリリースされました。リリースされた機能のうち私は「B-treeインデックスのスキップスキャン」機能が気になったので、機能の特徴を深堀りしつつ、実際の挙動を確認してみます。 B-treeインデックスのスキップスキャンとは複合インデックス(複数の列で構成されるインデックス)の利用効率を劇的に向上させる新しいスキャン方法です。 従来の課題PostgreSQLでは、例えば(列A, 列B)という順番で複合インデックスを作成した場合、これまではWHERE句に先頭の「列A」の条件がないと、インデックスを効率的に使えませんでした。 例えば、WHERE 列B = 'hoge'というクエリでは、せっかくの (列A, 列B) インデックスをうまく使えず、結果としてテーブル全体をスキャン(シーケンシャルスキャン)してしまう、あるいは、イ

    PostgreSQL 18の新機能「B-treeインデックスのスキップスキャン」 | フューチャー技術ブログ
  • メール設計ガイドライン

    免責事項 有志で作成したドキュメントである。フューチャーには多様なプロジェクトが存在し、それぞれの状況に合わせて工夫された開発プロセスや高度な開発支援環境が存在する。ガイドラインはフューチャーの全ての部署/プロジェクトで適用されているわけではなく、有志が観点を持ち寄って新たに整理したものである相容れない部分があればその領域を書き換えて利用することを想定している。プロジェクト固有の背景や要件への配慮は、ガイドライン利用者が最終的に判断すること。ガイドラインに必ず従うことは求めておらず、設計案の提示と、それらの評価観点を利用者に提供することを主目的としている掲載内容および利用に際して発生した問題、それに伴う損害については、フューチャー株式会社は一切の責務を負わないものとする。掲載している情報は予告なく変更する場合がある はじめに ​電子メールは、SMTP(Simple Mail Trans

  • バッチ設計ガイドラインを公開しました | フューチャー技術ブログ

    はじめにこんにちは。TIG(Technology Innovation Group)の田です。 フューチャー社内の有志メンバーでバッチ設計ガイドラインを作成し、公開しました。 記事ではガイドラインの作成の経緯や想いなどを簡単に紹介します。 ガイドラインの対象読者ガイドラインは、以下のような方を主な読者として想定しています。 バッチ開発を行う初学者 バッチ処理を含むシステム設計を行う人 自身のメイン領域はバッチ処理ではないがバッチ処理設計の勘所を知っておきたい人 特に初学者の方はジョブ設計の章だけでも読んでいただくことをオススメします。バッチ処理のプログラムを実装する上で留意するべき冪等性や性能といったポイントが紹介されています。 ガイドラインの作成経緯フューチャーでは様々な規模のシステムを構築しており、その中には多種多様なバッチ処理も含まれます。 cronのようなシンプルなスケジ

    バッチ設計ガイドラインを公開しました | フューチャー技術ブログ
  • Webフロントエンド設計ガイドラインを公開しました | フューチャー技術ブログ

    はじめにこんにちは。TIGの長谷川です。 フューチャー社内の有志メンバーでWebフロントエンド設計ガイドラインを作成し公開しました! ガイドラインではガイドライン策定の背景やガイドラインの特徴に加えて、内容の一部をピックアップしてご紹介します。 ガイドラインの背景昨今のWebフロントエンド領域は、単なるHTMLCSSJavaScriptでのページ制作から大きく変化しました。ReactVue.jsなどのモダンなフレームワークを活用した大規模かつ動的なWebアプリケーションの構築が主流となっています。 これにより開発の効率化とユーザー体験(UX)が向上しています。しかし一方で、設計の考慮点も多様化し、セキュリティやアクセシビリティなど、より多面的な品質も求められるようになりました。 ガイドラインでは、Webフロントエンド設計における考慮点・設計パターン・推奨手法を提示し、開発チーム

    Webフロントエンド設計ガイドラインを公開しました | フューチャー技術ブログ
  • I/F設計ガイドラインを公開しました | フューチャー技術ブログ

    はじめにコアテクの山口です。 フューチャー社内の有志メンバーでI/F設計ガイドラインを作成し、公開しました。 I/F設計ガイドライン | Future Enterprise Arch Guidelines システム開発、特にエンタープライズ領域においてシステム間のデータ連携は避けて通れません。 ガイドラインは、クラウドネイティブな環境におけるモダンなシステム間連携の設計指針を提供することを目指しています。 アピールポイント連携方式の選定といった上流のアーキテクチャ設計から、ファイル形式や冪等性といった下流の詳細設計、そして結合テスト計画の指針まで網羅されたガイドラインになっています。 ピックアップコンテンツ今回のガイドラインもボリュームがあるため、一部コンテンツを抜粋してご紹介します。 統合パターンシステム間連携の方式として代表的な4つの統合パターン(DB共有、RPC、メッセージング、フ

    I/F設計ガイドラインを公開しました | フューチャー技術ブログ
  • Go1.25リリース連載:sync | フューチャー技術ブログ

    はじめに製造エネルギー事業部の辻です。Go1.25 リリース連載 の3目です。 マイナーアップデートから sync パッケージを取り上げて紹介します。 アップデートサマリ The new method on WaitGroup, WaitGroup.Go, makes the common pattern of creating and counting goroutines more convenient. https://go.dev/doc/go1.25#syncpkgsync sync パッケージに新しく WaitGroup.Go() というメソッドが追加されました。ゴルーチンの生成と完了を集計する一般的なパターンを便利に記述できるようになりました。 var wg sync.WaitGroup tasks := []string{"task 1", "task 2", "task

    Go1.25リリース連載:sync | フューチャー技術ブログ
  • バッチ設計ガイドライン

    免責事項 有志で作成したドキュメントである。フューチャーには多様なプロジェクトが存在し、それぞれの状況に合わせて工夫された開発プロセスや高度な開発支援環境が存在する。ガイドラインはフューチャーの全ての部署/プロジェクトで適用されているわけではなく、有志が観点を持ち寄って新たに整理したものである相容れない部分があればその領域を書き換えて利用することを想定している。プロジェクト固有の背景や要件への配慮は、ガイドライン利用者が最終的に判断すること。ガイドラインに必ず従うことは求めておらず、設計案の提示と、それらの評価観点を利用者に提供することを主目的としている掲載内容および利用に際して発生した問題、それに伴う損害については、フューチャー株式会社は一切の責務を負わないものとする。掲載している情報は予告なく変更する場合がある はじめに ​バッチ処理とは、大量のデータを一括で処理するための手法であ

  • FastAPI on Dockerがかなりシンプルになった(2025年版) | フューチャー技術ブログ

    5 年ほど前に Python のコンテナ化について 2 つの記事を書きましたが FastAPI 側も Docker 側もアップデートがあり、当時よりもかなりシンプルになってきたのを感じたので少し調べてまとめてみました。 書き方の部分は別として Python におけるコンテナイメージ選択の考え方とかは 2020 年に書いたときとは変わっていませんので、適宜そちらを参照してください。 仕事Python コンテナをデプロイする人向けの Dockerfile (1): オールマイティ編 仕事Python コンテナをデプロイする人向けの Dockerfile (2): distroless 編 (1)の方からのアップデートとしては Debian のバージョンですね。stretch(9), buster(10)はすでに EOL です。その次に出た bullseye(11)は 2026 年 8

    FastAPI on Dockerがかなりシンプルになった(2025年版) | フューチャー技術ブログ
  • PostgreSQL設計ガイドラインのご紹介 | フューチャー技術ブログ

    はじめにフューチャー社内の有志メンバーでPostgreSQL DB設計ガイドラインを作成しました。 PostgreSQL設計ガイドライン | Future Enterprise Arch Guidelines 形になってから数ヶ月寝かせており、ある程度社内の指摘を取り込むことができたのでこのタイミングで告知します よくあるDB設計規約との差別化ポイント単にDB設計ガイドラインというと何を今更?感もあるので、命名規則や型桁など一般的な内容に加え、以下の点でよくあるDB設計ガイドラインから一歩踏み込んだコンテンツとなるよう心がけました。 論理設計への踏み込み単なるテーブル定義やデータ型選択にとどまらず、より高度な論理設計の原則に焦点を当てています。 マスタ/トラン/ワークデータベース設計において、データの種類に応じてテーブルを明確に分離することは設計効率と保守性を高める上で重要ですが、意外とそ

    PostgreSQL設計ガイドラインのご紹介 | フューチャー技術ブログ
  • Web API設計ガイドラインを公開しました | フューチャー技術ブログ

    こんにちは。Strategic AI Group の佐藤です。 フューチャーでは さまざまなガイドラインを公開しており 、ブログでも 「ガイドライン」タグ に過去の紹介記事がいくつか載っています。Web API に関するガイドラインも昨年11月から検討を開始し、今年の 1/17 に 公開されました! 記事はそのご紹介です。 4ヶ月も寝かせていて当に申し訳ありません ガイドラインの経緯フューチャーでは様々な規模、様々な環境で動くシステムを構築しています。システム開発におけるバックエンド設計かくあるべしという共通知識は大規模システムに偏っていて、昨今急速に数を増やしている Web ベースのシステムに限った話というものはあまり言語化されていませんでした。 そこで今回、設計の属人性を軽減させ、知識の横展開を容易にするべくガイドラインを作成・公開しました。当初はHTTPメソッドやステータスコ

    Web API設計ガイドラインを公開しました | フューチャー技術ブログ
  • Terraform設計ガイドライン

    免責事項 有志で作成したドキュメントである。フューチャーには多様なプロジェクトが存在し、それぞれの状況に合わせて工夫された開発プロセスや高度な開発支援環境が存在する。ガイドラインはフューチャーの全ての部署/プロジェクトで適用されているわけではなく、有志が観点を持ち寄って新たに整理したものである相容れない部分があればその領域を書き換えて利用することを想定している。プロジェクト固有の背景や要件への配慮は、ガイドライン利用者が最終的に判断すること。ガイドラインに必ず従うことは求めておらず、設計案の提示と、それらの評価観点を利用者に提供することを主目的としている掲載内容および利用に際して発生した問題、それに伴う損害については、フューチャー株式会社は一切の責務を負わないものとする。掲載している情報は予告なく変更する場合がある はじめに ​Terraformはインフラを宣言的にコード管理するツール

  • 【理論編】HTTPS通信の中身を見て、どのようにしてセキュアな通信が確立されるかを理解する | フューチャー技術ブログ

    こんにちは、CSIG 所属の市川です。普段は FutureVuls という脆弱性管理サービスの開発・カスタマーサポートをしています。 「ん?そういえば、HTTPS 通信 (HTTP over SSL/TLS) では実際どのようにセキュアな通信が確立されているんだろう?」 と、ふと気になってしまうこと、ありませんか?私はありました。 というわけで、SSL/TLS について書籍などで学んでみたのですが… アルゴリズムが沢山出てきて頭がこんがらがる…。結局どのフェーズでどのアルゴリズムが使われているんだろう? TLS ハンドシェイクの中では、実際どういった通信が行われているのだろうか。ハンドシェイク確立後はちゃんと暗号化されているのだろうか。 …というモヤモヤが残りました。 記事 (理論編) と、続編の実践編で、この2点の疑問を解決していきます。 記事でやりたいこと記事 (理論編) では、

    【理論編】HTTPS通信の中身を見て、どのようにしてセキュアな通信が確立されるかを理解する | フューチャー技術ブログ
  • Gitブランチフロー規約の紹介 | フューチャー技術ブログ

    GitHub Advent Calendar 2024の14日目の記事です。昨日はwa-chan222さんの未経験から始めたGitHub活用の基と学びでした。 はじめにフューチャー社内の有志メンバーでGitランチフローの規約を作成しました。 ひとまずは形になったので紹介します。 Gitランチフロー規約 | Future Enterprise Coding Standards ※GitHub/GitLabを利用し、トランクベース開発を採用しないアプリケーション開発を想定しています。 内容へのフィードバックは、Issueかツイッター宛にメンションを入れてコメントを貰えると幸いです。 なぜ今更Git?Gitは2005年に公開され、2007年のGitHub登場以降、バージョン管理ツールとして爆発的に普及しました。現在では、業界のデファクトスタンダードと呼べるほどの地位を確立しています。 公開

    Gitブランチフロー規約の紹介 | フューチャー技術ブログ
  • TypeScript/JavaScript Array完全攻略2024 | フューチャー技術ブログ

    TypeScriptアドベントカレンダーの12/5のエントリーです。昨日は@nanasi-1さんの【TypeScript】ジェネレーターによる遅延評価でフィボナッチ数列を生成するでした。 イマドキのJavaScriptの書き方2018というのを以前書いたのだけど、配列周りはかなり変わっているな、というのを思ったので、そこの部分だけアップデートするつもりで書いてみました。 実環境で使えるECMAScriptバージョン今時のブラウザは常に最新に更新されるはずなのでECMAScript 2024の機能もフルに使えるはずですが、おそらくNode.jsのLTSが一番古いJavaScriptエンジンということになるのかな、と思います。記事執筆時点でサポート中のバージョンは以下の4つです。軽くメソッドを調べたりした感じ、こんな感じかと。202x年の11月ぐらいになると、ES202xがLTSバージョンで

    TypeScript/JavaScript Array完全攻略2024 | フューチャー技術ブログ
  • 2024年版のDockerfileの考え方&書き方 | フューチャー技術ブログ

    最近はお客さんとの勉強会でDockerのドキュメントをつまみいして読むというのをやっていますが、改めて最新版を読んでみて、いろいろ思考が整理されました。2020年の20.10のマルチステージビルドの導入で大きく変わったのですが、それ以前の資料もweb上には多数あり「マルチステージビルドがよくわからない」という人も見かけるので過去の情報のアンラーニングに使っていただけるように改めて整理していきます。 仕事Pythonコンテナをデプロイする人向けのDockerfile (1): オールマイティ編で触れた内容もありますが改めてそちらに含む内容も含めて書き直しています。 エントリーの執筆には@tk0miya氏から多大なフィードバックをいただきました。ありがとうございます。 基的なメンタルモデル現代的な使い方を見ていくために「Dockerを使ってビルドする」というのはどのようなものか考えを整

    2024年版のDockerfileの考え方&書き方 | フューチャー技術ブログ