並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 393件

新着順 人気順

golangの検索結果1 - 40 件 / 393件

  • Let's EncryptがはまったGolangの落とし穴 - ぼちぼち日記

    0. 短いまとめ 300万以上の証明書の失効を迫られたLet's Encryptのインシデントは「Golangでよくある間違い」と書かれているようなバグが原因でした。 1. はじめに、 Let's Encryptは、無料でサーバ証明書を自動化して発行するサービスを行う非営利団体として2014年に設立されました。 2015年にサービス開始されると証明書の発行数はぐんぐん伸び、先月末のプレスリリースでは累計10億枚のサーバ証明書を発行したことがアナウンスされました「Let's Encrypt Has Issued a Billion Certificates」。CTLogの調査から、2020年2月末の時点では有効な全証明書の38.4%がLet's Encryptの証明書であるとみられています「Certificate Validity Dates」。 無料の証明書を提供してもらえるのは非常に嬉し

      Let's EncryptがはまったGolangの落とし穴 - ぼちぼち日記
    • golangとDockerとOOM — KaoriYa

      golangで書いたプログラムをDockerで動かしOOMが発生した際になるべく情報を残して殺される方法を紹介します。 2020/08/16追記: この記事の内容はgolangに関してはやや現実的ではなくなってしまいました。 詳しくは続編を参照してください。 TL;DR golang製のプログラムは仮想メモリ(VSZ)の確保に失敗するとgoroutineのダンプを吐いて死ぬ DockerのOOMはRSSベースで検出時にSIGKILLを投げてくる Docker利用時にVSZで制限をかけるスクリプトを書いた golang製のプログラムはlinux-amd64において最低でも101MBのVSZを要求する VSZの制限がそれより小さいと当然起動できない 実際のRSSは3MB程度で起動する Background コンテナ内で動いているプロダクション上のgolang製のプログラムが時々OOMに殺されて

      • golangで作るTCPIPプロトコル

        はじめに とりあえずIT業界に入ったら読んでおけという名著はいろいろありますが、その中の1冊がマスタリングTCP/IP入門編でしょう。 僕も買ってはいたものの読むのを途中で挫折していたので、今回しっかり読んでTCP/IPを再勉強してみたいと思います。 マスタリングTCP/IPを読みながらその他わからんことはググりつつ、golangでTCPIPプロトコルそのものを自作してみます。 方針は以下のようにします。 ethernetから作る データのやり取りにnetパッケージは一切使わない (訂正、PCのIPやMacアドレスを取るのにだけ使用しますた) データのやり取りに使うのはsyscallのsendtoとrecvfromだけ socketはRAW_SOCKETを使う golangやネットワークについても初心者の駆け出しですので間違えや実装ミス、変なコードがあるかもですが、生暖かい目でよろしゅうお

          golangで作るTCPIPプロトコル
        • VSCodeとDockerでMacにGolangの開発環境を作成する | DevelopersIO

          こんにちは、CX事業本部の夏目です。 Golangは最近人気の言語で手を出そうとは思っていたのですが、環境構築がいまいちよくわからなくてできてませんでした。 (goenvを使ってGolangをインストールするときGOPATHはどうしたらいいとかよくわからなかったのです) 今日はVisualCodeとDockerを使って、Golangの開発環境をMac上に作成しようと思います。 環境構築 事前準備 VSCodeとDockerをインストールします。 Visual Studio Code - Code Editing. Redefined Docker Desktop for Mac and Windows | Docker Version 2.0以上 拡張機能のインストール VSCodeのExtension "Remote-Containers"を使用して開発環境を作ろうと思います。 Micr

            VSCodeとDockerでMacにGolangの開発環境を作成する | DevelopersIO
          • Effective Error Handling in Golang

            Introducing Earthly Cloud. Consistent, repeatable builds. Advanced caching for speed. Works with any CI. Get 6,000 build min/mth free! Learn more. Introducing Earthly Cloud. Consistent, Fast Builds, Any CI. Get 6,000 build min/mth free! Learn more.

              Effective Error Handling in Golang
            • golangではスタックとヒープを気にする必要が無い

              調べようと思ったきっかけは、golang では以下のように ローカル変数のアドレスを戻り値としても問題ないということ。 package main import ( "fmt" ) type Animal struct { Name string Age int } func main() { animal := allocAnimal() fmt.Printf("allocate animal structure %p", animal) } func allocAnimal() *Animal { return &Animal{} } C/C++ ではローカル変数のポインタを戻り値とした場合、 スタック領域のポインタを関数外に渡してしまうため、コンパイル時点で警告が表示されます (なぜエラーにしない) 実行時には最悪、セグメンテーションフォールトで落ちます そのため、malloc や n

                golangではスタックとヒープを気にする必要が無い
              • Golang GenericsでREST APIを作る - Nature Engineering Blog

                Go 1.18が出てしばらく経ちました。みなさんGenerics使っていますか? @maaashです。 これは Nature Engineering Blog祭 の2日目の記事です。 祭り 最初は歓喜し、mapやfilter的なfor文を少しずつgithub.com/samber/loに切り替えたり、 internalなsliceパッケージを作ってみたり。 ですが心のどこかで欲求不満が蓄積されていくのを感じていました。 使い尽くしていないのでその真価が理解できていなくて物足りないような、 こんなに面白いおもちゃが与えられたのに遊び尽くしていないような感覚です。 Genericsを使ったコードを書きたい!と思いながら日々の業務でREST APIを書いていると、、 あれ、これはかの When To Use Genericsの結論にある: If you find yourself writing

                  Golang GenericsでREST APIを作る - Nature Engineering Blog
                • VS Codeのコンテナ拡張機能でGolang勉強環境を構築してみた

                  ◆初めに Visual Studio Code Remote – Containersという拡張機能を使って、前から気になってたGo言語の勉強用環境を構築しました。 ◆やってみる 使うものをダウンロードしていきましょう。 ・Visual Studio Code https://azure.microsoft.com/ja-jp/products/visual-studio-code/ ・Visual Studio Code Remote – Containers https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack ・docker https://www.docker.com/ VS Codeでフォルダーを開いて、F1 や Ctrl + Shift +

                    VS Codeのコンテナ拡張機能でGolang勉強環境を構築してみた
                  • flurry on Twitter: "情報収集してるときに、ねっとうよく発言を読んでしまうという点では、このひとが移行先として検討しているPythonのほうが酷いと思います。とくに人工知能云々で流行する以前からやってた連中。 あとはGolangやScalaもつらい。は… https://t.co/LIrgkoCd8W"

                    情報収集してるときに、ねっとうよく発言を読んでしまうという点では、このひとが移行先として検討しているPythonのほうが酷いと思います。とくに人工知能云々で流行する以前からやってた連中。 あとはGolangやScalaもつらい。は… https://t.co/LIrgkoCd8W

                      flurry on Twitter: "情報収集してるときに、ねっとうよく発言を読んでしまうという点では、このひとが移行先として検討しているPythonのほうが酷いと思います。とくに人工知能云々で流行する以前からやってた連中。 あとはGolangやScalaもつらい。は… https://t.co/LIrgkoCd8W"
                    • DNS改竄検知ツールをgolangで作った(Slack通知付き) - Code Day's Night

                      DNSのNSレコード、MXレコードの改竄を検知(変更検知)し、オプションでSlack通知もできるツールを公開しました。 https://github.com/ichikaway/nschecker Go言語で開発し、LinuxとMacのバイナリもダウンロードできます。 すぐに実行できるため、cron指定しておけば意図しないレコードの変更がわかります。 作った経緯 最近、ドメインハイジャックの事件を目にするよになりました。 DNS設定の改ざんによるドメイン名ハイジャックに注意喚起(JPRS) | ScanNetSecurity 2020年6月にコインチェックのドメインハイジャック事件が起きています。 コインチェックのドメインハイジャックの手法を調査した - Shooting!!! この記事を読むと、改竄されたレコードは、ns-1515.awsdns-"0"61.orgのような一見正しそうだが

                        DNS改竄検知ツールをgolangで作った(Slack通知付き) - Code Day's Night
                      • ((🐑++)) on Twitter: "パケットが帰ってくるとピングーが出てくるpingコマンドを作りました 楽しいwww https://t.co/VxeVtIt2IB #golang #cli #ping https://t.co/KoLlEou9Ou"

                        パケットが帰ってくるとピングーが出てくるpingコマンドを作りました 楽しいwww https://t.co/VxeVtIt2IB #golang #cli #ping https://t.co/KoLlEou9Ou

                          ((🐑++)) on Twitter: "パケットが帰ってくるとピングーが出てくるpingコマンドを作りました 楽しいwww https://t.co/VxeVtIt2IB #golang #cli #ping https://t.co/KoLlEou9Ou"
                        • 2019-13 実践 Go 言語/2019-13 golang

                          Fashionably flexible responsive web design (full day workshop)

                            2019-13 実践 Go 言語/2019-13 golang
                          • 少人数での爆速開発を目指してgolang×GCPの技術選定をした話

                            この1年くらいでgolangとGCPを使ったWebアプリケーションをフルスクラッチで開発したので、その際の技術選定の理由だったりを言語化して残しておきたいと思い、HHKBを手に取りました。 少し長くなってしまいましたが、どなたかの参考になればと思います。 どんな人が書いてるの? 立ち上げ期のスタートアップCTOをしています。雑に言うとフルスタックエンジニアです。 開発歴はざっくり、Androidアプリの開発歴が一番長くて3年、バックエンド開発(Elixir × GCP)に転身して1年ほど担当、その後、これから言語化するプロジェクトを1年くらいかけてgolangで構築したところです。 今回の範囲からは外れますが、並行してNuxt.js×TypeScriptで書かれたフロントエンド開発も行っていたので、今はその辺りも一通り習得しています。 1. 方針 表題にもある通り、少人数での爆速開発を目指

                              少人数での爆速開発を目指してgolang×GCPの技術選定をした話
                            • Golangでいい設計を実践するための6つのツール

                              概要 Golangを書くにあたり、いい設計のコードを書くための手助けとなるツールを調べたのでまとめます。 想定読者 Golangの使い方をある程度わかっている(チュートリアルはやった) いい設計をするための具体的なノウハウに興味がある 記事を書いたきっかけ 引用: https://www.amazon.co.jp/dp/B09Y1MWK9N 最近設計に関して勉強するために「良いコード/悪いコードで学ぶ設計入門」を読みました。 本の中では マジックナンバーを使うな 一つのメソッドの中で多くのことをやりすぎるな などの言われてみると基本的な注意点が書いてありました。 一方で以下のように、確かにそうなんだけど実際は守れていない注意点にも書かれていました。 単一責任の原則を守ってクラス設計しよう 高凝集なクラスを作ろう 本を読んでわかった気になって今までと同じように悪い設計のコードを書くままではい

                                Golangでいい設計を実践するための6つのツール
                              • GolangらしいPackage構成を考える/thinking about Golang-like package architecture

                                DesignOneGo#6 のLT発表資料です Webアプリケーション設計からGolangらしいPackage構成を考えたものです。 CleanArchitectureを参考に考えた独自設計を元に - レイヤーでのPackage構成 - レイヤー×Re-ducks思想を織り交ぜたPackage構成 について考察しています。 P.S. 簡易的に作成したものなので、 今後この内容を詳しくした設計サンプル資料を作成したい...!

                                  GolangらしいPackage構成を考える/thinking about Golang-like package architecture
                                • 【第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)入門~環境構築編~ – 株式会社ライトコード
                                    • GolangとRustを使い分けるとしたらどのような観点で使い分けますか?

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

                                        GolangとRustを使い分けるとしたらどのような観点で使い分けますか?
                                      • golangで作るTLS1.2プロトコル

                                        はじめに 前回自作でTCPIP+HTTPを実装して動作を確認することができました。 しかしご覧頂いた方はおわかりのように、通信はHTTP=平文でやり取りされておりパスワードなど機密情報が用意に見れてしまう状態です。 普段我々がブラウザに安心してパスワードを入力しているのは通信がTLSで暗号化されているからです。ではそのTLSの仕組みはどうなっているのでしょう? 恥ずかしい限りですが僕はわかりません。😇😇😇 ということで以下を読みながらTLSプロトコルを自作してみてその仕組みを学ぶことにします。 マスタリングTCP/IP情報セキュリティ編 RFC5246 プロフェッショナルSSL/TLS 今回の実装方針です。 TLS1.2プロトコルを自作する 暗号化などの処理はcryptパッケージの関数を適時利用する tcp接続にはconnectを使う 鍵交換はまずRSAで作成する TLS_RSA_W

                                          golangで作るTLS1.2プロトコル
                                        • 【30歳/完全未経験/独学】webアプリを作製しました【Golang, Next.js, MySQL, Docker, GitHub Actions CI, AWS Fargate on ECS】 - Qiita

                                          完成物 ER図 画面遷移図 figma, 原寸画像 AWS構成図 ※備考※ GitHub Actions CIは構築済みです。 GitHub Actions CD, apiのprivate subnet化にも取り組んでいます。 EC2インタンスは通常時停止です。 技術選定理由 プログラミング、IT業界ともに未経験で着手し独学で作りました。 Go 比較対象:JAVA、Ruby、Python、PHP コンパイラ言語であり実行速度が高速である 静的型付けであり、コンパイル前にバグを発見しやすい 静的型付けかつ記述自由度が低いことから、以下2点を利点と考えた 開発を中長期まで続けた際にも、加筆・改修しやすい 他人のコードを読んだ際に学びやすい Javaも多少書いてみたが、簡素にかけるGoの方がしっくりきた SHOWROOM、IRIAM、Twitch、AbemaTVといった動画配信サービスにも採用さ

                                            【30歳/完全未経験/独学】webアプリを作製しました【Golang, Next.js, MySQL, Docker, GitHub Actions CI, AWS Fargate on ECS】 - Qiita
                                          • 今あらためて読み直したい Go 基礎知識 その2 / golang.tokyo #25

                                            https://golangtokyo.connpass.com/event/133581/ https://t.co/PlYJvq2jAt

                                              今あらためて読み直したい Go 基礎知識 その2 / golang.tokyo #25
                                            • VSCodeとDockerで作ったGolangの開発環境にLocalStackを追加して、AWSのテスト環境を整える | DevelopersIO

                                              VSCodeとDockerで作ったGolangの開発環境にLocalStackを追加して、AWSのテスト環境を整える こんにちは、CX事業本部の夏目です。 先日、VSCodeのExtension Remote-Containersを使ってGolangの開発環境をDocker上に作りました。(リンク) 個人的な話ですが、AWSで使用するCLIツールをGolangで書いています。 そのため、AWS環境のMockとしてLocalStackを使い、テストを書きたいと思いました。 Remote-Containers ではdocker-composeを使って環境を作ることができるので、今回はLocalStackもGolangの開発用Containerと同時に立ち上げるようにしていきたいと思います。 環境構築 事前準備 Golangの環境は前回のブログで作ったものを流用したいと思います。 (compos

                                                VSCodeとDockerで作ったGolangの開発環境にLocalStackを追加して、AWSのテスト環境を整える | DevelopersIO
                                              • 【第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実装編~ – 株式会社ライトコード
                                                • 【golang】sqlcコマンドで「SQLクエリから型安全なGoコードを生成」し、生産性を上げたい

                                                  【golang】sqlcコマンドで「SQLクエリから型安全なGoコードを生成」し、生産性を上げたい by nao · 2022年6月25日 前書き:sqlcとは 本記事は、kyleconroy/sqlcの基本的な情報を紹介します。 sqlcは、DBスキーマ(DBテーブル定義)、SQLクエリ定義、設定ファイルの3点をインプットとして、型安全なCRUDコード + DBテーブルに対応したモデル(構造体)を自動生成します。ここでのモデルの自動生成には、複数テーブルをJOINしたクエリ用の構造体も含まれます。 個人的な視点では、sqlcは「SQLクエリを検証してから、そのクエリを実行するGolangコードを書いて、クエリ結果を受け取るための構造体を書くのが大変」という課題を解決するツールです。独自のDSL(Domain Specific Language)は殆ど登場しないので、SQLをゴリゴリ書ける

                                                    【golang】sqlcコマンドで「SQLクエリから型安全なGoコードを生成」し、生産性を上げたい
                                                  • golangで便利ツール作ろうと思ったらos/execでハマった話 - Qiita

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

                                                      golangで便利ツール作ろうと思ったらos/execでハマった話 - Qiita
                                                    • Golang の Generics で使いたいものは大体 samber/lo にあった話 - Qiita

                                                      はじめに 本記事は Go Advent Calendar 2022 の18日目の記事です。 Generics を使った関数でやりたかったことが、samber/lo に大体揃ってたという話をします。 すでに自前で書いてた関数もいくつかあったのですが、このライブラリを知り置き換えていったという体験談です。 ※結果的に「samber/lo のなかでこの辺り使えるかも」というものを私の独断と偏見でピックアップする記事になってます。 samber/lo とは samber/lo は 16日目のアベンドカレンダーの記事 でも取り上げられていまして、そこから説明を引用させていただきました。 samber/loは,多種多様な便利関数を提供するパッケージです。 JavaScriptのライブラリのLodashライクであるとREADMEにも記載があります。 個人的には大好きなパッケージでして,Map,Filte

                                                        Golang の Generics で使いたいものは大体 samber/lo にあった話 - Qiita
                                                      • proposal: cmd/go: add .ʕ◔ϖ◔ʔ as an alternate spelling of .go in file names · Issue #59968 · golang/go

                                                        The new (apparently closed-source) programming language Mojo uses files named .mojo, but it allows .🔥 as an alternate spelling of .mojo, as in hello.🔥. Issue #45549 tracks handling of unicode in import paths, module paths, and file names. We have been proceeding cautiously due to the many subtle issues involved in cross-platform support, case-insensitive file systems, and so on: modules must wor

                                                          proposal: cmd/go: add .ʕ◔ϖ◔ʔ as an alternate spelling of .go in file names · Issue #59968 · golang/go
                                                        • 【第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)入門~環境見直し編~ – 株式会社ライトコード
                                                          • 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
                                                            • 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

                                                              • Golangのパッケージ名はどうするのが正解か

                                                                https://go.dev/blog/package-names を訳してみる Introduction Go code is organized into packages. Within a package, code can refer to any identifier (name) defined within, while clients of the package may only reference the package’s exported types, functions, constants, and variables. Such references always include the package name as a prefix: foo.Bar refers to the exported name Bar in the imported pack

                                                                  Golangのパッケージ名はどうするのが正解か
                                                                • 【第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利用編~ – 株式会社ライトコード
                                                                  • Golang でスマートに標準出力テストを行う

                                                                    Golang で標準出力テストの方法の調査 最近Golangで標準出力をテストする際にどのような方法を取れば良いのか情報も少なく、しばらく迷走していたので、ここで一旦メモとしてまとめておく。 標準出力をテストする方法を模索した結果 今回調査した方法は主に以下の2つ os.Pipe() を駆使して出力先を切り替えて値をキャプチャする Testable Examples を利用する os.Pipe() を駆使して出力先を切り替えて値をキャプチャする まず初めに、標準出力を受け取る関数を定義して、出力先を切り替えて値をキャプチャする方法が妥当であろうと考え、以下のような共通関数を定義して呼び出すことにしました。 func PickStdout(t *testing.T, fnc func()) string { t.Helper() backup := os.Stdout defer func(

                                                                      Golang でスマートに標準出力テストを行う
                                                                    • Golangを用いた様々な計算の高速化 - Qiita

                                                                      0.はじめに 競技プログラミングでは制限時間内に解を求めるようなプログラムが求められます。競技プログラミングでなくとも、必要に応じてプログラムを高速化したい場面は無数にあります。逐次処理のプログラムを並行化することで処理を高速化する、並行プログラミング/マルチスレッドプログラミングを活用できる機会は多いのではないでしょうか。1 本記事は Golang で逐次処理で計算できる処理を並行化/高速化することで、並行処理の威力や Golang の並行化の書きやすさを体感することを目標とします。 1.様々な計算の高速化 Go at Google: Language Design in the Service of Software Engineering にもあるように Golang の並行処理は CSP をベースにしており、並行処理が書きやすい言語と言えます。 Golang に組み込まれている g

                                                                        Golangを用いた様々な計算の高速化 - Qiita
                                                                      • 【第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導入編~ – 株式会社ライトコード
                                                                        • 【第3回】Go言語(Golang)入門~Firestoreデータ操作編~ – 株式会社ライトコード

                                                                          package main import ( "context" "log" firebase "firebase.google.com/go" "google.golang.org/api/option" ) func main() { // 初期化 ctx := context.Background() sa := option.WithCredentialsFile("path/to/serviceAccount.json") app, err := firebase.NewApp(ctx, nil, sa) if err != nil { log.Fatalln(err) } client, err := app.Firestore(ctx) if err != nil { log.Fatalln(err) } // データ追加 _, _, err = client.Collecti

                                                                            【第3回】Go言語(Golang)入門~Firestoreデータ操作編~ – 株式会社ライトコード
                                                                          • 【Golang】VSCodeで自動生成されるテストコードをカスタマイズする - magamingのブログ

                                                                            こんにちは。Goのテスト、書いていますか? 私はめちゃめちゃ書いています。 VSCodeに拡張機能(vscode-go)を入れることで、テストコードを自動生成することができることを最近知ったのですが、これがとても便利です。 使い方は以下の記事でまとめられています。 kdnakt.hatenablog.com これはめちゃめちゃ便利なのですが、デフォルトだと少し物足ないところがあったので、カスタムテンプレートを作成しました。 GitHub - Magaming/gotests-templates vscode-goは内部でgotestsを使っているので、それ用のテンプレートを用意している形です。 具体的には次のようなことをしています。 go-cmpを使う 標準だと reflect.DeepEqualで比較しているが、これだとtime.Time型を含んだ構造体の比較とかで死ぬ go-cmpは、

                                                                              【Golang】VSCodeで自動生成されるテストコードをカスタマイズする - magamingのブログ
                                                                            • Golang is evil on shitty networks

                                                                              This adventure starts with git-lfs. It was a normal day and I added a 500 MB binary asset to my server templates. When I went to push it, I found it interesting that git-lfs was uploading at 50KB per second. Being that I had a bit of free time that I’d much rather be spending on something else than waiting FOREVER to upload a file, I decided to head upstairs and plug into the ethernet. I watched i

                                                                                Golang is evil on shitty networks
                                                                              • 【第12回】Go言語(Golang)入門~MySQL接続編~ – 株式会社ライトコード

                                                                                package main import ( "fmt" _ "github.com/go-sql-driver/mysql" "github.com/jinzhu/gorm" ) func main() { _, err := sqlConnect() if err != nil { panic(err.Error()) } else { fmt.Println("DB接続成功") } } // SQLConnect DB接続 func sqlConnect() (database *gorm.DB, err error) { DBMS := "mysql" USER := "go_example" PASS := "12345!" PROTOCOL := "tcp(localhost:3306)" DBNAME := "go_example" CONNECT := USER + ":"

                                                                                  【第12回】Go言語(Golang)入門~MySQL接続編~ – 株式会社ライトコード
                                                                                • Golang IO Cookbook · jesseduffield/notes Wiki

                                                                                  Preamble: In the last couple of days I made a program called Horcrux which allows you to split a file into any number of horcruxes, a subset of which can then be recombined to resurrect the original file. In the process I learnt a lot about the io.Reader and io.Writer interface, and thought I would do a writeup to help build intuition for all the people out there who inevitably will find themselve

                                                                                    Golang IO Cookbook · jesseduffield/notes Wiki