タグ

Golangに関するhohoho_ho2005のブックマーク (1,265)

  • Golangのconst識別子iotaの紹介 - Qiita

    Go AdventCalendar2016の9日目(2016/12/09)の記事です。 前の記事は massa142さんの「Hacker Newsを一覧表示してくれるCLIツールを書いた」でした。 はじめに ちょっとマイナーなGolangの言語仕様である、iotaについて紹介します。 結構入門書とかにも書いてあるんですが、読み飛ばしがちなんですよね。 特に新規性がある内容ではないので、タイトルでもう知ってるわ!という方はそっ閉じしてもらって大丈夫です。 iotaとは iotaは、定数宣言(const)の内での既定された識別子です。 型なしの整数の連番を生成します。具体例を見ましょう。 package main import "fmt" const ( zero = iota one = iota two = iota three = iota ) func main() { fmt.Pri

    Golangのconst識別子iotaの紹介 - Qiita
  • go buildを試しつつGoのパッケージの規則を覚えた - 今川館

    go buildでバイナリを作る go buildコマンドを実行すると、カレントディレクトリからmainパッケージを探してバイナリを作ってくれる。 Githubでの管理を念頭に推奨されるプロジェクト構成 go getでgithub.comから依存ライブラリを取ってくる importで自己ないし外部プロジェクトのモジュールを参照する 上記2点を考慮すると、以下の記事で紹介されている構成にしておくのが無難らしい。 Golangで自分自身で定義したパッケージをインポートする方法あれこれ - Qiita $GOPATH/src/github.com/[username]/[appname] この中で最初から作業をしてしまう. 実際に試してみた $GOPATH/src/github.com/oyakata/tokyo ├── hello │   ├── api.go # helloパッケージ │  

    go buildを試しつつGoのパッケージの規則を覚えた - 今川館
  • Go言語 Web フレームワークはこれを使おう 2016年12月版 - Witch on the Other Shore

    2016 - 12 - 10 Go言語 Web フレームワークはこれを使おう 2016年12月版 この記事は Qiita Advent Calendar 2016 Go (その2) 10日目の記事です。 Go言語の Web アプリケーションフレームワーク (以下、Web フレームワーク) は、群雄割拠の時代を経てわずかばかりまとまってきた印象があります。今回、Go言語の Web フレームワーク を選定するさいの参考になればと思い、あらためていくつかのフレームワークの特長や最近の動向をまとめました。 結論 現時点では iris または Echo の選択をおすすめします。 選定と推薦の根拠 主観 GitHub Trending, Star, Issue プロダクトでの使用経験 (Gin, Echo) 現在、 株式会社ユーリエ のプロダクト eurie Desk 開発における主たる言語として G

    Go言語 Web フレームワークはこれを使おう 2016年12月版 - Witch on the Other Shore
  • Goでwebアプリを開発してみよう

    [参考情報] 【永久保存版】OAuth 2.0 / OpenID Connect シーケンスまとめ URL:https://qiita.com/kura_lab/items/812a62b5aa3427bdb49d タイトル: 『OpenID Connect 入門 〜コンシューマー領域におけるID連携のトレンド〜』 概要: コンシューマー領域におけるID連携のトレンドであるOpenID Connectの概要と仕様のポイントについてご紹介します。 OpenID TechNight Vol.13 - ID連携入門 Aug. 26, 2015 URL:https://openid.doorkeeper.jp/events/29487

    Goでwebアプリを開発してみよう
  • Go でツール書くときの Makefile 晒す - Qiita

    Go でツール書くときはタスクランナーとして make を使っています。ビルドだけじゃなくて、テストや配布用パッケージ作成も一括して make でやっています。 今回は整理も兼ねて、自分が普段どういう Makefile を使っているのか解剖していきます。 なぜ make を使うのか ビルドフラグ覚えるのが面倒だから、make は (Windows を除く) 大半のプラットフォームに入っていて使いやすいからというのが理由です。script/build みたいにシェルスクリプトを複数用意するのでもまあ良いと思いますが…。大半の Go プロジェクトは Makefile 置いてありますね。 make を使った開発フロー 基的には、リポジトリを git clone / go get -d した後に以下のコマンドを打てばアプリケーションをインストールできるようにしています。 $ cd $GOPATH

    Go でツール書くときの Makefile 晒す - Qiita
  • vscode-glideというglideのvscode extensionがあった - tehepero note(・ω<)

    2016 - 12 - 07 vscode-glideというglideのvscode extensionがあった vscode Go glide この記事は Visual Studio Code Advent Calendar 2016の7日目の記事です。にわかvscoderなのでたいした内容じゃないのであしからず。 qiita.com わたしと Visual Studio Code 以前はGoを IntelliJ IDEAの go-lang-idea-plugin で書いてたけど、vscodeはなかなか軽快に動くし、 vscode-go も出来が良いので乗り換えたのが今年一番のトピックかもしれません。 vscode関連のエントリもたまにしてます。 blog.stormcat.io blog.stormcat.io Goとvendoring Goでは1.6系から正式vendoringをサポ

    vscode-glideというglideのvscode extensionがあった - tehepero note(・ω<)
  • Go言語の忘れがちなtime fomatの話 - ○△□ - yudppp techblog

    この記事はGo Advent Calendar 2016 - Qiitaの7日目の記事です。 apexの話でもしようと思ったのですが時間がなく別の記事を書くことにしました。 Golang仕事で書き始めて、もう丸2年になりますが、未だに必要になると毎回ググって調べてから利用するものがあります。 その一つがtimeパッケージのフォーマットです。 GolangではいわゆるYYYYMMDDのような形式ではなく20060102といった特定の日時をベースにした文字列で表す必要があります。 123の順で振られていること、2006年なこと等なんとなくは覚えてきているのですが、確認をしないと不安で仕方なくなります。 この2年間で最低でも10回以上はgolang time formatでググり、その度にmattnさんの記事に辿り着いていました。 同じ記事を何度も見るのは自分に負けた気になるので悲しいです。

  • Goで真面目にコレクション操作ライブラリを作ってみた - Qiita

    はじめに この記事はGo Advent Calendar 2016 の7日目の記事です。 アローラ!azihsoynです。会社でQiita Teamを使ってますがQiitaの方に投稿するのは初だったりします。 今回はgoでコレクション操作をするライブラリ gollectionを作ったのでGoでライブラリを公開までの流れとTipsなどを交えて紹介しようと思います。 gollectionとは こういうことができるようになるライブラリです func main() { arr := []int{1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10} res, _ := gollection.New(arr). Distinct(). Filter(func(v int) bool { return v%2 == 0 }). Sor

    Goで真面目にコレクション操作ライブラリを作ってみた - Qiita
  • golangでテストをする - PartyIX

    最近golangを結構書いています. コンパイルも割と速いし,実行速度は言うまでもなく速い. クラスがないとか,例外がないとか,色々と言いたいことはあるでしょう.思想的には結構独特ですが,なれると普通に書けます. 今日はそんな中でテストの話をしようと思う. やっぱりBDDがいい golangにはテストをするための,testingというパッケージがある. golang.jp 使い方はこの辺の記事が参考になるでしょう. qiita.com assertがないというのが,結構主題かもしれない. ただ,使い方を見てみればわかる通り,これはExampleのテストでしかない. 個人的な意見なのだけれど,やっぱりパターンが複雑になればなるほど,分岐が多くなり,前準備が複雑になる. どうしてもBDDを導入したかったので,ginkgoを入れてみた. github.com matcherにはgomegaという

    golangでテストをする - PartyIX
  • 物理サーバを選定する際のポイント – Eureka Engineering – Medium

    Eureka EngineeringLearn about Eureka’s engineering efforts, product developments and more.

    物理サーバを選定する際のポイント – Eureka Engineering – Medium
  • go-swaggerを使う — そこはかとなく書くよん。 ドキュメント

    go-swaggerを使う¶ この記事は Go (その2) Advent Calendar 2016 の7日目の記事です。 APIからのコード自動生成ツールとして、swaggerが最近流行ってます(異論は認めます)。 この分野では、 goa が有名ですが、goaはあくまでGoのDSLから生成するという方式です。 swagger定義がすでにある場合には使えません。 swagger定義ありきの場合、今回説明する go-swagger を使うと便利です。 なお、この内容は https://github.com/shirou/swagger_sample にて公開しています。 go-swaggerとは¶ go-swaggerは、swagger定義からgoのサーバーおよびクライアントを生成してくれるツールです。 インストールはgo getでインストールしてもよいのですが、goの環境がない場合は do

  • CとGolangの境界 - Qiita

    C言語 Advent Calendar 2016を書く人が少ないので、、 C言語を触っていたころを思い出して書いてみようと思いました。 ここから 前回、マルチプラットフォーム対応したライブラリGolangを紹介しましたが、 実際のところ、どの程度c-sharedしたライブラリを利用する機会があるのでしょうか。 GocgoというC/C++のライブラリと連携する機能をサポートしており、 手軽にGoからC/C++APIを呼び出せます。 しかしC/C++からGoを呼び出す機能は、使いみちが結構限られており、 主な使いみちは、Goで実装された機能を 他言語から利用したい場合に限られるのではないかと推測します。 もうちょっと具体的にいうと、 Goで開発された機能を他言語にポーティングするのが面倒だから、 c-sharedでライブラリ化して他言語から呼び出しちゃおうっていうことです。 c-share

    CとGolangの境界 - Qiita
  • 個人開発程度のOCRサーバならHerokuに立てればいいじゃない - DRYな備忘録

    追記 2018/07/26 このプロジェクトDocker on Herokuに移行したので、一時的に「Deploy to Heroku」ボタンは動かなくなってます。Dockerでデプロイ可能なので、以下をご参考ください。 github.com 以下原文 このエントリはGo (その2) Advent Calendar 2016 - Qiitaの5日目です。 WETな方でもお世話になっております、otiai10です。 とある個人開発が、もうかれこれ3年ぐらい続いているんですが、ブラウザ上に描画されたちょっとしたテキストをOCR(文字認識)する要件があって、それをずっとさくらVPSPythonでやってましたが、3年もやってると、他の個人開発だったりとか、副業だったりとかでサーバリソースを一緒にしたくないなあ、っていうことが発生してきて、しかもべつに広告とかアフィとかで報酬が発生するタイプの個

    個人開発程度のOCRサーバならHerokuに立てればいいじゃない - DRYな備忘録
  • Golangのファイル入出力関係パッケージまとめ - Qiita

    はじめに Golangのファイル入出力について、各インターフェース、構造体を俯瞰するために一度整理しました。俯瞰できればちゃんと整理されてるみたいですね。 クラス図(のようなもの) ※クラス図はあんまり分かっていないので、誤りあったらごめんなさい。(つっこみください) ioパッケージ Reader/Writerのinterfaceを定義。 また、File以外の対象に対してのReader/Writer(struct)が定義されている。 type Reader interface Read(p []byte) (n int, err error) type Writer interface Write(p []byte) (n int, err error) osパッケージ File構造体を定義。 File構造体はio.Readerおよびio.Writerを実装している。 type File

    Golangのファイル入出力関係パッケージまとめ - Qiita
  • 実践的なGAE/Goの構成について #golang #gcpja - Qiita

    2016年のGCPはFirebaseのアップデートから始まって東京リージョン開設と色々進化がありました。GAEよりはその他のGCPのサービスに注力していたのかなという印象です。 でもアジア初のGAEが日というのは大きなニュースでした! 2017年にもどんどんデータセンターを増やすみたいで色々楽しみですね。 ちなみにGAEのChannel APIは来年シャットダウンされるらしいです。移行先としてリアルタイムの通信はFirebaseを使うのが公式のオススメのようです。 そう言えばGoogle Cloud PlatformGoogle Cloudに改名してましたけどGCだと口頭でもわかりにくいしググラビリティも良くないのでGCPって言っていきたいです。 (追記: GCPでいいようです) そして題の今年のGCPのアドベントカレンダーでは、皆悩んでいるらしいGAE/Goの構成についてです。 前

    実践的なGAE/Goの構成について #golang #gcpja - Qiita
  • Golangで環境変数をシュッっと良い感じに扱う - 人権真骨頂

    はじめに この記事は,Aizu Advent Calendar 2016の5日目の記事. www.adventar.org 前の記事は, id:mic_psm の micpsm.hatenablog.com です.自分も最近新型MacBookPro に変えてハッピー. 明日の記事は未定なので,書いてくれ!!!!! Golangで環境変数を扱うとき,普通はosパッケージを利用してこんな感じで扱うと思う. port := os.Getenv("PORT") だけど,大量の環境変数を扱うときとかダルかったりそもそも構造体によしなに入って欲しいかったり,よしなに型が付いて欲しいですね〜みたいな気持ちになる. そこで,このライブラリを使うと良い感じになる. github.com 例えば,以下のような設定を環境変数から読みたいとする. PORT int DEBUG bool default fa

    Golangで環境変数をシュッっと良い感じに扱う - 人権真骨頂
  • Golangでテストしやすいコードをかく - Qiita

    この記事は株式会社ネクスト(Lifull) Advent Calendar 2016の2日目の記事です。 みなさんはじめまして、ネクストのchissoです。 はじめてQiitaに投稿するのでドキドキしています。 そんなことはさておき、この記事では、Golangで自動テストしやすいコードを書く方法について、私なりに気づいたことをまとめます。 想定読者 普段よくRSpecを書いている Golang初心者 Interfaceってなに? 目指すところ 「メソッド単位でテストコードを実行できる状態にする」 これだけです。 私は普段Rubyを書くことが多く、RSpecを使ってメソッド単位でユニットテストを作成しています。 ですが、Rubyと同じ感覚でコードを書いて、RSpecと同じノリでGolangのテストを書こうとしてハマりました。 (静的型付けの言語・Interfaceに疎く、そもそもコードがダメ

    Golangでテストしやすいコードをかく - Qiita
  • init関数のふしぎ #golang - Qiita

    はじめに 知られているようで、案外知られてないことをQiitaに投稿していくのも良いと思い、軽いネタですがinit関数についてまとめたいと思います。 init関数とは init関数は特殊な関数で、パッケージの初期化に使われます。 以下のようにmainパッケージに書くとmain関数より先に実行されます。 mainパッケージでない場合は、importするだけで呼び出されます。 package main import ( "fmt" ) func init() { fmt.Println("hello, init") } func main() { fmt.Println("Hello, main") } Playgroundで動かす init関数は何に使うのか? 上記では、初期化に使うと書きました。名前からしてそれは想像できますよね。 init関数は基的にはパッケージ変数の初期化に用いられま

    init関数のふしぎ #golang - Qiita
  • Goを学びたての人が誤解しがちなtypeと構造体について #golang - Qiita

    はじめに タイトルをキャッチーかつ若干煽り気味にしたのは、そもそも記事を見てもらう確率を上げるためで他意はありません。なぜ読んでほしいのかというと、typeとstructについて、一部の機能に着目して、それがtypeとstructの全てだと誤解されるとマズいなと感じることが最近多いためです。 この記事で書いてあることは過去にもインタフェースの実装パターンや2016年度Go研修で取り上げていますが、今回は端的に分かりやすくなるようにまとめたいと思います。

    Goを学びたての人が誤解しがちなtypeと構造体について #golang - Qiita
  • docker composeでGoの開発環境を構築する - fine, later feeling

    この記事はTokyoSWアドベントカレンダー6日目の記事です。 業務では開発環境にDockerを使っていますが(といってもMySQLコンテナを立ててるだけ)、一から自分で設定したことはないので勉強のため導入してみようと思います。 ※Dockerの概要には触れません docker for macを入れる 開発環境はMacを想定してます。 少し前までならVirtualBox上にLinuxを乗せて更にそこにDockerを入れてコンテナを乗せて…というふうにやってましたが、その時代は終わりました。 今はMac/Win向けに公式が出してくれているのでそれを使います。 これでVirtualBoxともオサラバです。 docker for macを入れるとメニューバーにdockerちゃんのアイコンが表示され、 docker/docker-machine/docker-composeのコマンドが使えるように

    docker composeでGoの開発環境を構築する - fine, later feeling