並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 225件

新着順 人気順

go言語の検索結果81 - 120 件 / 225件

  • VS CodeのGo言語テストコード生成ツールを使ってみたらめちゃくちゃ便利だった話とか - kdnakt blog

    年末年始はGoのテストコードを書いて過ごしている。 そんなことよりそろそろ2019年の抱負的なものを書かないと……とは思うものの、振り返り系記事ばかりで技術系記事がおろそかになってもあれなので、テストコードを書いていて学んだことをまとめておく。 [Go言語用VS Codeセットアップ手順] [テストコード・スケルトン自動生成] [関数の戻り値を比較する3つの方法] 等価演算子 (==, !=) で比較する Object.Equal() で比較する リフレクションを利用して reflect.DeepEqual() で比較する [まとめ] [Go言語用VS Codeセットアップ手順] 実行環境はMac 10.14.2 + VS Code 1.30.1。 VS Codeの左側のメニューの5番目の四角いアイコンが「Extensions」、拡張機能のメニュー。検索ウィンドウに「go」と入力するとMi

      VS CodeのGo言語テストコード生成ツールを使ってみたらめちゃくちゃ便利だった話とか - kdnakt blog
    • Goコンパイラをゼロから作ってセルフホスト達成するまで / How I wrote a self hosted Go compiler from scratch

      Go Conference Tokyo 2019 Autumnでの発表資料です。

        Goコンパイラをゼロから作ってセルフホスト達成するまで / How I wrote a self hosted Go compiler from scratch
      • Goコンパイラを自作して93日でセルフホストを達成した(2回目) · DQNEO日記

        Goコンパイラをゼロから書いてセルフホストを達成しました。(1年ぶり2回目) https://github.com/DQNEO/babygo (ちなみに 前回の話はこちら 「Goコンパイラをゼロから作って147日でセルフホストを達成した」 ) 主な特徴 全部手書き。標準ライブラリも自作。system call 呼び出しも自作。libc非依存。 コンパイルするとアセンブリを吐きます。これをビルドすると単一静的バイナリになります。 設計は、go/parser + chibicicc + α かかった期間 2020/3/29に開始、2020/7/28にセルフホスト達成。 コミットした日 (Author date)を数えたら93日でした。 平均1日2-3時間としてざっくり240 時間 ほど。 前回は500時間かかってるので、今回は半分の期間で達成できたことになります。 なんでまたやろうと思ったの?

        • テスト駆動開発でGO言語を学びましょう | テスト駆動開発でGO言語を学びましょう

          **テスト駆動開発(TDD)で基礎を身につけましょう。**GoはTDDを学習するのに適した言語です。なぜなら、学習するのが簡単な言語であり、テストが組み込まれているからです。

            テスト駆動開発でGO言語を学びましょう | テスト駆動開発でGO言語を学びましょう
          • Goの良さをまとめてみた

            よく知られる良さ ネイティブコード出力で実行効率が良い コードの可読性を重視している 開発でよく使うツールがバンドル クロスビルドが簡単にできる コンパイルが遅くない(LLライクにrunできる) 並行処理の抽象化を組み込み言語仕様にもつ メモリ安全である 上記の一部に解説を加えつつあまり言及されない良さを以下にまとめます。 依存解決が最小限で決定的 ここにも書きましたが、Goの依存解決は常に 最小限のダウンロード 最小の範囲でのみビルドを実行 だけが走ります。これを一度体験すると、従来のパッケージ依存管理が冗長で余計なものをビルドしすぎることに気づくでしょう。これらに相当の時間を奪われているのです。 また、Goモジュール機構によりそのバージョン選択は決定的に安定動作するバージョンに決められます。このことのメリットは数ヶ月後のリビルドで安定してビルドできることで実感できるでしょう。 開発環境

              Goの良さをまとめてみた
            • Go言語によるクリーンアーキテクチャの実装例紹介

              はじめに CastingONEでバックエンドエンジニアをやっている清水です。 この記事ではクリーンアーキテクチャについて学んだけど具体的にどのように実装すれば良いのかという悩みがあったので実装例をまとめてみた記事になります。 クリーンアーキテクチャで実装されたサンプル実装のうちGitHubのスター数が多いリポジトリをピックアップして、設計内容を紹介していきます。 具体的にどこにどんな実装をするべきなのかも含めて紹介していきます。 処理を一部省略して紹介するため実際の処理内容を確認したい場合はGitHubでご確認お願いします。 クリーンアーキテクチャとは クリーンアーキテクチャは、ソフトウェア設計の原則を適用して、依存性の方向性を逆転させ、ビジネスロジックから詳細(フレームワークやデータベース)を分離するアーキテクチャパターンです。これにより、テストしやすく、メンテナンス性が高く、柔軟性のあ

                Go言語によるクリーンアーキテクチャの実装例紹介
              • 「Go言語でつくるインタプリタ」をRustで実装しました。 - Sansan Tech Blog

                はじめに こんにちは。DSOC 研究開発部 Architect Group Data Direction Teamの有山です。 気温が上がってきて夏っぽくなってきましたね。毎年夏用にTシャツを集めるのが趣味なのですが、今年は個人的にブームが再燃してるGOODENOUGH*1を古着で集めようかなと考えています。 ところで皆さんは普段何の言語を書いていますか? Data Direction Groupでは主にPythonを使用していますが、ある時から四則演算の計算順序やif文の条件分岐はどうして正しく動くのだろうと疑問に思うようになり、実際に正しく動かしているシステムを理解してみたくなりました。色々検討した結果、「Go言語で作るインタプリタ」という本が内容的にも分量的にもちょうどよく、これを読み進めることにしました。 初めは読みながらコードを写経していましたが、複雑なロジックについては理解した

                  「Go言語でつくるインタプリタ」をRustで実装しました。 - Sansan Tech Blog
                • 【第4回】Go言語(Golang)入門~REST API環境構築編~ – 株式会社ライトコード

                  (株)ライトコードの笹川(ささがわ)です 今回も、Go言語(Golang)を習得していきたいと思います。 引き続き、Firestoreを利用して色々とやってみようかと思います。 Firestoreをデータストレージ、GolangをAPIとした場合は、どこかにデプロイしてから使うことが想定されます。 そのため、今回はデプロイする前にREST APIとして使えるようにしたいと思います。 ちなみに、RESTにした理由は特にありません(笑) 入門編のゴールとしては、Androidアプリとの結合を目論んでいるので、「RESTでいいなぁ」と難しいこと考えずに思った次第です!

                    【第4回】Go言語(Golang)入門~REST API環境構築編~ – 株式会社ライトコード
                  • 【第1回】Go言語(Golang)入門~環境構築編~ – 株式会社ライトコード

                    (株)ライトコードでモバイルアプリケーション開発をしている笹川(ささがわ)です! (笹川の得意分野は、モバイルアプリケーション開発です) 今回は、重い腰を上げてGo言語(Golang)を習得するために日々ブログにて記録していこうかと思います! ググればGo言語(Golang)についての情報はたくさんありますが、今回は「公式ドキュメント」をベースに進めていきたいと思います。 第1回目(1日目)スタートです!

                      【第1回】Go言語(Golang)入門~環境構築編~ – 株式会社ライトコード
                    • Big Sky :: Go 言語の struct の実体を引数で(なるべく)渡せない様にするテクニック

                      Go 言語は struct のレシーバがポインタの場合は実体であってもポインタの場合であっても呼び出せるので、もし struct が参照カウントに従い動作する様な場合は実体でコピーされてしまっては困る場合があります。例えば以下の様なインタフェースを考えます。 package main import ( "fmt" "sync/atomic" "time" ) type foo struct { n int64 q chan struct{} } func (f *foo) Add() { if atomic.AddInt64(&f.n, 1) == 1 { f.q = make(chan struct{}) } } func (f *foo) Done() { if atomic.AddInt64(&f.n, -1) == 0 { f.q <- struct{}{} } } func (f

                        Big Sky :: Go 言語の struct の実体を引数で(なるべく)渡せない様にするテクニック
                      • Big Sky :: Vim で Go 言語を書くために行った引越し作業 2020年度版

                        はじめに この文章は、普段から Vim を使い、仕事でも趣味でも Go 言語を書いている僕が、最近どの様な環境で書いているかを説明した文章です。ベストプラクティスではありません。 vim-go と僕 元々、Go 言語はリポジトリの misc/vim に Vim で Go 言語を書くための syntax やコマンドを持っていました。今でもそれらは Google のリポジトリに置かれています。ミュージアム的な物なので、実用的ではないと思います。 GitHub - google/vim-ft-go A rudimentary Go filetype plugin. Provides syntax files and basic settings for go files. This is a f... https://github.com/google/vim-ft-go これを Fatih A

                          Big Sky :: Vim で Go 言語を書くために行った引越し作業 2020年度版
                        • Gopher道場 自習室 - Gopher道場

                          Gopher道場 自習室とは Gopher道場は1度に受け入れる人数に限界があり、これまで申し込み課題を元に選考を行って、選考を通過した方のみに参加して頂いていました。 しかし、どなたでも参加してほしいという思いもあり、希望するすべての方にGopher道場のコンテンツを提供するGopher道場 自習室を行うことを決めました。 Gopher道場 自習室では、以下のようなコンテンツや学びの場を提供します。 Gopher道場の講義を録画した動画(10時間以上分) Slackにおける受講者同士のコミュニティ Gopher道場卒業生による課題のレビュー(ボランティアでご協力頂いているのでベストエフォートです) Slackへの参加方法 以下のリンクからGopher道場 Slackに入り、#studyroomチャンネルにお越し下さい。 Gopher道場 Slack登録リンク 動画コンテンツ Gopher

                          • Goモジュールでツールもバージョン管理する - Plan 9とGo言語のブログ

                            Goモジュール管理下では、プロジェクトで使うGo製ツールのバージョンも管理できます。今までの経験では、ツールのバージョンが上がって困ることは記憶にないですが、とはいえ2018年5月ごろにprotoc-gen-goが大きめの変更を入れたこともあるので、バージョン管理しておいて損はないでしょう。このハックは、割とGoモジュール初期からあったようですが、最近使ったので書きました。 Go 1.11 Modules - How can I track tool dependencies for a module? Go modules by example - Tools as dependencies 使い方 ツールを追加する Go 1.13時点では、モジュール管理しているリポジトリでgoimportsなどのツールをgo getすると、go.modが書き換えられて管理対象に入ります*1が、恒久的に

                              Goモジュールでツールもバージョン管理する - Plan 9とGo言語のブログ
                            • いまさらGoでElasticache Redisの負荷・障害試験をがっつりしてみた

                              こんにちは、 株式会社アプリボット、バックエンドエンジニアの小川詩織です。 今回はgolangで開発中の新規プロジェクトのため、ElasticacheRedisに関する検証を行いました。 かなり長くなってしまいましたが、参考にしていただければ幸いです。 以下、検証内容になります。 まえおき 検証のための実装にはgolangを用い、 go-redisによるElasticache Redisについての検証になります。 また、ゲームで良く活用される Ranking機能 の実装を想定した検証を行いました。 Ranking機能実装のためにRedisは ソート済みセット型 を用います。 Ranking機能についての想定なので、同一ランキングはkeyも同一になり、 Shardを増やしても負荷分散できないため全て Shard=1 として検証を行います。 また、Redisの 要素数は1000万件 用意しまし

                                いまさらGoでElasticache Redisの負荷・障害試験をがっつりしてみた
                              • Go言語でつくるインタプリタがグランドフィナーレを迎えました - ゆーすけべー日記

                                いよいよ「Go言語でつくるインタプリタ」がグランドフィナーレを迎えた。 そして、これで終わりだ。やり遂げた。これまでは私が誘う小さなお祝いを軽くあしらってきたとしても、いよいよ愉快なパーティ帽を被ってよい時間だ。 抜粋:: Thorsten Ball “Go言語でつくるインタプリタ” やったー。パーティーだ! なんでこの本を読んだの? 今までコンピュータサイエンをまともに学んだことがなかった。 大学生の時分、授業では「プログラミング」と銘打つものがあるくらいで、 Javaでアプレットを作ったり、Cでシステムプログラミングをしたりという程度だった。 あとは独学。あくまで目的達成のための学習。 GUIやWebアプリの高レイヤーの実装ばかりで、 中がどうなってるのかあんまり理解できてなかった(いわゆる電子工作は好きだったけど)。 で、なんとかやってきたんだけど、 コンピュータサイエンスを学んでい

                                  Go言語でつくるインタプリタがグランドフィナーレを迎えました - ゆーすけべー日記
                                • Go言語でElectronアプリケーションの高速化を実現した話 - DMM inside

                                  |DMM inside

                                    Go言語でElectronアプリケーションの高速化を実現した話 - DMM inside
                                  • GolangとRustを使い分けるとしたらどのような観点で使い分けますか?

                                    回答 (2件中の1件目) Go は GC を使う言語ですので、そもそも利用用途は絞られます。例えばハードウェアのドライバを書くのにはあまり向いていません。以下ではそれ以外の点についてお話します。 プログラムを作る時、完成形に向かって一度もそれることなくコードを書ける人はほぼいません。小さい断片のコードを書き、仮で動かしてみて、それを繋げてプログラムにすると思います。そういった場合の手数がどちらの方が大きいかという点で見るのも良いと思います。 例えば実装途中のコードにパフォーマンス上の問題が見つかり、並行処理をさせたいと思った時に多くのプログラミング言語ですと構造自体を大きく変更しない...

                                      GolangとRustを使い分けるとしたらどのような観点で使い分けますか?
                                    • Go Slice Tricks Cheat Sheet

                                      Web site created using create-react-app

                                        Go Slice Tricks Cheat Sheet
                                      • Go の命名規則

                                        本記事は Go Advent Calendar 2019 11 日目の記事です。 Go はシンプルな言語機能・シンタックスが特徴であり、命名規則にもそのシンプルさが表れています。 本記事では、公式や著名な Go エンジニア、OSS などから見られる Go らしい命名規則を紹介します。 今更なテーマかもしれませんが、意外にも公私共々で命名規則が意識されていないコードを時折見かけるので、自戒も込めて記します。 誤った内容があれば Twitter でご指摘いただければと思います。 パッケージ名簡潔にするEffective Go では、short, concise, evocative なパッケージ名が望ましいとされます。 これはパッケージ名に限らずほとんどあらゆる命名において役立つ指針だと思います。 また、「パッケージ名は一言で何をするかを表すエレベーターピッチだ」という Dave Cheney

                                        • パスワード付きZIPファイルの有効性検証! Go言語を使ったマルチコア対応パスワードチャレンジプログラム

                                          強いパスワードを作成するアプリを作りましたが、実際現代のパソコンでパスワードを突破するのにどの程度の時間がかかるか検証してみました。 手頃で高速でマルチコアに強そうという理由でGo言語を使ってみた結果、1秒間に18万パスワードをトライできる性能となりました。数字7桁のパスワードなら1分、8桁でも遅くとも10分で突破できます。 パスワードトライ中、全CPUフルに使い切ってます! goルーチンを使って、1,2,3,4,5・・・と増やしてみたところ、Core i5の2コア4ハイパースレッディングでは、3が最も速いという結果となりました。ただ、最速でも1スレッドの2倍弱にしかなりませんでした。 そもそも、今回のプログラムは無駄が多いので、パスワードトライに特化してメモリの動的確保を0にすれば、更に10倍くらい速くもできるはず。 GPUをうまく使えば、飛躍的な高速化ができるかも? アルファベット小文

                                            パスワード付きZIPファイルの有効性検証! Go言語を使ったマルチコア対応パスワードチャレンジプログラム
                                          • エキスパートたちのGo言語 一流のコードから応用力を学ぶ

                                            2022年1月7日紙版発売 2021年12月27日電子版発売 上田拓也,青木太郎,石山将来,伊藤雄貴,生沼一公,鎌田健史,上川慶,狩野達也,五嶋壮晃,杉田寿憲,田村弘,十枝内直樹,主森理,福岡秀一郎,三木英斗,森健太,森國泰平,森本望,山下慶将,渡辺雄也 著 B5変形判/400ページ 定価3,278円(本体2,980円+税10%) ISBN 978-4-297-12519-6 Gihyo Direct Amazon 楽天ブックス ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo honto 本書のサポートページサンプルファイルのダウンロードや正誤表など この本の概要 本書は,中級以上のGoプログラマーがツール開発・プロダクト開発で必要とされるプログラミングテクニックおよび周辺知識を学ぶための実践集です。 Go

                                              エキスパートたちのGo言語 一流のコードから応用力を学ぶ
                                            • 【HUGO】爆速で静的Webページ作成してFirebaseにデプロイしてみた | DevelopersIO

                                              社内でおすすめのWEBフレームワーク・ツールを教えてくださいとゆるく聞いたところこちらのツールを教えてもらったので触ってみました。 HUGOとは HUGOは静的なWebサイトを爆速で作成できるツールで、Goで書かれています。 (Gopherかわいい) The world’s fastest framework for building websites Hugo is one of the most popular open-source static site generators. With its amazing speed and flexibility, Hugo makes building websites fun again. 公式ページ 訳:静的WEBサイトが楽しくカンタンに作れちゃう世界最速のフレームワークだぜ! 良さそうですね!早速使ってみましょう。 インストール こ

                                                【HUGO】爆速で静的Webページ作成してFirebaseにデプロイしてみた | DevelopersIO
                                              • Go製のREST APIにUnitテストを追加した話 - SMARTCAMP Engineer Blog

                                                こんにちは!スマートキャンプ、エンジニアの中田です。 以前書いた記事の内容に引き続き今回も、現在業務で利用している Go のお話しです! 以前の記事 tech.smartcamp.co.jp 突然ですが、みなさんはテストを書かれてますか? 僕も「書いてます!」と声を張りたいところですが、4 月に新卒入社をしてから開発を始めた Go 製の API には何を隠そうテストがございません...。 開発初期は API へリクエストを手動で送りテストするような運用で特に事なかったのですが、開発が進むにつれコード差分による影響範囲が網羅できなくなったり、またそれにより大きな変更がしづらくなったり、とテストがないことによる悪影響が徐々に出現してきました。 そこで、テストを書こう。と思い立ってはみたものの、Go で API のテストってどう書くんだろう?と困ったのでその辺りを調査しながらサンプルアプリを実装

                                                  Go製のREST APIにUnitテストを追加した話 - SMARTCAMP Engineer Blog
                                                • スクリプト言語としてのGo

                                                  原文(投稿日:2020/04/23)へのリンク ハイパフォーマンスなネットワークシステムや並列システムを開発するプログラム言語として、Goの採用が拡大していることから、開発者たちはこれをスクリプト言語として使用することに熱意を持ち始めている。ただし現在のGoは、そのままではbashやpythonの代用としては使えないため、これには多少の努力が必要だ。 CodelangのElton Minetto氏が説明しているように、そのパワーや簡潔さ、goroutineのサポートなど、スクリプト言語として使用する上でのGoには多くのアピールポイントがある。GoogleのソフトウェアエンジニアであるEyal Posener氏は、Goをスクリプト言語として使用するさらなる理由として、豊富なライブラリが使用可能であることと、言語自体が簡潔であるためスクリプトのメンテナンスが容易であることを挙げている。やや違う

                                                    スクリプト言語としてのGo
                                                  • 【第5回】Go言語(Golang)入門~REST API実装編~ – 株式会社ライトコード

                                                    func firebaseInit(ctx context.Context) (*firestore.Client, error) { // Use a service account sa := option.WithCredentialsFile("path/to/serviceAccount.json") app, err := firebase.NewApp(ctx, nil, sa) if err != nil { log.Fatalln(err) return nil, err } client, err := app.Firestore(ctx) if err != nil { log.Fatalln(err) return nil, err } return client, nil }

                                                      【第5回】Go言語(Golang)入門~REST API実装編~ – 株式会社ライトコード
                                                    • 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
                                                      • Linuxルーターを狙ったGo言語で書かれたマルウェアGobRAT - JPCERT/CC Eyes

                                                        JPCERT/CCでは、2023年2月頃、国内のルーターにマルウェアを感染させる攻撃を確認しています。今回は、JPCERT/CCが確認した攻撃および使用されたマルウェアGobRATの詳細について解説します。 マルウェア実行までの攻撃の流れ 初めに攻撃者はWEBUIが外向けに開いているルーターを狙って脆弱性などを使用し、各種スクリプトを実行した後、最終的にマルウェアGobRATを感染させます。図1は、マルウェアGobRATがルーターに感染するまでの攻撃の流れです。 Loader Script には主に次の機能があり、各種スクリプトの生成やGobRATのダウンロードを行うなど、ローダーの役割を担っています。なお、バックドア用と推測されるSSH公開鍵は Loader Script 内にハードコードされています。 Loader Script はcrontabを使って Start Script のフ

                                                          Linuxルーターを狙ったGo言語で書かれたマルウェアGobRAT - JPCERT/CC Eyes
                                                        • Go言語で日時と文字列を相互変換するライブラリtimefmtを作りました - プログラムモグモグ

                                                          Go言語でstrftime・strptime相当の関数を提供するライブラリを実装しました。 t, _ := timefmt.Parse("2020/07/24 09:07:29", "%Y/%m/%d %H:%M:%S") fmt.Println(t) // 2020-07-24 09:07:29 +0000 UTC str := timefmt.Format(t, "%Y/%m/%d %H:%M:%S") fmt.Println(str) // 2020/07/24 09:07:29 str = timefmt.Format(t, "%a, %d %b %Y %T %z") fmt.Println(str) // Fri, 24 Jul 2020 09:07:29 +0000 なぜ作ったか Go言語の標準ライブラリには日時と文字列を変換する関数がありますが、2006年1月2日の15:04

                                                            Go言語で日時と文字列を相互変換するライブラリtimefmtを作りました - プログラムモグモグ
                                                          • Big Sky :: Go の struct は小さくできる(fieldalignment のススメ)

                                                            動的型付けプログラミング言語や、class を持つようなプログラミング言語を使う場合、そのフィールドメンバの定義順などを意識する事は少ないかもしれません。 Go は struct という、C言語が持っている構造体と同じ様にメモリ配置され、構造体そのものをレシーバとして、メソッドを定義しつつプログラミングを行います。struct はデータ構造そのものを示し、それが大きくなるにつれ、当然ながらメモリ使用量も多くなります。 さて、例えば以下のコードを実行すると、struct 100 個分のサイズは幾らになるでしょうか。 package main import ( "fmt" "unsafe" ) type Account struct { TimeZone struct { Name       string `json:"name"` UtcOffset  int    `json:"utc_

                                                              Big Sky :: Go の struct は小さくできる(fieldalignment のススメ)
                                                            • Goのポインタ渡しは値渡しよりパフォーマンスが良いという誤解 - Qiita

                                                              この記事は MicroAd Advent Calendar 2022 の12日目の記事です。 「Goのポインタは8バイトだから、ちょっとした構造体を値渡しでコピーするよりポインタで渡した方が早くなる」 長らくそう思い込んでいたのですが、以下の記事でポインタ渡しには意外なデメリットが多いことを知り、誤解だと気づきました。 この記事では自分なりにポインタのデメリットをまとめつつ、ポインタ渡しで本当に良いのかを確認すべきパターンを紹介しようと思います。 ポインタが実は高価な理由 ポインタが指す値にアクセスする際にnilかどうかのチェックが必ず入る ポインタがnilの場合、Goはpanic()をおこす必要があるため ポインタは動的メモリアロケーションの原因になりがち ポインタが指す値はヒープ領域に置かれがち(絶対ではないけど一般的に多い) ヒープ領域は確保にまとまったメモリの検索、解放にGCが必要

                                                                Goのポインタ渡しは値渡しよりパフォーマンスが良いという誤解 - Qiita
                                                              • GitHub Pagesをメタデータサーバとする簡易インストーラー「binq」をGo言語で作った - progrhyme's tech blog

                                                                どんなツールか 使い方 なぜ作ったか? メタデータとメタデータサーバ 概念 メタデータの更新について 利用例 今後の予定 パッケージ管理機能 URLフォーマットの自動生成 その他 まとめ 参考 免責事項 ※2020-07-13追記: 各リポジトリをGitHub Org https://github.com/binqry に移しました。*1 どんなツールか ツールのリポジトリ: https://github.com/progrhyme/binq GitHub Pages as メタデータサーバ: https://github.com/progrhyme/binq-index 「簡易インストーラー」と書きましたが、単純にインターネットからソフトウェアをダウンロードして、実行ファイルを指定されたディレクトリに配置します。 圧縮ファイル形式で配布されているものは解凍して、実行ファイルを見つけて配置

                                                                  GitHub Pagesをメタデータサーバとする簡易インストーラー「binq」をGo言語で作った - progrhyme's tech blog
                                                                • Go言語reflectパッケージ詳解:nirasan

                                                                  この本ではGo言語のreflectパッケージについて解説と使い方の紹介をします。 reflectは実行時リフレクションを実装するパッケージです。 任意の値の型情報などをオブジェクト化して利用する機能を持ち、 使用することであたかも動的型付け言語であるかのような型の制約を受けないコードを書くことができます。 reflectはこのように言語の根底を覆すような強力なパッケージではありますが、 強力であるがゆえに使い方を間違えると簡単に危険なコードを書くことができるためよく理解して使う必要があります。 しかしながらreflectパッケージの公式ドキュメントには使用例が少なく、自分で試してみなければ使い方がよくわからない部分もあるので、 簡単な解説とすべての関数やメソッドの使用例がまとめられたドキュメントがあると嬉しいと考え本書を作りました。 この本の対象読者は、これからreflectパッケージを使

                                                                    Go言語reflectパッケージ詳解:nirasan
                                                                  • Go言語のAPIサーバーの冗長なエラーログを40%削減した話 #LayerXテックアドカレ - LayerX エンジニアブログ

                                                                    こんにちは。バクラク申請・経費精算エンジニアの@upamuneです。先週末は30kmのトレイルレースがありましたが、今週末はフルマラソンがあるので満身創痍です。 この記事はLayerXテックアドカレ2023の22日目の記事です。 私はなぜか3日分もテックアドカレに入れてしまったのですが、2回目の今回はAPIサーバーのエラーログを40%削減した話をします。 昨日は@tataneによるバクラクの Vue3 移行戦略と詰まったポイント #LayerXテックアドカレ - LayerX エンジニアブログでした。明日は@trsによる入社エントリーです!楽しみですね。 はじめに 弊社では基本的にGo言語を利用してAPIサーバーを実装しています。エラーが発生したら、調査しやすいようにエラーログを出力して調査しやすくしていますが、1つのエラーに対して複数回の冗長なエラーログが出力されるという問題がありました

                                                                      Go言語のAPIサーバーの冗長なエラーログを40%削減した話 #LayerXテックアドカレ - LayerX エンジニアブログ
                                                                    • Go のモジュール管理【バージョン 1.17 改訂版】

                                                                      Go 1.17 リリースに合わせて【バージョン 1.17 改訂版】とした(2021-08-21) Go 1.18 から追加・変更になった機能について追記した(2022-04-03) Go のモジュールについては自ブログでもよく話題にするのだが,差分情報が多く内容が分散しているため,ここの Zenn でまとめておく。なお,この記事では vendoring 機能については言及しないのであしからず[1]。 用語の整理 まず最初に用語の定義をしておく。 GOPATH モードとモジュール対応モード バージョン 1.11 以降から Go ツールーチェーンは以下の2つのモードのどちらかで動作する。 GOPATH モード (GOPATH mode) : バージョン 1.10 までのモード。標準ライブラリを除く全てのパッケージのコード管理とビルドを環境変数 GOPATH で指定されたディレクトリ下で行う。パ

                                                                        Go のモジュール管理【バージョン 1.17 改訂版】
                                                                      • 【第8回】Go言語(Golang)入門~環境見直し編~ – 株式会社ライトコード

                                                                        環境の見直し1回目の記事を書いた際に、弊社のメンバーから 「どうせだったら brew とか goenv で導入してみればよかったのに」 …というお言葉を頂いたので、折角なので、goenv で go の環境構築をやりなおしてみることにしました。 goenvとはgoenvとは、rbenv をベースとしたGo言語(Golang)のバージョン管理ツールです。 brew経由でインストールでき、バージョンを指定してインストール出来ることから、チーム開発や複数の環境での開発をしたいときに有用です。 goenvを導入してみようGo言語(Golnag)のバージョン1.13は、2019/10/2時点で、goenv の master には入っていないようなので、--HEADをつけてインストールします。

                                                                          【第8回】Go言語(Golang)入門~環境見直し編~ – 株式会社ライトコード
                                                                        • 50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs

                                                                          50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs 50 Shades of Go in Other Languages Chinese Translation: blog post, segmentfault (by wuYin) - needs updates Another Chinese Translation: blog post (by Shadowwind LEY) - needs updates Russian Translation: blog post (by Ilia Ozhereliev, Mail.Ru Group Blog) - needs updates Overview Go is a simple and fun language, but, like any o

                                                                          • メルペイエキスパートチームの取り組み〜人類Gopher化計画の進捗報告〜 | メルカリエンジニアリング

                                                                            Merpay Advent Calendar 2019 の17日目は、メルペイ エキスパートチームの @tenntenn がお送りします。 筆者が所属するエキスパートチームでは「アウトプットをするところに技術は集まる」という考えのもと、工数の50%以上を技術コミュニティへの貢献に充てています。筆者はその中でもGoコミュニティを中心に活動しており、本記事では最近の活動について振り返ります。 筆者は「人類Gopher化計画」を掲げて、さまざまなバックグラウンドを持つ方にGoに触れてもらう活動をしています。名前は社内外で覚えてもらえるように少しふざけてキャッチーにしてありますが、活動自体はコツコツと行っています。 例えば、Goを学びたいと言ってもさまざまなバックグラウンドやスキルレベルの方がいます。効率よく学ぶためには、それぞれのスキルレベルに合わせた学び方やコミュニティが必要になるでしょう。同

                                                                              メルペイエキスパートチームの取り組み〜人類Gopher化計画の進捗報告〜 | メルカリエンジニアリング
                                                                            • Amazon Verified Permissionsとgolangで認可処理を実装してみた - Techtouch Developers Blog

                                                                              Amazon Verified Permissions とは 従来の認可処理 Cedar 言語の使い方 基本的な記述方法 RBAC の例 ABAC の例 golang で動かしてみる 1. ポリシーストアを AWS コンソールから作成する 3. サンプルアプリケーションの実装 最後に こんにちは、2023年5月にバックエンドエンジニアとしてジョインした yamanoi です。 最近は Cloudflare スタックに注目しており、新機能を触ったりアップデートを眺めたりしています。 今回は先日 GA (一般利用可能)になった AWS のサービス Amazon Verified Permissions を、 golang で実装した簡単なサンプルを交えて紹介したいと思います。 Amazon Verified Permissions とは Amazon Verified Permissions

                                                                                Amazon Verified Permissionsとgolangで認可処理を実装してみた - Techtouch Developers Blog
                                                                              • 【第6回】Go言語(Golang)入門~Twitter API利用編~ – 株式会社ライトコード

                                                                                TwitterAPIとは「ツイート」や「タイムラインの取得」、「リツイート」や「いいね」といったTwitterのサービスを、APIから利用できるサービスです。 今回は、TwitterAPIの「登録方法」や「初期設定」などは紹介しません。 そちらについては、以下の記事で詳しく説明されているようなので参考にしてみてください。 【Twitter API 登録 (アカウント申請方法) から承認されるまでの手順まとめ】 https://qiita.com/kngsym2018/items/2524d21455aac111cdee この記事では、すでにTwitterAPIの利用登録が済んでいる前提のもと、進めていきたいと思います。 Anacondaを入れてOAuth認証をしてみよう!TwitterAPIを利用するにあたって、まずは「OAuth認証」が必要となります 今回は、自前でOAuth認証の実装を

                                                                                  【第6回】Go言語(Golang)入門~Twitter API利用編~ – 株式会社ライトコード
                                                                                • はてなのサービスを支えるGo / hatena.go #1 maku693

                                                                                  hatena.go #1の登壇資料です。

                                                                                    はてなのサービスを支えるGo / hatena.go #1 maku693

                                                                                  新着記事