タグ

golangとtechに関するslay-tのブックマーク (16)

  • Goのロギングライブラリ 2021年冬 - moriyoshiの日記

    この記事はPySpa Advent Calendar 2021の14日目のエントリーとして書かれました。昨日のエントリーは冷凍品でウキウキ引きこもり生活 でした。ちなみに私も70ℓの冷凍庫を購入しましたが当にライフチェンジングでした。 総論: なぜログが必要か 可観測性 たとえ目的は自明でも、その動作までが自明なアプリケーションというものはほぼ存在しません。現実の世界のアプリケーションというものは、動作パラメータだったり実行環境だったり、起動時点でのさまざまな要因によって挙動を変えるものだからです。そして、そうしたアプリケーションにはライフサイクルというものがあります。ここでいうライフサイクルは、アプリケーションの処理が実行されるにつれ、アプリケーションの内外との情報のやりとりで生じる大局的な状態の変化のことです。アプリケーションが並行処理を行うようなものであれば、個々の並行処理の単位

    Goのロギングライブラリ 2021年冬 - moriyoshiの日記
  • 1ms 以下のリアルタイムオブジェクト検出/画像処理を目指して Goの配信サーバサイドで通知ぼかしを実装してみたこと - Mirrativ Tech Blog

    こんにちは ハタ です。 今回は以前iOSのクライアントサイドで実装していた通知ぼかし機能をサーバサイド(配信サーバ)上に再実装した事を書きたいなと思います 今回はかなり内容を絞りに絞ったのですが、長くなってしまいました、、 目次機能があったのでつけてみました、読み飛ばして読みやすくなった(?)かもしれません 目次 目次 通知ぼかし機能とは サーバサイド通知ぼかし プロトタイプの実装 苦労の始まり その1 画像処理速度 苦労の始まり その2 データ量 さらなる計算量の削減を求めて さらなる最適化へ Halide の世界へ 簡単な halide の紹介 苦労の始まり その3 いざ リリース リリースその後 We are hiring! 通知ぼかし機能とは 通知ぼかし機能は、ミラティブ上での配信中に写り込んでしまったiOSの通知ダイアログをダイアログの中身を見えないようにぼかし処理をしてあげる

    1ms 以下のリアルタイムオブジェクト検出/画像処理を目指して Goの配信サーバサイドで通知ぼかしを実装してみたこと - Mirrativ Tech Blog
  • Writing unit tests in Golang Part 1: Introducing Testify

    Unit testing is a way of writing tests for the individual components (aka, the smallest part) of a program. The purpose of it is to validate that any piece of code is always working as expected. Moreover, unit testing has a lot of advantages such as improving the quality of code, providing documentation, also the code can be tested individually and doesn’t require another module in order for it to

    Writing unit tests in Golang Part 1: Introducing Testify
  • Go1.16からのio/ioutilパッケージ | フューチャー技術ブログ

    こんにちは、TIGの辻です。Go 1.16連載の3記事目です。 Go1.16でアップデートがあった io/ioutil パッケージが "deprecated" になる話題のまとめです。 サマリ Go1.16から io/ioutil パッケージの機能が os と io パッケージに移行した これから新しく実装するコードは io や os パッケージの新しい関数を使うことが推奨される io/ioutil パッケージが "deprecated" になるが "deprecated" といっても将来壊れる、ということではない 既存のコードは動作し続ける go fix コマンドは未対応 内容Go1.16から io/ioutil パッケージに含まれる関数が "deprecated" になります。関連するプロポーザルは #40025 と #42026 です。Package names で良くないパッケージ

    Go1.16からのio/ioutilパッケージ | フューチャー技術ブログ
  • Go 1.16連載が始まります | フューチャー技術ブログ

    VSCodeも1.53でInsiderでない安定板もM1対応になりますし、GoLandもネイティブ版がリリースされました。Rosetta2でも快適だった環境はますます快適になっています。 それ以外だとlinux/riscv64対応が改良されていて、個人的には気になっています。 ランタイムの変化runtime/metricsパッケージが導入されました。runtimeとかdebugとかさまざまな場所に散っていったメトリックス収集機能が集約されました。今サポートしているのはGC関連のメトリックスと、メモリ関連のメトリックス、goroutine数ですね。 あとは、GODEBUG環境変数にinittrace=1を設定すると、各パッケージのinitで消費している時間やメモリの情報が標準出力に表示されます。Google App EngineやらCloud RunやらCloud FunctionsやらAW

    Go 1.16連載が始まります | フューチャー技術ブログ
  • Go でモブログシステム作った

    この記事は Go Advent Calendar 2020 24日目の記事です。 はじめに 皆さんは「モブログ」ってご存じでしょうか。 モブログとは、携帯電話などの携帯通信端末からインターネットに接続して閲覧・投稿ができるブログ(ウェブログ)のことである。 携帯電話などを利用して書き留められた短い文章や、あるいはカメラ機能で撮影された写真などが記事の主な内容となる。常に携帯するものなので、ふと思いついた所感を臨場感が損なわれないうちに記すこと、あるいは街角で見かけた面白い光景や偶然出会った有名人などを逃さず撮影することなどが可能となる。1日のうち特定の時間にパソコンの前に構えて書かれる通常のブログよりも一層、リアルタイム性が色濃く、独特の臨場感や軽快さがある。 ちなみに、モブログはモバイル(mobile)とブログ(blog)が組み合わされた造語である。和製英語ではないので、英語圏でもmob

    Go でモブログシステム作った
  • go-cmpを使う理由とTipsの紹介 - 技術メモ

    はじめに これは Go 4 Advent Calendar 2020 8日目の記事です。 Goのテストにおいて、構造体を含めて型の値を比較したいという場合は往々にしてあります。ロジックの結果はなんらかの値として作用することが多いですから、型の値を比較したい、というのは自然です。私は型の値が等価であるかどうか判定するために、go-cmp というライブラリを使うことが多いです。 github.com しかしGoにおける等価性の仕様は決まっていますし、標準ライブラリの reflect パッケージにも DeepEqual という deeply equal, かどうか判定するメソッドがあります。そこで記事ではなぜわざわざ go-cmp を使っているのかという理由と、go-cmp を使ったときにどのようにして使うか?という go-cmp の使う上でよく使う以下のTipsを提供したいと思います。 Ti

    go-cmpを使う理由とTipsの紹介 - 技術メモ
  • マネーフォワードCTOが考えていること(2020年9月) - Money Forward Developers Blog

    こんにちは。 マネーフォワード CTOの中出(なかで)です。 CTOの私が、普段「なにを感じて、どんなことを考えているか」について、四半期に一回社内へ共有している内容を一部編集し、エンジニアブログに公開したいと思います。 前回はこちら:マネーフォワードCTOが考えていること(2020年6月) 目次 技術ポートフォリオの配分を変える ベトナム拠点とグローバルエンジニアについて コロナ禍の新入社員への影響について 技術ポートフォリオの配分を変える マネーフォワードは創業期からこれまで、Railsに集中する形で技術のポートフォリオを構成してきました。しかし私たちが中長期的に価値あるサービスを社会に提供し続けるために、技術戦略として、他の技術の割合を意識的に高めていく必要があると感じています。 これまでは、統一した技術で開発することのメリットが勝っていました。しかし多くのプロダクトがグロースしたた

    マネーフォワードCTOが考えていること(2020年9月) - Money Forward Developers Blog
  • GoとSuffixArray | フューチャー技術ブログ

    フューチャー夏休みの自由研究連載の5回目です。 はじめにTIG の辻です。 Go は標準ライブラリが充実しているとよく言われます。標準ライブラリだけで、HTTP サーバを作れたり、暗号化処理や、JSON や CSV といったデータ形式を扱うことができます。go list std | grep -v vendor | wc -l としてパッケージ数を見てみると、約 200 ものパッケージが存在することがわかります。記事では、その多くの Go の標準ライブラリの中でも、個人的に面白いなと思ったライブラリを紹介したいと思います。suffixarray パッケージです。 suffixarray パッケージは Suffix Array を扱うライブラリです。suffixarray パッケージの魅力を感じるには、まず Suffix Array とは何か? を知る必要があるでしょう。 Suffix A

    GoとSuffixArray | フューチャー技術ブログ
  • bmf-tech.com - GolangでgoblinというURLルーターを自作した

    概要 GolangでURLルーターを自作したので実装するまでの過程をメモしておく。 準備 URLルーターを実装する際に行った下準備をまとめる。 データ構造とアルゴリズム URLをどのようにマッチングさせるか、というロジックについて検討する。 多くのライブラリでは、データ構造として木構造がよく扱われているので、どんな種類の木構造を採用するかを考えてみた。 文字列探索に特化した木の中で、時間的・メモリ的計算量がよりベストなものを選定しようとすると、基数木というのが良さそうに見えるので最初はそれを採用しようとしていたのだが、実装が難し過ぎて挫折をした。 もう少し身近でシンプルなものをということでトライ木を採用することにした。 net/httpのコードリーディング net/httpが持つマルチプレクサの拡張として実装を行うため、内部の仕組みについてある程度理解しておく必要がある。 GolangのH

    bmf-tech.com - GolangでgoblinというURLルーターを自作した
  • Go言語におけるOpenAPIを使ったレスポンス検証 - ZOZO TECH BLOG

    こんにちは、ECプラットフォーム部の権守です。普段はZOZOTOWNのリプレイスに関わるID基盤とAPI Gatewayの開発を行っています。 ID基盤やAPI Gatewayの中身についてもいずれ紹介したいと思いますが、記事では、ID基盤のAPI開発で取り入れているGo言語におけるOpenAPIを使ったレスポンス検証について紹介します。 OpenAPIを使ったレスポンス検証 OpenAPI Specification(以下、OpenAPIと表記します)はREST APIのためのプログラミング言語に依存しない標準的なインタフェース記述言語です。OpenAPIについては以前にこちらの記事でも取り上げましたので、合わせて読んでいただければと思います。 弊社では、新規で開発するAPIについてはOpenAPIを用いて仕様書を作成しており、ID基盤もそうして社内にAPI仕様書を提供しています。 O

    Go言語におけるOpenAPIを使ったレスポンス検証 - ZOZO TECH BLOG
  • gRPC ServerのエラーをInterceptorでgRPC Error Statusにマッピング(Go言語版)|Dentsu Digital Tech Blog

    電通デジタルでバックエンドの開発をしている齋藤です。弊社では社内/グループ会社向けデジタル広告運用実績の管理システムバックエンド APIgRPC を利用しています。 記事では gRPC サーバ内で発生したエラーを gRPC Server Interceptor で gRPC Error Status にマッピングする試作をご紹介します。 ユースケースgRPC を使った API サーバでエラーが発生した場合、エラーハンドリングとロギングをした後に gRPC クライエントへのエラーを伝えます。ここで、サーバのエラーを gRPC クライアントに伝えるエラーに変換する処理が発生します。クライアントに伝えるエラーメッセージはサーバで発生したことそのままではなく、クライアントに必要な情報にする必要があります。この処理は全ての gRPC のメソッド呼び出しで実施します。そこで、処理を gRPC

    gRPC ServerのエラーをInterceptorでgRPC Error Statusにマッピング(Go言語版)|Dentsu Digital Tech Blog
  • スキーマファースト開発のためのOpenAPI(Swagger)設計規約 | フューチャー技術ブログ

    はじめまして。TIG DXユニット 1の亀井です。 はじめに みなさん、Swagger使ってますか? Swaggerや周辺ツールについては 某先輩の記事 にて丁寧に解説されていますので、 記事では実際にSwaggerのスキーマ定義を設計していく上で取り決めた規約について書いてみたいと思います。 前提私が在籍しているプロジェクトでは、REST APIgolangフロントエンドVue.js + TypeScript で構築しています。 短期間・高品質での構築を実現するためにSwaggerを設計ドキュメントとしてだけではなく、コード自動生成やモックサーバーに活用させることで徹底したスキーマファーストな開発を行ってきました。 というわけで、今回は下記のツールを利用することを前提として規約を作成しています。 go-swagger: Goアプリケーションのハンドラ、リクエスト/レスポンス

    スキーマファースト開発のためのOpenAPI(Swagger)設計規約 | フューチャー技術ブログ
  • Terraform のテストを Golang で書く! - READYFOR Tech Blog

    こんにちは。READYFOR 株式会社で SRE として働いている ジェダイ・パンくず🚀 と申します。 突然ですが、皆さんの現場ではインフラのテストの仕組みは導入済みですか?我々はまだ出来ていません(笑)。 READYFOR では IaaS として AWS を、IaC として Terraform を導入しているのですがコードのテスト・コードによってデプロイされた状態のテストを何かしらの仕組みを使って実践したいなぁと考え、今調査している最中です。 今回は Terraform のテストを書くツール Terratest について調べた内容を皆さんに共有したいと思っています。また AWS の状態をテストする仕組みとしてよく知られている Awspec との比較も行っていきたいと思っています。 必要になるモノ 事前に必要になるソフトウェアの一覧です。 Golang (requires version

    Terraform のテストを Golang で書く! - READYFOR Tech Blog
  • Githubでpecoのアカウントを融通してもらった件 : D-7 <altijd in beweging>

    tl;dr; githubで長い事使われてないアカウントはリリースしてもらえることがあるpecoのURLが変わりましたpecoの有効な使い方があったら、ぜひWikiでシェアしてくださいpecoが何か自分の予想を超えて使われ始めているので責任を逃れるために今後の事を考えてGithub Organizationにしようかなーと思って調べてたらpecoってユーザーがすでに存在してたのでがっかりしたのが昨日の朝。 Daisuke Maki@lestrratugh. taken. no activity either. disappointment haunts all my dreams.https://t.co/04HBzVjpzw #golang #peco 2014/06/19 08:56:45 でもこのアカウント全く使われてなかったんだよね。コミットもなければstarもwatchもない。そ

    Githubでpecoのアカウントを融通してもらった件 : D-7 <altijd in beweging>
  • Setting up Vim as your Go IDE

    gistfile1.md Setting up Vim as your Go IDE Intro I've been wanting to do a serious project in Go. One thing holding me back has been a my working environment. As a huge PyCharm user, I was hoping the Go IDE plugin for IntelliJ IDEA would fit my needs. However, it never felt quite right. After a previous experiment a few years ago using Vim, I knew how powerful it could be if I put in the time to m

    Setting up Vim as your Go IDE
  • 1