並び順

ブックマーク数

期間指定

  • から
  • まで

121 - 160 件 / 215件

新着順 人気順

fmtの検索結果121 - 160 件 / 215件

  • ネットワークコネクションの切断と Go の HTTP/2 クライアントのタイムアウト - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、クラウド基盤本部の向井です。 幸いにも cybozu.com を運用しているデータセンター内のネットワークは(担当チームの尽力により)安定していますが、ネットワークコネクションは常に切断されるリスクがあることを念頭においておく必要があります。その原因が一時的なネットワークの不調だったり、関係するコンポーネントのメンテナンスに伴う瞬断であったりした場合、アプリケーションは適切にリトライするなどして処理を継続したいところです。一方で、このような場合には OS によるプロトコルの実装やライブラリによって隠蔽された動作により、一見不思議に見える挙動に悩まされることも少なくありません。本記事では、一例として私が所属するチームで開発している Go を使って開発されたコンポーネントで経験したネットワークコネクションの切断に伴うトラブルと、その解決に利用した Go の HTTP/2 クライアン

      ネットワークコネクションの切断と Go の HTTP/2 クライアントのタイムアウト - Cybozu Inside Out | サイボウズエンジニアのブログ
    • 管理画面にWasm入れてみた | CyberAgent Developers Blog

      こんにちは、CyberFight DX 事業本部で web フロントエンドエンジニアをしている久保です。CyberFight DX 事業本部は複数のエンタメサービスを開発、運用するFANTECH本部に所属しています。今回は、管理画面を対象に WebAssembly ( Wasm ) を導入した事例をご紹介します。 FANTECH 本部では技術ブログでの発信を強化しており、最近では下記のような記事を投稿しています。ぜひご一読ください。 Cloud Run サイドカーで Fastly の Prometheus Metrics を収集して Grafana で可視化する reminder-lintでFeature Flagsの削除漏れを防ぐ マルチリージョンで稼働する内製Feature Flagsの実装 私たちのプロダクト WRESTLE UNIVERSE では、ユーザー対象のキャンペーンを実施す

        管理画面にWasm入れてみた | CyberAgent Developers Blog
      • curlを讃えよ | フューチャー技術ブログ

        Web開発者を支える重要なツールにcurlがあります。素晴らしいツールなのですが、ウェブAPIのリクエストがJSONという時代にあって、JSON書くのが面倒とかいろいろあるのですが、そのためだけに他のツールを使うのではなく、もうちょっと世の中がcurlでテストしやすいようになったらいいのでは、と思っていました。 curlはJSONがめんどいというか、世の中のWebサービスのcurlへの敬意が足りない https://t.co/tIWDToedIg — 渋川よしき (@shibu_jp) September 22, 2024 ということで書いてみました。 curlに合わせるためのミドルウェアというわけで実装しました。環境変数がなければ何もしません。 package glorytocurl import ( "bytes" "encoding/json" "io" "net/http" "ne

          curlを讃えよ | フューチャー技術ブログ
        • eBPFのリバースエンジニアリング入門 | メルカリエンジニアリング

          目次 はじめに eBPFとは? eBPFのCTFチャレンジ Flagの獲得 おわりに はじめに 初めまして、Threat Detection and ResponseチームのChihiroです。昨年の7月に株式会社メルカリに入社して、主にクラウド向けのDetection Engineeringや、インシデントレスポンスを担当しています。また、メルカリで自社開発しているSOAR(Secuirty Orchestration Automation and Response)プラットフォームの開発や運用も担当しています。 メルカリには、部活を支援する社内制度が存在し、様々な部活があります。その部活の一環として、私は最近、CTF(Capture The Flag)と呼ばれるサイバーセキュリティの競技を楽しんでいます。そこで今回は、参加したCTFの中で面白かったeBPFに関するリバースエンジニアリン

            eBPFのリバースエンジニアリング入門 | メルカリエンジニアリング
          • Rust 1.80を早めに深掘り - あずんひの日

            本日7/26(金)にリリースされたRust 1.80の変更点を詳しく紹介します。 もしこの記事が参考になれば記事末尾から活動を支援頂けると嬉しいです。 7月25日は蒸気機関車が初めて走った日 ピックアップ 遅延初期化されるグローバル変数を書けるようになった Optionの値を条件を満たしたときだけ取り出せるようになった スライスをパニックなしに分割できるようになった 配列を含むスライスを一次元化できるようになった パターンとして終端の含まれない範囲を使えるようになった useなしにsize_of等が使えるようになった 安定化されたAPIのドキュメント LazyCell サンプル LazyLock サンプル Duration::div_duration_f32 サンプル Duration::div_duration_f64 サンプル Option::take_if サンプル Seek::se

              Rust 1.80を早めに深掘り - あずんひの日
            • Abstracting database/sql boilerplate with Go generics

              An abstract vision of abstracting database/sql boilerplateIntroductionThis post is part of the Eureka Advent Calendar 2022. database/sql provides everything needed to work with SQL in Go, yet there’s an ever-growing list of query builders, ORMs and database utilities being developed by the community. Is database/sql really so bad? In this post we’ll explore what can be achieved using Go generics w

                Abstracting database/sql boilerplate with Go generics
              • pt-online-schema-changeにnohupをつけてバックグラウンドで実行してもSIGHUPを受け取って終了する現象 - Repro Tech Blog

                Platform Team/Sys-Infra Unitの伊豆です。今回は、pt-online-schema-changeにnohupをつけてバックグラウンドで実行してもSIGHUPを受け取って終了する現象に遭遇したので、そのときに調査した内容を共有します。 調査は以下の環境で行いました。 pt-online-schema-change v3.6.0 Amazon Linux 2023 bash 5.2.15 OpenSSH 8.7p1 背景 ReproではAurora MySQLを使っていて、レコード数の多いテーブルのスキーマを変更するときに、pt-online-schema-changeを使うことがあります 1 。pt-online-schema-changeを実行するときは、実行用のサーバーにSSHでログインして実行しています。 中には10億レコード以上あるテーブルもあり、pt-on

                  pt-online-schema-changeにnohupをつけてバックグラウンドで実行してもSIGHUPを受け取って終了する現象 - Repro Tech Blog
                • Go 1.24 interactive tour

                  Go 1.24 is scheduled for release in February, so it's a good time to explore what's new. The official release notes are pretty dry, so I prepared an interactive version with lots of examples showing what has changed and what the new behavior is. Read on and see! Generic aliases • Weak pointers • Improved finalizers • Swiss tables • Concurrent map • Directory scope • Benchmark loop • Synthetic time

                    Go 1.24 interactive tour
                  • Goの標準パッケージに追加されたイテレータ操作関数のご紹介 - 虎の穴ラボ技術ブログ

                    こんにちは。 虎の穴ラボでFantiaの開発を担当している Y.Kです。 先日、8月14日にGo言語のバージョン1.23がリリースされました。 🥳 Go 1.23.0 is released! 📝 Release notes: https://t.co/GXY18wS0ec ⬇️ Download: https://t.co/KjiWuBUQxl#golang pic.twitter.com/L3NMD3RAWx— Go (@golang) 2024年8月13日 バージョン1.23の目玉としてはやはり、バージョン1.22で試験的に入っていた「range-over func」が正式に導入されたことかなと思います。 「range-over func」とは「for-range構文」のrange句において以下の関数を受け取ることができるようにする変更です。 func(func() bool)

                      Goの標準パッケージに追加されたイテレータ操作関数のご紹介 - 虎の穴ラボ技術ブログ
                    • Golang: sync.MapのLoadOrStore()やLoadAndDelete()はなぜ必要か

                      あまり並行処理は書いたことが無かったんですが、最近は書く機会が増えてきました。 そんな中で並行処理について調べる事も多く、先日sync.MapのLoadOrStore()やLoadAndDelete()が必要な理由が解説されてるdev.toの記事を読んだのですが、また分からなくなった時に英語の記事を読み直すのもしんどいので、将来の自分のためにまとめる事にしました。 Go: sync.Map's LoadAndDelete and LoadOrStore. Why are they needed? - DEV Community https://dev.to/sreramk/go-loadanddelete-and-loadorstore-in-sync-map-why-are-they-needed-30f7 読んだ記事はこちらです。 なお、こうして調べたことはMisskey.ioに長文ノ

                        Golang: sync.MapのLoadOrStore()やLoadAndDelete()はなぜ必要か
                      • 実践テスト駆動開発を読んだのでモックを使ったロンドン学派的なテストをGoとmoqで考える

                        はじめに この記事を読んでいるみなさんは単体テストの考え方/使い方はもう読まれましたでしょうか?わたしは単体テストの考え方を読んだことでテストに対して漠然と思っていたことが言語化されたように感じ大変感銘を受けました。その勢いで以下のようなzenn本も書かせていただきました。 なのでしばらくはモックを極力使わない古典学派的な思想に寄っていたのですがモックを使ったテストの開発現場のレビューにて 「テスト対象の依存関係をモックにしたらテストすることがなくなりました。」 というコメントをチラッと見かけてしまい、モヤっとしました。というのもその感覚には覚えがあったからでテスト対象のオブジェクトの依存関係が多く、処理内容がその依存関係を手続き的に呼び出しているだけだったりするとそれら全てをモックやスタブに置き換え、期待する動作を自分で設定することになるのでテストが成功しても「そりゃそうだよな」という気

                          実践テスト駆動開発を読んだのでモックを使ったロンドン学派的なテストをGoとmoqで考える
                        • Extending Rust's Effect System

                          Extending Rust's Effect System — 2024-02-09 introduction rust without generics why effect generics? stage i: effect-generic trait definitions stage ii: effect-generic bounds, impls, and types what are effects? stage iii: more effects outro This is the transcript of my RustConf 2023 talk: "Extending Rust's Effect System", presented on September 13th 2023 in Albuquerque, New Mexico and streamed onli

                            Extending Rust's Effect System
                          • Rustでオブザーバビリティを実現するには - paild tech blog

                            お手伝いの@helloyukiです。最近tokioの提供するtracingに関していろいろ調べごとをしました。こうしたクレートを十分に使いこなすにはどうすればいいかを考える上で、自分なりに考えがまとまってきたので記事にしたいと思います。 なお、筆者はRust以外のプログラミング言語でのオブザーバビリティ関連の事項についてはまったくわかりません。Rust以外の事情は考慮しない記事となっている点にご注意ください。 目次 tracingとは オブザーバビリティ、テレメトリ、構造化ログ オブザーバビリティ テレメトリ 構造化ログ tracingを使う 核となる概念を掴む スパン、イベント、サブスクライバを使ってみる 実際のWebアプリケーションで使用する Tips フィールドの設定 構造化ログと非構造化ログの切り替え まとめ 参考 tracingとは tracing is a framework

                              Rustでオブザーバビリティを実現するには - paild tech blog
                            • カーソルページネーションを実装した話 | MoT Lab (GO Inc. Engineering Blog)

                              バックオフィス基盤第2グループの名嘉眞です。私の担当しているプロダクトにカーソルページネーションを実装したので、その経緯と実装内容を記事にしたいと思います。これからカーソルページネーションを実装しようとしている方の参考になれば幸いです。 カーソルページネーションを実装したきっかけカーソルページネーションを実装したきっかけは、1ユースケースでデータ量が大きくなるAPIを追加する必要があったためです。 具体的にいうとある特定の種別の決済情報を蓄積しているマイクロサービスがあり、そのマイクロサービスを利用する管理画面のサービスが存在していて、管理画面でその特定の決済情報を表示したり、CSVダウンロードしたいという機能追加がありました。サービス間の通信はgRPCです。 この要件だけだとオフセットページネーションでも良さそうなのですが、以下のような課題がありました。 ※オフセットページネーションとは

                                カーソルページネーションを実装した話 | MoT Lab (GO Inc. Engineering Blog)
                              • 監査ログの出力スキーマをProtocol Buffersで定義する - ベースマキナ エンジニアブログ

                                こんにちは、yebis0942です。今回はベースマキナの監査ログ機能の実装改善の取り組みをご紹介します。 簡単にまとめると、プロダクトの機能が充実するにつれて監査ログの仕様管理が複雑化し、メンテナンスコストが増加するという課題がありました。その解決策として、Protocol Buffersを採用し、スキーマベースで出力内容を定義しました。結果として、開発効率とメンテナンス性が向上しました。 以下で詳細についてご説明します。なお、本ブログ内で紹介するコード例は説明のため一部簡略化しています。 ベースマキナの監査ログ ベースマキナは「安全なオペレーションに必要な管理画面を数分で」を掲げるローコードSaaSです。 私たちは管理画面に必要とされる機能をまとめて提供しており、その一つに「監査ログ機能」があります。管理画面で何らかの操作が行なわれたり、管理画面自体の設定が変更された際に、「いつ」「誰が

                                  監査ログの出力スキーマをProtocol Buffersで定義する - ベースマキナ エンジニアブログ
                                • Go言語でゼロ値の場合の項目を出し分けする方法とは? - RAKUS Developers Blog | ラクス エンジニアブログ

                                  はじめに 新卒1年目のTKDSです! 先日,Go言語でjsonで返すレスポンスを作る際,ゼロ値の場合の項目の出し分けを行いたい場面がありました. そこで,encoding/jsonでゼロ値の場合の項目の出し分けを行う方法を調査しました. はじめに 行いたいこと 1. 改変したいフィールドの型をany(interface{})にして,タグにomitemptyを指定する 2. encoding/json/v2 のomitzeroを使う. 3. MarshalJSON()メソッドを実装する. まとめ 行いたいこと profileがゼロ値の場合,responseの一部を改変し,profileを含まず出力します. {"id":1,"created_at":"2009-11-10T23:00:00Z","updated_at":"2009-11-10T23:00:00Z","profile":{"na

                                    Go言語でゼロ値の場合の項目を出し分けする方法とは? - RAKUS Developers Blog | ラクス エンジニアブログ
                                  • Cursor EditorでOllamaを使う

                                    はじめに Cursor Editorすごいですよね! ChatGPTとの連携が強力で、コーディングの体験がとても良いです。 また、昨今ではChatGPT対抗のLocal LLMの開発も盛んです。 特にOllamaを使うと、Local LLMをとても簡単に使うことができます。 最近では Command R Command R+ Llama3 など、一部GPT-4を超える性能を持つモデルも登場しています。 Local LLMの魅力はなんといってもその種類の豊富さ、そして無料で使えることです。 しかし、Cursor EditorではそのままではOllamaを使うことができません。 CursorでOpenAI以外のLLM Providerを使うには そもそもCursor Editorは以下のProviderに対応しています。 OpenAI Claude Azure OpenAI しかし、世の中には

                                      Cursor EditorでOllamaを使う
                                    • AWS CDKで構築するイベント駆動型アーキテクチャの実装戦略 - ZOZO TECH BLOG

                                      はじめに こんにちは、ZOZOMO部FBZブロックの山村です。普段はFulfillment by ZOZO(以下、FBZ)が提供するAPIシステムを開発・運用しています。 FBZは、AWS Lambda(以下、Lambda)を中心にAWSが提供するフルマネージドサービスを活用したサーバーレスアーキテクチャを採用しています。 以下の記事にてサービス構成やアーキテクチャ戦略の詳細を説明しています。 techblog.zozo.com 今回は、イベント駆動型のアーキテクチャを開発するうえで直面した課題と、その開発経験をもとにどのようにアプローチしたかをご紹介します。 目次 はじめに 目次 背景・課題 インフラリソース定義のための知識が必要であり、プロジェクトの参入難度を上げていた イベント駆動ではアプリケーションコードに合わせて関連リソース定義も必要になる 記述時点では正しく記述できているか気づ

                                        AWS CDKで構築するイベント駆動型アーキテクチャの実装戦略 - ZOZO TECH BLOG
                                      • Deno 2 リリース — Node.jsとの互換性向上、標準ライブラリの提供、JSR連携など多数の改善を含むメジャーアップデート

                                        10月10日、Denoは「Deno 2」を正式に発表した。Denoは、JavaScriptおよびTypeScriptをサポートする現代的なツールチェーンとして、すでに数多くの開発者に愛用されているが、新バージョンのDeno 2はさらに多くの機能と強化を備え、特にNode.jsおよびnpmとの互換性を大幅に改善している。 Deno 2の主要機能 Deno 2では、多くの新機能が導入されている。以下は主な機能である。 Node.jsおよびnpmとの互換性:Deno 2は、既存のNode.jsプロジェクトやnpmパッケージをシームレスにサポートしており、package.jsonやnode_modulesを直接利用可能である。これにより、既存のNodeプロジェクトにDenoのツールを導入することができる。Denoでは、npm:という形式でnpmパッケージをインポートすることも可能で、node_mo

                                          Deno 2 リリース — Node.jsとの互換性向上、標準ライブラリの提供、JSR連携など多数の改善を含むメジャーアップデート
                                        • [登壇レポート]「Terraformあれやこれ」という内容で登壇してきました #jawsug_asa #jawsug | DevelopersIO

                                          仕事で Terraform を使うことになり、勉強中に奮闘した内容をまとめています。Terraform を使ったことがない方、使い始めたばかりの方に参考にしていただけると嬉しいです。 コーヒーが好きな emi です。 JAWS-UG朝会 #56 で「Terraformあれやこれ」というタイトルで 20 分登壇してきました。 仕事で Terraform を使うことになり、勉強中に奮闘した内容をまとめています。Terraform を使ったことがない方、使い始めたばかりの方に参考にしていただけると嬉しいです。 登壇資料 発表のダイジェスト 当日は 60 ~ 70 名程度の方が視聴くださいました。はじめに普段一番よく利用する IaC ツールを伺ったところ、 CloudFormation CDK Serverless Framework を使われる方が多く、あまり Terraform を使っている方

                                            [登壇レポート]「Terraformあれやこれ」という内容で登壇してきました #jawsug_asa #jawsug | DevelopersIO
                                          • Go Conference 2024 登壇した #gocon - 私が歌川です

                                            Go Conference 2024に参加し、登壇してきました。 登壇しました Dive into gomockというタイトルで発表しました。2トラックのどちらかで40分トークかな? と思っていたら2部屋ぶち抜きでトークだったのでビビっていました。 発表資料はこちらです。 speakerdeck.com gomockの内部実装を見て、なぜライブラリの内部実装を見るのがよいことなのか、という話をしました。reflectパッケージが好きなので合間にreflectパッケージの話もしています。つまり主題が3つあるわけですね。 gomockの内部実装を見よう リフレクションを知ろう なぜライブラリの内部実装を見るのか知ろう 今回はgomockの実装を掘り下げることで、魔法のように見えるイディオムの裏にある処理を知ろう、という方向性でやりました。今回の発表でgomockの内部実装を全員が完全理解できた

                                              Go Conference 2024 登壇した #gocon - 私が歌川です
                                            • Don’t return err in Go — akavel's digital garden

                                              Instead, add missing details relevant for debugging. Some people like to complain that Go requires writing tons of “if err != nil { return err }” blocks. Those people don’t understand Go errors. The thing is, what they complain about is actually a completely wrong way of handling errors in Go: return err is an antipattern. Let me show what I mean on some sample code: a helper library for configuri

                                              • Lingo: A Go micro language framework for building Domain Specific Languages

                                                Lingo: A Go micro language framework for building Domain Specific Languages Design, build and integrate your own Domain Specific Language with Lingo. Domain Specific Languages (DSL) are small, focused languages with a narrow domain of applicability. DSLs are tailored towards their target domain so that domain experts can formalize ideas based on their knowledge and background. This makes DSLs powe

                                                  Lingo: A Go micro language framework for building Domain Specific Languages
                                                • CEL(Common Expression Language) - Carpe Diem

                                                  概要 CEL(Common Expression Language)とは、Google によって開発された軽量で高速な式評価言語です。 そのシンプルさと効率性から、セキュリティポリシー、リソースフィルタリング、データ検証などに使われます。 例えばプロダクションでは以下のような利用例があります。 IAM Conditionsとして Kubernetesのセキュリティポリシー定義として 今回はCELの説明と簡単な使い方を紹介します。 環境 go v1.22.1 cel-go v0.20.1 CELとは CELは以下の特徴を持ちます。 非チューリング完全言語 軽量 静的型付けを採用しており、コンパイル時にエラーを検出できる 多数の組み込み関数をサポート ユーザー定義関数やカスタム型を使って拡張できる 具体的には次のようなことができます。 // リソース名がグループ名で始まっているかどうかをチェッ

                                                    CEL(Common Expression Language) - Carpe Diem
                                                  • Implementing MVCC and major SQL transaction isolation levels | notes.eatonphil.com

                                                    In this post we'll build a database in 400 lines of code with basic support for five standard SQL transaction levels: Read Uncommitted, Read Committed, Repeatable Read, Snapshot Isolation and Serializable. We'll use multi-version concurrency control (MVCC) and optimistic concurrency control (OCC) to accomplish this. The goal isn't to be perfect but to explain the basics in a minimal way. You don't

                                                    • シンプルな例から学ぶ、トレーシングを使って問題を発見する方法 - Mackerel ブログ #mackerelio

                                                      はじめに Mackerelでは先ごろ、分散トレーシングサービスのVaxilaが使えるようになりました。Mackerelがこれまで提供していた監視(モニタリング)も、この度お使いいただけるようになったトレーシングも、システムの状態の把握や理解をするための手法ですが、視点や手法が異なります。 このエントリでは、ごくシンプルなアプリケーションからトレースやスパンを送信しVaxilaの画面を交えながら、トレーシングの見方や活用方法をご紹介します。 はじめに トレーシングとは何か シンプルなWebアプリケーションを用いたトレーシングの例 アプリケーションを起動する トレース画面の見方 全体のリクエストフロー 各スパンの詳細を見ていく トレーシングを用いてどのように課題を発見するか まとめ トレーシングとは何か まず、トレーシングについておさらいしましょう。 トレーシングとは、アプリケーションの処理フ

                                                        シンプルな例から学ぶ、トレーシングを使って問題を発見する方法 - Mackerel ブログ #mackerelio
                                                      • 【Go】型が特定のinterfaceを満たしているかをコンパイル時に確認させる方法 - Qiita

                                                        はじめに こんにちは、kenです。お仕事ではGoを使っています。 先日、Effective Go(Goの公式が出している慣用的なコーディングスタイルと実践を記したドキュメント)を読んでいたら興味深いことが書かれていたので今日はそれについて書こうと思います。 内容は「型が特定のinterfaceを満たしているかをコンパイル時に確認させる方法について」です。 Goのinterfaceについておさらい 本題に入る前にGoのinterfaceについてざっくり説明しておきます。interfaceについてもう知っているよという方はスキップしてください。 Go言語ではinterfaceをメソッドシグネチャの集合として定義します。 そして型がinterfaceを実装する際には、interfaceの定義に使ったメソッドを型に実装するだけでよく、「その型がどのinterfaceを実装しているか」については明示

                                                          【Go】型が特定のinterfaceを満たしているかをコンパイル時に確認させる方法 - Qiita
                                                        • CloudShell VPC environment から VPC内のEC2インスタンスやRDS DBインスタンスに接続してみた | DevelopersIO

                                                          もっと簡単にVPC内のリソースにアクセスしたい こんにちは、のんピ(@non____97)です。 皆さんはもっと簡単にVPC内のリソースにアクセスしたいと思ったことはありますか? 私はあります。 VPC上のRDS DBインスタンスやRedisクラスターなどのリソースに接続したい場合、Site-to-Site VPNやClient VPN、Direct Connectがなければ踏み台が必要になります。 踏み台へのアクセス方法は以下のようなものがあります。 直接SSH SSMセッションマネージャー EC2 Instance Connect SSMセッションマネージャーとEC2 Instance Connectについては以下記事をご覧ください。 しかし、上述のいずれのパターンもEC2インスタンスやECS Fargateなどの課金が発生するリソースをプロビジョニングする必要があります。 そんな時に

                                                            CloudShell VPC environment から VPC内のEC2インスタンスやRDS DBインスタンスに接続してみた | DevelopersIO
                                                          • ISUCON向けにGoの便利キャッシュライブラリを作りました

                                                            ISUCON向けにGoのcacheライブラリを作成しています。 このライブラリは、ISUCONのように高パフォーマンスが求められる場面での利用を想定し、次のような経緯で開発を始めました。 以前は、キャッシュ用のコード片をコピーして微調整しながら使っていましたが、最近のGoのアップデートにより、状況が大きく改善されました。Genericsが一般的に使えるようになり、型ごとにコードを修正する必要がなくなったほか、deferのパフォーマンス問題もほとんど解消されています。こうした背景から、よりシンプルかつ効率的なキャッシュライブラリが作れると考え、次の方針で開発に取り組みました。 Genericsを活用して型安全かつ柔軟なキャッシュ機能を提供 標準ライブラリのみを使用して依存関係を最小限に 実際の利用を想定したシンプルで効率的な実装 使い方は以下で紹介しています。 この記事では日本語で簡単に使い

                                                              ISUCON向けにGoの便利キャッシュライブラリを作りました
                                                            • React系フレームワーク、何を使うべきか2024年秋 - Qiita

                                                              Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 数年前までは Next.js 一強だった React 系フレームワークですが、最近では様々な対抗馬が生まれ混沌としてきています。 本記事では自分の思考整理も兼ねて、それぞれのフレームワークの特徴を洗い出したものです。フレームワークの選定に役立てて貰えたなら幸いです。 前提事項 ここにある全てのフレームワークについて筆者が精通している訳ではありません 間違っていたら優しく指摘してください React 系フレームワークには React / Preact の他、タイトル詐欺で怒られそうだなと思いつつ React 風の JSX が書けるフレーム

                                                                React系フレームワーク、何を使うべきか2024年秋 - Qiita
                                                              • Code Generation in Rust vs C++26

                                                                One of the things I like to do is compare how different languages solve the same problem — especially when they end up having very different approaches. It’s always educational. In this case, a bunch of us have been working hard on trying to get reflection — a really transformative language feature — into C++26. Fundamentally, reflection itself can be divided into two pieces: Introspection — the a

                                                                • Tracingを用いたRustのロギング理解の図とメモ

                                                                  Rustでそれなりにちゃんとしたロギングをしようと思いtracingを調べた結果の理解図やサンプルコード等を備忘のため残しておきます。ただバージョンが1未満なので実装は色々変更されるかもしれません。[tracing 0.1.40, tracing-subscriber 0.3.18] 私の理解が解説のように書かれていますが、便利ツールとして使用するだけであればこの認識で問題なさそう、というような内容のため厳密性はありません。Quick startのコードがdocs.rsに載ってなかったり、必須コンポーネントのSubscriberが別クレートになってたり、色々な方法が提供されており逆に混乱したりでそれなりの理解にすらなかなか時間がかかりました。 概要 前提 use tracing::{event, span, Level}; fn main() { tracing_subscriber::f

                                                                    Tracingを用いたRustのロギング理解の図とメモ
                                                                  • Goの並行処理入門 - Goroutine基礎編 - Yappli Tech Blog

                                                                    はじめに こんにちは。昨年の11月にYappliへ入社したしがないサーバーサイドエンジニアの佐野(@Kiyo_Karl2)です。 自分はYappliに入社するまでGo言語を利用した経験が無く、言語仕様についての理解がまだ浅いと感じる部分があるなと思っています。 そのため、今回はGo言語の最大の特徴でもあるGoroutineについてまとめてみました。 本記事は、4本の連載記事の1本目となります。 Goの並行処理入門-Goroutine基礎編 ←今ここ Goの並行処理入門-syncパッケージ編 Goの並行処理入門-channel編 Goの並行処理入門-select編 対象読者 Go言語の基礎はわかっているが、Goroutineについてはあまり理解していない メモリ、プロセス、スレッド、並行処理、並列処理といったワードについて概要とその違いを理解している 連載記事を通して取り扱わないこと 本連載

                                                                      Goの並行処理入門 - Goroutine基礎編 - Yappli Tech Blog
                                                                    • The First HTML LSP That Reports Syntax Errors

                                                                      The story of how I gained two world-firsts, somehow. This might sound hard to believe but, as far as I know, I published the first ever Language Server for HTML that reports syntax errors, and then I also gained a second world-first after that. VSCode extension (OpenVSX) (or search “SuperHTML” in VSCode directly)Source code and prebuilt binariesSetup instructions for other editors.Note that, while

                                                                        The First HTML LSP That Reports Syntax Errors
                                                                      • OpenTelemetryで環境ごとにObservability Backend(Jaeger、Datadog)を切り替えてエンジョイしてみたよ - Timee Product Team Blog

                                                                        こんにちは! タイミーでPlatform Engineerをしている @MoneyForest です。 こちらは Timee Product Advent Calendar 2024 の10日目の記事です。 2024年8月に入社して、幸いにもチームメンバーにも恵まれて楽しく働いています。 個人的にキャッチアップがあまりできていなかった OpenTelemetry を題材にして実装をしてみたので、ここから得られた気づきや知見を共有したいと思います。 はじめに アプリケーションの可観測性(Observability)を担保する上で、APM(Application Performance Monitoring)は重要です。 現在、JaegerやPrometheusのような非商用のものから、DatadogやNew RelicやSplunkなど様々なAPMを利用できるツールが存在します。(本記事では

                                                                          OpenTelemetryで環境ごとにObservability Backend(Jaeger、Datadog)を切り替えてエンジョイしてみたよ - Timee Product Team Blog
                                                                        • runnに逐次的に処理を進めるattachモードが追加されたので試してみた | DevelopersIO

                                                                          yamlで書いたシナリオをそのまま実行できるシナリオテストツールrunnにブレークポイントを貼ったりステップ実行ができるattachモードが追加されたので試してみました @katzchum runnに --attach オプション追加しましたhttps://t.co/h3G3PiXPys いわゆるデバッグオプションです。 コマンド体系は gdb を参考にしています。 --verboseと合わせて使ってみてくださいー#runn開発者会議 — k1LoW (@k1LoW) February 28, 2024 というわけで早速試してみましょう! 実行サンプル 前回の yamlでテストシナリオを書いてそのまま実行までできるAPIテストツールの新星 “runn” を試してみた のサンプルをそのまま使います。 desc: アクセストークンを発行し、テナントを登録する runners: req: htt

                                                                            runnに逐次的に処理を進めるattachモードが追加されたので試してみた | DevelopersIO
                                                                          • Go 1.22 の Vet 変更点について - ANDPAD Tech Blog

                                                                            こんにちは、バックエンドエンジニアをしています武山 (bushiyama) です。 ANDPADボードという稼働管理アプリのバックエンドを担当しています。 andpad.jp これはなに Go 1.22 リリースパーティにて登壇発表した内容を、実例コードを添えてあらためて起稿したものです。 当日の資料は別途こちらを参照ください。 speakerdeck.com 発表したこと Go 1.22 のお祝いということでリリースノートのTool関連から、Vet周りの更新内容について発表してきました。 おさらい まずおさらいからということで、Vetとはなにか。 pkg.go.dev 上記ドキュメント Overview にある通り、以下のような意訳となります。 Go のソースコードをコードを検査し、不審な構造を報告します。 すべてのレポートが真の問題であることを保証するものではありませんが、コンパイラー

                                                                              Go 1.22 の Vet 変更点について - ANDPAD Tech Blog
                                                                            • 本番環境でデフォルトの HTTP Client を使ってはいけない理由について

                                                                              はじめに こんにちは。Belong でエンジニアをしている Mohiro です。 今回はタイトルの通り、Go では本番環境でデフォルトの HTTP Client を使ってはいけない理由についてまとめました。 以下書籍の中で取り上げられた内容の一つで、私自身がこの間違いを犯してしまっていたで戒めとして本ブログを書きました。 Go 言語 100Tips ありがちなミスを把握し、実装を最適化する デフォルトの HTTP Client を使ってはいけない理由 理由 1:タイムアウトが設定されない HTTP Client はデフォルトではタイムアウトを設定しません。 以下のコードからデフォルトクライアントがサーバーの応答を待ち続ける挙動が確認できます。 package main import ( "fmt" "net/http" "net/http/httptest" "time" ) func m

                                                                                本番環境でデフォルトの HTTP Client を使ってはいけない理由について
                                                                              • Range Over Function Types - The Go Programming Language

                                                                                The Go Blog Range Over Function Types Ian Lance Taylor 20 August 2024 Introduction This is the blog post version of my talk at GopherCon 2024. Range over function types is a new language feature in the Go 1.23 release. This blog post will explain why we are adding this new feature, what exactly it is, and how to use it. Why? Since Go 1.18 we’ve had the ability to write new generic container types

                                                                                  Range Over Function Types - The Go Programming Language
                                                                                • Goのtext/templateを用いてDynamoDBやOpenSearch向けの大量のJSONデータを作成した話 | フューチャー技術ブログ

                                                                                  はじめにこんにちは、TIG所属の大江です。 性能テストを実施する際、テスト用の大量データを投入する場合があります。本番相当のデータを入れるために、数千万ないしは数億のデータが必要になる場合もあり、データ生成には一工夫を要です。 本記事では、大量データをDynamoDB/OpenSearch Serviceに投入した際、直面した壁と対応を紹介します。 投入方針様々な方法を調査した結果、以下の方法で投入するのが、効率が良いという結論に至りました。 DynamoDB: S3インポート機能 OpenSearch: Bulk API これらの方法で投入するには、入力データをJSONファイル形式である必要があります。 また、対象システムでは数種のユニークIDを各項目に割り振る必要がありました。 そこで、Goのtext/templateパッケージを使いることにしました。 以下、生成スクリプトでデータ生成

                                                                                    Goのtext/templateを用いてDynamoDBやOpenSearch向けの大量のJSONデータを作成した話 | フューチャー技術ブログ