タグ

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

  • AWS利用時に read: connection reset by peer が出たときのリトライ検討 | フューチャー技術ブログ

    はじめにTIG DXユニットの真野です。 DynamoDBやKinesis Data Streamsなどを利用するサービスをそれなりの期間で稼働させているとポツポツ下記のようなエラーが発生することが分かりました。 エラーログ(改行を追加しています)[MY-APP-ERROR-LOG] RequestError: send request failedcaused by: Post "https://kinesis.ap-northeast-1.amazonaws.com/": read tcp 169.254.0.1:55638->3.113.218.4:443: read: connection reset by peer ここで疑問に思ったのは、少なくてもAWS SDK for Goを使っている限りは必要に応じてデフォルトでリトライをしてくれているはずです。下記のドキュメントでは通常は

    AWS利用時に read: connection reset by peer が出たときのリトライ検討 | フューチャー技術ブログ
    karur4n
    karur4n 2023/12/05
  • データベースと向き合う決意 | フューチャー技術ブログ

    秋のブログ週間の9目のエントリーになります。この企画もこんなに書く人が出てくるように育っていいですね。 「中間層を増やして柔軟性を高めるのがソフトウェアの歴史」 これは大学時代に2つ上の先輩が言っていた言葉です。例えばマシン語を直接書くのではなく、アセンブラで書けば、変換(コンパイル)の手間はかかりますが、他のCPUへの移植はしやすくなります。高級アセンブラと名高いC言語を使えばさらに移植性は上がります。C言語で書かれたVMを使う言語、例えばJavaPythonRubyなんかはさらに移植性は上がります。 ストレージもそうです。最終的にストレージはビット列を保存するものですが、それにOSのファイルシステムというレイヤーがあり、そこにスキーマで管理されたデータを入れるDBMSが乗っかり、SQLなどの問い合わせ言語でデータ取得できるようにします。DBMSを挟むことで、レプリケーションでバッ

    データベースと向き合う決意 | フューチャー技術ブログ
    karur4n
    karur4n 2022/11/11
  • gRPCがフロントエンド通信の第一の選択肢になる時代がやってきたかも? | フューチャー技術ブログ

    Go 1.19が8/2に早々にリリースされました。個人的にはGo 1.19よりも楽しみだったのが、サービス間通信とIDL(インタフェース記述言語)連載の中でご紹介したgRPCGo実装の新星、Connectのアップデートでした。そしてそれはやってきました。 詳しい内容は↑の記事を見ていただくとして、Connectがその開発元ブログの紹介記事で宣言していたのが次の2つのことでした。 Go 1.19が出たらconnect-goは1.0にして以後後方互換性を守るよ connect-webを出すよ 前者はまだ0.3だったのですが、connect-webはリリースされました。歴史のあるフロントエンドのコードジェネレータはTypeScript対応が後付けだったりするのですが、TypeScriptがファーストシチズンかつ、ネイティブというコードジェネレータなので、開発はかなりやりやすくなることが期待され

    gRPCがフロントエンド通信の第一の選択肢になる時代がやってきたかも? | フューチャー技術ブログ
    karur4n
    karur4n 2022/08/19
  • AWS Certified Solutions Architect - Associate 合格体験記 | フューチャー技術ブログ

    こんにちは、TIGの市川浩暉です。 先日、業務の合間を縫って少しづつ勉強を進めていた、AWS Certified Solutions Architect - Associate(AWS SAA)を受験し、合格できました。 今回は合格までの学習方法と試験を受けた感想を共有したいと思います。 この記事がこれから受験する人の一助となれば幸いです。 AWS Certified Solutions Architect - Associate とは AWS 認定ソリューションアーキテクト - アソシエイト試験は、AWS における分散システムの可用性、コスト効率、高耐障害性およびスケーラビリティの設計に関する 1 年以上の実務経験を持つソリューションアーキテクト担当者を対象としています。 引用:AWS 認定 ソリューションアーキテクト – アソシエイト AWS 認定 ソリューションアーキテクト – アソ

    AWS Certified Solutions Architect - Associate 合格体験記 | フューチャー技術ブログ
    karur4n
    karur4n 2021/09/24
  • SQLファイルから型安全なコードを生成するsqlc | フューチャー技術ブログ

    TIGの辻です。GoのORマッパー連載8日目です。記事では sqlc を紹介します。早速ですが、結論から行きましょう。 sqlc まとめ SQLファイルからデータベースにアクセスできる型安全なGoのコードを生成するライブラリ 構造体のモデルの手書き実装不要 複数テーブルをJOINしたときのマッパー実装不要 生成されるコードは不要なリフレクションなし SQLをがんがん書きたい、でも面倒なマッパー構造体は書きたくない、という開発者にとっては大きな味方になります。 sqlc の紹介 sqlc はSQLファイルからGoのアプリケーションコードを生成するライブラリです。2020/2に v1.0.0 をリリースし、着々とスターを伸ばしています。2021/08現在は v1.8.0 をリリースしています。資料で生成しているコードも v1.8.0 を用いています。 https://star-histor

    SQLファイルから型安全なコードを生成するsqlc | フューチャー技術ブログ
    karur4n
    karur4n 2021/09/20
  • 100%型安全なgolangORM「ent」を使ってみた | フューチャー技術ブログ

    はじめにgolang ORM連載の2記事目となります。TIGの宮崎将太です。 突然ですがみなさん、O/Rマッパは何を使用していますか? golangだとGORMがデファクトスタンダードの位置を勝ち取りつつあり、当社でも特に理由がない限りはGORMを使用するケースが多い印象です。 今回は新たな可能性としてFacebook社謹製のent/entを検証します。個人的なO/Rマッパ経験としてはRuby on RailsのActiveRecordから始まり、当社謹製のUroboroSQLというO/RマッパからGORMまで割と多めに触れているので、大体どのO/Rマッパでも気になる機能を中心に作りながら検証します。 entとは 公式から引用してくると以下の通りとのこと。 データベーススキーマをグラフ構造として簡単にモデル化 スキーマをプログラムのGoコードとして定義 コード生成に基づく静的型付け データ

    100%型安全なgolangORM「ent」を使ってみた | フューチャー技術ブログ
    karur4n
    karur4n 2021/09/20
  • Goのテストに入門してみよう! | フューチャー技術ブログ

    2020/08/15更新: 「テストの失敗をレポートしたい」と「サブテストの一部のみ実施したい」の章を追加 はじめにTIG の辻です。今回は春の入門祭りということで Go のテストに入門してみよう! という記事です。 書いた背景ですが Go の標準ライブラリのコードリーディング会で testing パッケージにチャレンジしてみましたが、難しすぎてわからん。そもそも Go のテストって何ができるんだっけ? という話になり、基的な内容をなるべく具体例をまじえながらまとめました。 ざっとどんなことができるんだろう、という index になれば幸いです。 TipsGo に組み込まれているテストの仕組みの中に、ベンチマークに関するテストと Example テストというサンプルコード用のテストも含まれているのですが、この 2 つは対象外にします。基礎的と思われる内容から順に並べてみました。 はじめに

    Goのテストに入門してみよう! | フューチャー技術ブログ
    karur4n
    karur4n 2021/08/18
  • Go 1.16のgo installについて | フューチャー技術ブログ

    はじめにTIG真野です。 Go 1.16連載の2つ目となるこの記事では、Go 1.16で機能追加された go install について説明します。 go installの新機能Go 1.16から go installに新機能が追加されました。go install 自体は従来から存在しているので全く新しいコマンドが増えたわけではなく、機能拡張されたイメージです。 現時点のリリースノートの記載はこちら、元のIssueはこちらです。起票されてから半年弱でリリースに含まれました。 go installの機能拡張部分ですが簡単に言うと、バージョン指定できるようになりました。言ってみればそれだけです。嬉しいこととして、それによってgo.modの書き換え無しにツールなどのインストールを行いやすくなりました。ちなみに、インストールとはコードをコンパイルして、$GOPATH/binとか$HOME/go/bi

    Go 1.16のgo installについて | フューチャー技術ブログ
    karur4n
    karur4n 2021/08/02
  • Go の Open API 3.0 のジェネレータ oapi-codegen を試してみた | フューチャー技術ブログ

    The Gopher character is based on the Go mascot designed by Renée French. 概要TIG DXチーム所属の多賀です。最近はフロントのコードを書いたりすることも増えましたが、引き続き Go も触っています。 GoOpenAPI(Swagger) からコード生成する際には、 go-swagger をよく利用しています。 go-swagger については他記事でもまとめられています。 go-swaggerを用いたWebアプリケーション開発Tips19選 WAFとして go-swagger を選択してみた ただ、 go-swagger は Swagger 2.0 にのみ対応しており、OpenAPI 3.0 系が使えない問題がありました。最新に追従していく上でも Open API 3.0 系に寄せていきたいと考えていたので、な

    Go の Open API 3.0 のジェネレータ oapi-codegen を試してみた | フューチャー技術ブログ
    karur4n
    karur4n 2020/10/04
  • 例外処理 — 仕事ですぐに使えるTypeScript ドキュメント

    TypeScriptの世界を知る 前書き Node.jsエコシステムを体験しよう TypeScriptの書き方 変数 プリミティブ型 複合型 基的な構文 基的な型付け 関数 その他の組み込み型・関数 クラス 非同期処理 例外処理 TypeScriptの例外処理構文 Error クラス 標準の例外クラス 例外処理とコードの読みやすさ try 節はなるべく狭くする Error 以外を throw しない リカバリー処理の分岐のためにユーザー定義の例外クラスを作る 例外処理を使わないエラー処理 非同期と例外処理 例外とエラーの違い 例外処理のハンドリングの漏れ 例外処理機構以外で例外を扱う まとめ モジュール console.logによるログ出力 中級のテクニック ジェネリクス 関数型指向のプログラミング クラス上級編 リアクティブ 高度なテクニック 環境ごとのTips(共通環境・ブラウザ以

    karur4n
    karur4n 2020/10/01
  • VSCode の Go extension でよく利用するコマンド 7選 | フューチャー技術ブログ

    TIG DX チーム所属の多賀です。また Go についての記事を書きます。 最近 Go 開発体への加入が発表されるなど、盛り上がっている VSCodeGo extension ですが、私も基VSCode + Go extension を利用して開発しています。 開発する際によく利用するコマンドがいくつかありますので、まとめました。 環境 VSCode: 1.45.1 Go extension: 0.14.4 補完やその他機能を利用するために Go の Language Server Protocol の実装である gopls を利用しています。 https://github.com/golang/tools/tree/master/gopls Go extension 設定の go.useLanguageServer を true にしています。 その他の設定は以下の公式設定

    VSCode の Go extension でよく利用するコマンド 7選 | フューチャー技術ブログ
    karur4n
    karur4n 2020/07/10
  • Goを学ぶときにつまずきやすいポイントFAQ | フューチャー技術ブログ

    他の言語になれた人が、初めてGoを書いた時にわかりにくいな、と思った部分はどういうところがあるのか、難しいポイントはどこか、という情報を自分の経験や、会社の内外の人に聞いたりしてまとめてみました。まだまだたくさんあるのですが、多すぎるのでまずはこんなところで。コンテナで開発することがこれからますます増えていくと思われますし、その時にコンテナとの相性が抜群なGoをこれから使い始める人もどんどん増えていくと思います。 Goは特に言語のコアをシンプルに、何かを実現するときはそのシンプルな機能を組み合わせて実現しよう、というコンセプトです。つまり、他の言語で実現したいこと・できていることに比べて、Goは組み合わせ(イディオム)でカバーする領域が広くなります。そのあたりのとっかかりになる情報を提供することが、これからGoを触る人にとってつまずきを減らすことになると思います。 Go Conferenc

    Goを学ぶときにつまずきやすいポイントFAQ | フューチャー技術ブログ
    karur4n
    karur4n 2019/07/20
  • これさえあればシステム構成図がだいたい描けるアイコンセットを公開します! | フューチャー技術ブログ

    🚧新しいVersionが公開されています🚧 こちらの記事もどうぞ確認ください。 これさえあればサービス構成図がだいたい描けるアイコンセットを公開します! こんにちは。@chanomaruです。 みなさん、スライドを作ってますか? 最近はビジネスパーソンだけでなく、学生さんもプレゼンテーションをする機会が多くなってきていますよね。 エンジニアがよく作るスライドの一つにシステム構成図があります。 わたしもシステムがどのような構造になっているかを説明する際によく作成しています。 システム構成図では各技術要素をアイコンで表現することが多いです。 しかし「ロードバランサー」や「キュー」など、よく使うわりにアイコンを探しにくいモチーフも多いですよね? ・・・ということで、社内で利用されている 「これさえあればシステム構成図がだいたい描けるアイコンセット」を公開します! アイコンセット含まれているア

    これさえあればシステム構成図がだいたい描けるアイコンセットを公開します! | フューチャー技術ブログ
  • 1