タグ

golangに関するkenzy_nのブックマーク (40)

  • Go 1.21 is released! - The Go Programming Language

    Eli Bendersky, on behalf of the Go team 8 August 2023 Today the Go team is thrilled to release Go 1.21, which you can get by visiting the download page. Go 1.21 is packed with new features and improvements. Here are some of the notable changes; for the full list, refer to the release notes. Tool improvements The Profile Guided Optimization (PGO) feature we announced for preview in 1.20 is now gene

    Go 1.21 is released! - The Go Programming Language
    kenzy_n
    kenzy_n 2023/08/09
    Goアップデート
  • VS Codeでコードがさらに見やすくなる! ネストされたブロックを強調表示するVS Codeの機能拡張「Blockman」

    HTML, CSS, JavaScript, PHPなどさまざまな言語に対応、コードのネストされたブロックを枠で囲って強調表示するVS Codeの機能拡張を紹介します。 さっそくインストールして使用してみましたが、これは見やすくなりますね! 枠のボーダーや背景、ネストの深さを自由に変更もできるので、自分が見やすいようにカスタマイズできます。 Blockman -GitHub Blockmanの特徴 Blockmanのインストール Blockmanの使い方 Blockmanの特徴 Blockmanは、コードのネストされたブロックを強調表示するためのVS Code拡張機能です。 サポートしている言語は、JavaScript, JSX, TypeScript, TSX, C, C#, C++, Java, Ruby, PHP, R, Go (Golang), Dart, Rust, Swift,

    VS Codeでコードがさらに見やすくなる! ネストされたブロックを強調表示するVS Codeの機能拡張「Blockman」
  • golangで便利ツール作ろうと思ったらos/execでハマった話 - Qiita

    はじめに PoCの初期段階などで、いくつかのシステムを組み合わせて動作させるような場面では、 リポジトリが分散し、開発者ごとに違う言語で小規模なシステムを構築していることがあります。 そんな中で、動作確認をしたり、不具合を再現させたりする際、以下のような手作業が発生していました。 1. システムAを実行してCSVを吐く 2. CSVをシステムB直下にコピーする 3. システムBを実行して結果を得る プログラマーの三大美徳の怠惰担当の私は、手動で何かをすることが嫌いなので、自動化するツールを作成していきます。 シェルスクリプトで書いても良いのですが、実行するデータパターンが複雑だったり、分岐したりすると面倒なので、私はgolangで作成することが多いです。 この記事では、そんな中でハマった出来事と、回避方法をご紹介します。 根解決していないものが多いので要注意&コメントお待ちしています。

    golangで便利ツール作ろうと思ったらos/execでハマった話 - Qiita
    kenzy_n
    kenzy_n 2023/01/17
    golongもってシェルスクリプトを成す
  • Goバイナリの脆弱性検知 - knqyf263's blog

    Trivyのv0.17.0をリリースしました。 github.com 長い道のりでしたが、ようやくこれでGoバイナリの脆弱性検知に対応できました。夜中0時ぐらいからリリース作業を初めて気付いたら朝5時でした。 概要 Go言語で書かれたプログラムをビルドすると依存しているモジュールがバイナリに含まれます。現代のソフトウェア開発において利用しているOSSのライブラリが0ということはまれなので、何かしらのOSSライブラリが作成されたバイナリに同梱されます。これらのOSSの古いバージョンには既知の脆弱性が含まれる可能性があります。これを手動で調べて追うのは手間なので最近では脆弱性スキャナを用いて検知するのが普通です。自分が開発したTrivyというOSSの脆弱性スキャナではコンテナイメージやファイルシステム上のGoバイナリに含まれるモジュールを特定し脆弱性を検知します。 Goのバイナリからどうやって

    Goバイナリの脆弱性検知 - knqyf263's blog
  • Big Sky :: Go に go:embed が入った。

    Go 言語はシングルバイナリをウリにしたプログラミング言語です。バイナリファイルを1つポンと scp で転送すれば動くのでとても便利です。シングルバイナリとなると当然、画像や HTML といったアセットをバイナリに埋め込みたくなります。 Go 言語ではこれまで go-assets や go-bindata、statik というツールを使う事でファイルのコンテンツをバイナリ化し、変数からアクセスする様にしてきました。 しかしそれらには色々な流儀や OS 間でのまばらな動作など、ユーザにとって納得のいかない物がありました。昨日、Go 言語ではオフィシャルとしてこのファイル埋め込みをサポートする様になりました。Go 1.16 から使える様になります。 cmd/go: add //go:embed support · golang/go@25d28ec · GitHub +3 −3 src/cmd

    Big Sky :: Go に go:embed が入った。
  • Go初心者が気を付けること

    Go初心者がやってしまいがちなやらない方がいいことを書き出してみました。 情報検索や環境構築 golang.jpを見に行ってしまう Golang(ごーらんぐ)と呼んでしまう(by hogedigo) depが最新推奨のパッケージマネージャだと勘違いする(Go標準の「go mod」を使おう) 「GO???」環境変数を理解せずに設定しまくる(わからない場合は一切設定しないのが正しい) しょっぱなからgvm,gobrew,goenvなどのマルチバージョンのマネージャを入れようとしてエディタ連携環境構築に失敗する (複数バージョンのGoの運用は既に標準のGoだけでできるようになっている) エディタにgoimportsやgolintを設定し忘れる OSのパッケージマネージャまかせで古いGoやgccgoをインストールしてしまう エラーハンドリング周り err変数名のバリエーションを増やしすぎる(ほとん

  • 【第2回】Go言語(Golang)入門~Firestore導入編~ – 株式会社ライトコード

    Firestoreを利用してみるこれから何を書いていくか…? 迷ったのでTwitterでアンケートを取ってみました! 今日入門編書いたけど、次のGolangの記事どんなのがいいかな — 笹のり (@sasa_nss_app) September 5, 2019 結果、「Fire Storeを使ったNoSQLの何か」が1位に! 今回は、Firestoreでなにかやってみようかと思います! Firestoreとは? FirebaseやGCPが提供しているサービスの1つで、いわゆるNoSQLのクラウドデータベースです モバイルアプリケーションなどでは、各ローカルにデータベースを持ったりすることも多いですが、API側でデータを保存することも多いはずです。 来ならば自分たちでデータベースを用意し、APIとしてのエンドポイントを用意しなければいけません。 しかし、Firestoreを利用するとGUI

    【第2回】Go言語(Golang)入門~Firestore導入編~ – 株式会社ライトコード
  • jqのGo実装 gojq を作りました! ― スタックマシン型インタープリタによるイテレータセマンティクスの実装 - プログラムモグモグ

    jqはとても便利なコマンドです。 JSONを返すAPIを実装するときや、SaaSのAPIから特定の情報を抜き出してシェル変数に代入するときなど、web開発や運用には欠かせないツールとなっています。 しかし、私にとってjqのクエリを一発で書くのは容易ではなく、思い通りの出力が得られないことがよくありました。 難しいエラーメッセージに悩まされて、jqで書くのを諦めて別の言語で書き直すこともありました。 jqの十八番と思える場面で使いこなせないのは、なかなか悔しいものがあります。 ツールを使うのが難しいなら、同じものを作ってしまえばよいのです。 jqの全ての機能を実装する jqを言語としてきちんと書けるようになる jqを完全に理解する jqの全ての機能を自分で実装してしまえば、jqがどういうものか、クエリがどのように処理されるのか、詳しくなれるはずです。 jqを得意な言語と言えるようになって、ク

    jqのGo実装 gojq を作りました! ― スタックマシン型インタープリタによるイテレータセマンティクスの実装 - プログラムモグモグ
  • 楽ができるGolangのライブラリ達 - Qiita

    ライブラリ探すなら基awesome go見とけばいいけど、いろいろ楽するためという観点で、思い出した順に適当に追記していく。気が向いたらサンプルも書く gojson https://github.com/ChimeraCoder/gojson jsonのデータを渡すとそれに対応するstructを生成してくれる。JSON APIを利用するときに楽ができる。既存APIのリプレイスをGoでやるときとかも良い。 goquery https://github.com/PuerkitoBio/goquery JQueryっぽくhtmlをパースしたり検索したりして楽ができる。自前でhtmlのパースなんか書いてられない。 goreq https://github.com/franela/goreq net/httpパッケージで、httpリクエストを飛ばすのは結構面倒だったりいろんな書き方があったりしてヘ

    楽ができるGolangのライブラリ達 - Qiita
  • Go言語のエラーハンドリングとログローテーション | RE:ENGINES

    はじめに こんにちは、今回はGo言語でのエラーハンドリングとログ関連についての記事となります。 例外のないGo言語でどのようにエラーを伝搬させていくのかについて一つの方法を紹介させていただき、その後、そのエラーをファイルに出力する方法を紹介したいと思います。 なお、開発環境の構築がまだの方は、ぜひこちらで環境構築をしてからお読みいただければと思います。 エラーハンドリングについてですが、まずはGo言語でerrorとは一体何ものなのかについて触れたいと思います。その後、pkg/errorsパッケージでerrorをwrapをする方法を記載し、次の節でそれを活用した独自のerrorsパッケージを作成したいと思います。 error インターフェース Go言語では例外の概念がないため(Go2では例外が組み込まれるかもしれませんが)、ファイルの処理などで下記のようにerrorを返却するコードをよく目に

    Go言語のエラーハンドリングとログローテーション | RE:ENGINES
  • Golangで軽量なSSHサーバを実装する - Fire Engine

    今回は、Golanggolang.org/x/crypto/sshパッケージを使って、SSHサーバを構築してみました。 かなりミニマムな実装ですが、リモートからSSH接続して、対話的にコマンドが実行できるところまで実装しました。 コード github.com package main import ( "golang.org/x/crypto/ssh" "log" "net" "io/ioutil" "fmt" "os/exec" "github.com/kr/pty" "sync" "io" ) func main() { serverConfig := &ssh.ServerConfig{ NoClientAuth: true, } privateKeyBytes, err := ioutil.ReadFile("id_rsa") if err != nil { log.Fatal(

    Golangで軽量なSSHサーバを実装する - Fire Engine
  • AWS Batch + Golangでサーバレスなバッチ処理をしてみる | DevelopersIO

    はじめに サーバレスなバッチ処理を行うことを考えると候補としてAWS Lambdaが上がってくるかと思います。ですがLambdaには執筆時現在、5分でタイムアウトするという制限があります。 そこで今回、AWS Batchを使用してタイムアウトを気にせずに行うバッチ処理を実装してみました。 実装した処理について Golangでバッチ処理を実装して実行ファイル(バイナリファイル)を作成します。作成した実行ファイルをAWS Batchにて起動し、(タイムアウトを気にしないという意味で)6分間実行します。バッチの処理内容としてはcsvファイルをS3に出力するだけの簡易的なものです。 実装と実行の手順 実装の前に AWS Batchの準備や実行方法が分からない場合は、弊社の以下の記事を参考に一連の流れを把握しておくことをお勧めします。 AWS Batchでシェルスクリプトを実行する典型的パターンのご

    AWS Batch + Golangでサーバレスなバッチ処理をしてみる | DevelopersIO
  • RTMP 1.0 準拠のサーバーをGo言語で実装する | CyberAgent Developers Blog

    株式会社AbemaTV 配信チームの芝田 (@c-bata) です。 AbemaTVの配信システムに関する技術資料は、AbemaTV Developer Conferenceなどを通して公開してきました。特にHLSやMPEG-DASHといったエンドユーザーへの映像配信に利用しているプロトコルは既に弊社エンジニアによる解説記事が存在するため、記事では生放送現場とトランスコーダー(Wowza)間の映像伝送に利用しているRTMPと呼ばれるプロトコルについて解説していきます。 また今回はGo言語を用いて実際にRTMP 1.0プロトコルに準拠するサーバープログラムを実装してみました。ソースコードはGithubで公開しているので、記事の解説と合わせてご覧ください。 Server implementation of RTMP 1.0 protocol in Go. https://github.co

    RTMP 1.0 準拠のサーバーをGo言語で実装する | CyberAgent Developers Blog
    kenzy_n
    kenzy_n 2018/01/30
    久しぶりに耳にする
  • Goの初心者が最初にはまりそうというか気になりそうなポイント - Qiita

    こんばんわ、ameshoです。 この記事は、Go4 Advent Calendar 2017の18日目です。 私は2017/3/17日から毎週水曜日にプログラミング言語Go読書会をLancersを会場にして開いています。冒頭から全員で範囲を決めて読み進めていく方式です。途中業務が忙しくて若干出来ない時期がありましたが幸いに再開でき、現在、9章まで来ています。 参加しているのは、ほとんどGo触ったことが無い人も割といまして、私自身も真面目に使うのは今年は行ってからぐらいなので、勉強会で出た内容と、みんなこんなところを気にしたり、はまったりするんだなと言うのをまとめてみました。 Unicodeで文字とされている物がすべて名前として有効 プログラム始めたばかりだと気づかない人多いんですが、最近の言語はUnicodeで文字とされているものが名前として有効だったりします。Goもそれに漏れず対応して

    Goの初心者が最初にはまりそうというか気になりそうなポイント - Qiita
  • そこそこの規模のGo言語開発に使っているパッケージレイアウトの例 - Qiita

    Lenetという生活サービスのエンジニアをやってるカイ(@kai-zoa)です。 ちなみにディープラーニングの方のLeNetとはなんの関係もございません。読み方も違います。 で、Lenetの一部のサービスでは、3年程前からAPIGoで実装していて、ディレクトリの掘り方からパッケージ間の依存に関するルールについて長いこと苦慮してきたのでまとめてみます。(今回は触りまで…) コメントでも直接でも指摘があると大変ありがたいです。 コンセプト 下記のようなポイントを抑えていってるつもりです。 ※DDDでよく言ううように事業の特定領域や業務に関するレイヤーをここではドメイン層と呼びます ドメイン層のロジックと外部との入出力(インフラ層)まわりのロジックは明確に分けたい 特定のフレームワークを前提にしない ルールに従えば循環インポートの迷路に迷い込まない ヘキサゴナルアーキテクチャとかクリーンアーキ

    そこそこの規模のGo言語開発に使っているパッケージレイアウトの例 - Qiita
  • PHP, Python, Golang を NGINX Unit で動かしてみた - /var/log/study

    NGINX Unit ホームページは以下 www.nginx.com もしくはミラーだけどGitHubが以下となる github.com RestAPIやJSONで設定できる、phpPHP-FPMpythonのwsgiサーバーなど言語ごとのアプリケーション・サーバーを集約したアプリケーションサーバーという感じ。なのでNginxの後ろで動くサーバーという認識で大丈夫なのかな? まだversionは0.1なので、今後どんどん成長していくはず。 現状は以下に対応しているとのこと Python 2.6, 2.7, 3 PHP 5, 7 Go 1.6 or later ざっくりとした所感 プロダクトに関して 言語ごとのミドルウェア運用がNGINX Unitに集約されて嬉しい可能性がある Docker + NGINX Unit も嬉しいが、NGINX Unitだけでも十分に嬉しいかも ベンチマーク

    PHP, Python, Golang を NGINX Unit で動かしてみた - /var/log/study
  • ぐるなびにおけるGo言語の活用 - ぐるなびをちょっと良くするエンジニアブログ

    こんにちは。 ビジネスソリューション開発グループ チャネルソリューションチームの長谷川と申します。 弊社では一部の処理や業務効率化にGo言語を使用していますので、今回はぐるなびにおけるGo言語導入の経緯や活用例をお話しします。 ビジネスソリューション開発グループについて Go言語の話をはじめる前に、私の所属するビジネスソリューション開発グループについて簡単に説明させていただきます。 ビジネスソリューション開発グループのミッションは、ぐるなびのビッグデータの利活用。グループは分析を主業務とするデータソリューションチームと、分析されたデータを使い実際にサービスを開発・運用するチャネルソリューションチームの2チームで構成されます。 データソリューションチームは分析やバッチ処理の比重が高いためPython、R、Perlなどが使われ、チャネルソリューションチームではPHPが最も多く使われています。

    ぐるなびにおけるGo言語の活用 - ぐるなびをちょっと良くするエンジニアブログ
    kenzy_n
    kenzy_n 2017/06/06
    確実にパフォーマンス改善に役立っている
  • kazeburo/choconと、それを支えるnet/httpの実装について

    【資料公開します】AWS Dev Day Tokyo 2017 にて登壇しました/choconの簡単なご紹介 - Mercari Engineering Blog こんにちは。SREの @ kazeburo です。2017年5月31日から6月2日にAWS Summit Tokyo 2017と同時に開催された「AWS Dev Day Tokyo 2017」に登壇しました。 登壇する機会をいただき、ま… 先日、というか昨日、この資料が流れてきまして、Private Networkの外部との通信を効率良く行うためのミドルウェア、choconというproxyサーバーが紹介されていました。SSL, HTTP/2を加味した上での超シンプルで高速なforward proxyサーバー実装という印象です。 使い方やAPIの叩き方は上記のリンクを参考にしていただくとして、やたらマイクロな実装でなぜこうも高速に

    kazeburo/choconと、それを支えるnet/httpの実装について
    kenzy_n
    kenzy_n 2017/06/06
    proxyサーバーchoconについて
  • GolangでSlack Interactive Messageを使ったBotを書く - Mercari Engineering Blog

    SREの@deeeet です。 MercariではSlack Botを使い様々な業務の自動化を行っています。例えばメインのAPIのReleaseはBotによる自動化がされており、JPとUSとUKの3拠点で1日に10回以上のReleaseをSlack上で実現しています(これ以外にも多くの事例があります)。 これまでのSlack Botは基的には文字ベースでのやり取りが普通でした(グラフなどの画像を返答として利用することはあります)が、SlackはよりInteractiveなやりとりを実現できるInteractive Messageという仕組みも提供しています。これによりButtonによる決定やMenuによる選択といったアクションをユーザにとらせることができるようになります。 Buttonの仕組み自体は古くから提供されていましたが他のTeamへの配布が前提でありOAuthの仕組みを準備する必

    GolangでSlack Interactive Messageを使ったBotを書く - Mercari Engineering Blog
    kenzy_n
    kenzy_n 2017/05/23
    GolangでSlack Interactive Messageを活用
  • GitHub - owenthereal/godzilla: Godzilla is a ES2015 to Go source code transpiler and runtime

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - owenthereal/godzilla: Godzilla is a ES2015 to Go source code transpiler and runtime
    kenzy_n
    kenzy_n 2017/05/12
    Godzilla