タグ

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

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

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

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

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

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

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

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

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

    crexist
    crexist 2025/09/14
  • 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 | フューチャー技術ブログ
    crexist
    crexist 2025/08/03
  • Future Enterprise Arch Guidelines

    Design多くの開発者が関わるシステム開発において、一貫性のある設計を行うことは何より重要です。しかし、従来はどのような設計項目が存在するかすらも各人の経験則に近い形でしか蓄積されていませんでした。そこで有志メンバーがボトムアップ的に主要な設計項目を集め、設計パターンや推奨方式をまとめました。 Agility世の中のIT技術の進歩は著しく、過去のベストプラクティスが今のアンチパターンとされることも珍しくありません。規約ではこうした変化に対応できるよう、設計標準を公開することでフィードバックを集め、民主主義的に内容を改善し続けること目指します。

    crexist
    crexist 2025/06/22
  • バッチ設計ガイドライン

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

    crexist
    crexist 2025/06/22
  • アーキテクチャ設計ガイドライン

    フューチャー株式会社の有志が作成する良いアーキテクチャを実現するための設計ガイドライン

    crexist
    crexist 2025/06/21
  • PostgreSQL設計ガイドラインのご紹介 | フューチャー技術ブログ

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

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

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

    Web API設計ガイドラインを公開しました | フューチャー技術ブログ
    crexist
    crexist 2025/05/14
  • Goのテストをはじめてみよう(2025年版) | フューチャー技術ブログ

    春の入門祭り2025 13目の記事です。 はじめに製造エネルギー事業部の辻です。Goのテストをはじめてみよう、という記事です。 この記事は、5年前の2020年に私が執筆したGoのテスト入門記事(Goのテストに入門してみよう!)のリメイク版です。当時は執筆したときのGoのバージョンは1.14でした。記事はありがたいことに継続的に反響をいただいていたものの、いくつか記述が古くなっていた点がありました。そこで今回Go1.15以降で導入された機能や、周辺のアップデート等を取り込み、改良しました。 Go のテストに関するヒント集としてお役に立てれば幸いです。 TipsGo のテストの仕組みに、ベンチマークに関するテストと Example テストというサンプルコード用のテストも含まれているのですが、この2つは対象外にします。基礎的と思われる内容から順に並べてみました。 Tips テストがしたい テス

    Goのテストをはじめてみよう(2025年版) | フューチャー技術ブログ
    crexist
    crexist 2025/05/10
  • 【理論編】HTTPS通信の中身を見て、どのようにしてセキュアな通信が確立されるかを理解する | フューチャー技術ブログ

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

    【理論編】HTTPS通信の中身を見て、どのようにしてセキュアな通信が確立されるかを理解する | フューチャー技術ブログ
    crexist
    crexist 2025/03/25
  • フロントエンドフレームワークからサーバーにアクセスするパターン | フューチャー技術ブログ

    僕が触り始めた頃のウェブフロントエンド開発はデバッガーもなく、ダイナミックHTMLと呼ばれて文字をチカチカさせたりするようなものでした。IE6という超安定ブラウザが出てきたり(Netscape 4.xも7.xも不安定だった)その後jQueryが登場したときは、天使が降臨したように思えたものです。 そこから長い年月が経ち、ウェブフロントエンドの比重が大きくなるにつれ、フロントエンドのコードはどんどん複雑化しました。OpenAPIなどのコードジェネレータなども普及した結果、通信というものが隠され、イベントの中でawaitや.then()で呼ばれる何か、みたいな理解をしているメンバーも今後増えていくのではないかという懸念があります。 現在ではウェブフロントエンド開発はReactVueといったフレームワーク上で行われ、イベントというのはそのフレームワークの提供するライフサイクルイベントに対応付け

    フロントエンドフレームワークからサーバーにアクセスするパターン | フューチャー技術ブログ
    crexist
    crexist 2024/11/11
  • 2024年版のDockerfileの考え方&書き方 | フューチャー技術ブログ

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

    2024年版のDockerfileの考え方&書き方 | フューチャー技術ブログ
    crexist
    crexist 2024/07/26
    すげえわかりやすい
  • PostgreSQLのPub/Sub機能とJavaのクライアント実装 | フューチャー技術ブログ

    記事は「珠玉のアドベントカレンダー記事をリバイバル公開します」企画のために、以前Qiitaに投稿した記事を改訂したものです。 はじめにPub/Sub型のメッセージングアーキテクチャを採用するにあたっては、kafkaなどのブローカーミドルウェアや、Amazon SNSGoogle Cloud Pub/Subなどのマネージドサービスを利用するケースが多いかと思います。ところでPostgreSQLでも実はPub/Subができます。 すでに業務でPostgreSQLを使っていれば、新たにPub/Subブローカーを構築しなくても、疎結合なシステム間通信を簡易的に実現できます。 記事ではこの機能の紹介と、Pub/SubクライアントをJavaで実装する場合の選択肢、考慮点を示しています。 ※実行環境はPostgreSQL 16.2とJava 21です ※データベースの文字コードはUTF-8としてい

    PostgreSQLのPub/Sub機能とJavaのクライアント実装 | フューチャー技術ブログ
    crexist
    crexist 2024/06/29
  • 個人的docker composeおすすめtips 9選 | フューチャー技術ブログ

    記事は「珠玉のアドベントカレンダー記事をリバイバル公開します」企画のために、以前Qiitaに投稿した記事を一部ブラッシュアップしたものになります。 はじめにみなさん、docker composeを利用しているでしょうか? 複数のdockerコンテナをまとめて立ち上げたり、環境変数を定義できたり便利ですよね。 この記事ではある程度docker composeを利用している方向けに私が便利、便利そうと感じたdocker composeの機能を挙げてみました。 docker compose cli v2を利用docker-composeではなく docker composeコマンドも利用可能になっています。 Docker Desktopでは v3.4.0から利用可能で、基的にはコマンドの互換性あります。 ファイル監視による自動更新docker compose 2.20.0からCompose

    個人的docker composeおすすめtips 9選 | フューチャー技術ブログ
    crexist
    crexist 2024/06/21
  • クラウドロックインされないアーキテクチャ「Cloud Agnostic Architecture」のすすめ | フューチャー技術ブログ

    この記事はQiitaのアドベントカレンダー記事のリバイバル公開です。 ※ 当時の記事から、一部表現を見直し加筆しています。 はじめに先日ガートナーのレポートで「多くの企業において、特定のクラウドベンダーにシステムを集中させるリスクの重要度が上昇している」との発表がありました。 https://www.gartner.com/en/newsroom/press-releases/2023-10-30-gartner-says-cloud-concentration-now-a-significant-emerging-risk-for-many-organizations 日においてクラウドの活用はますます進んでいる一方で、特定の Cloud Service Provider(CSP)にロックインされるリスクについては、常に議論の余地があると考えています。 記事では、特定のクラウドに強く

    クラウドロックインされないアーキテクチャ「Cloud Agnostic Architecture」のすすめ | フューチャー技術ブログ
    crexist
    crexist 2024/06/17
    ここら辺、opentelemetry の様にOpen化して欲しいんだよなー
  • Go 1.18集中連載 Workspacesモードを試してみた | フューチャー技術ブログ

    はじめにGo 1.18連載の5目です。 Go 1.18からGoのマルチモジュール1での開発を便利にするWorkspacesモードが導入されます。Workspacesモードの導入背景はマルチモジュールでの開発体験を改善することです。詳しくはProposal: Multi-Module Workspaces in cmd/goのBackgroundやScopeに記載があります。 Workspacesモードがどのように動作するか知るためには、実際に動かしてみるのがよいでしょう。記事ではWorkspacesモードを試してみた結果を紹介します。GoのバージョンはGo 1.18 beta2を使っています。 マルチモジュール構成早速、例として、Workspacesモードが存在しない場合のマルチモジュール構成を考えてみます。 > tree . ├── names │   ├── company.go

    Go 1.18集中連載 Workspacesモードを試してみた | フューチャー技術ブログ
    crexist
    crexist 2024/05/04
  • あなたのGoアプリ/ライブラリのパッケージ構成もっとシンプルでよくない? | フューチャー技術ブログ

    2023.10.5追記: Goチームからプロジェクトの目的に応じたディレクトリ構造についてのドキュメントが公式に公開されています。 https://go.dev/doc/modules/layout Goプロジェクトのフォルダ構成どうしよう、とググると見つかるStandard Go Project Layout。とはいえ、これはかなりコード量を増やしてしまう恐れがありますので、導入する場合のデメリットも考えておく方が良いです。 特に、プログラマーは、最初にみたプログラミング言語のフォルダ構成を親だと思う特性があり、Javaや.NETに影響されるとかなり細かくフォルダを切りたくなったり、package privateなど細かく可視性を制御しようとしたりして、なおかつ「privateのテストってどうすべきなんですか?」とか議論を始めたりもしますが、Go先生によればこれぐらいは1パッケージにフ

    あなたのGoアプリ/ライブラリのパッケージ構成もっとシンプルでよくない? | フューチャー技術ブログ
    crexist
    crexist 2023/12/26
  • 設計ドキュメント腐る問題、Git管理で運用してみた結果 | フューチャー技術ブログ

    はじめにTIG真野です。 秋のブログ週間2023 の3目は、設計ドキュメントをGit管理して腐らせないようにがんばってみた話をします。 前段として6年前、「我々はいかにシステム開発におけるドキュメント腐る問題と戦えば良いのか」という記事を書いたのですが、その後の試行錯誤はどこにも残していないことに気づきました。普段のフューチャー技術ブログですとちょっと引け目を感じるテーマですが、秋の夜長を楽しむため読み物成分を多めに書くというテーマのこのブログリレーにピッタリな気がするため、この機会をお借りします。 ドキュメントも色々な種別があるかと思いますが、この記事では設計ドキュメントを指すことにします。設計ドキュメントは開発メンバーが参照するもので、ステークホルダーへの説明資料に引用して使うことはあれど、主目的は異なるという前提です。Design Docの場合もありますし、システム構成図、ERD、

    設計ドキュメント腐る問題、Git管理で運用してみた結果 | フューチャー技術ブログ
    crexist
    crexist 2023/11/02