タグ

2017年10月9日のブックマーク (7件)

  • Go言語の型とreflect

    最近型ではまることがたびたびあったのでまとめてみました。 主に下記についてまとめています。 型とインターフェース 代入のルール 型の変換 型アサーション reflectパッケージの使い方 インターフェースの実装などについては触れていません。 型とインターフェース 名前を持つ型と名前を持たない型 型には名前のある型(named types)とない型(unnamed types)がある。 代入の可否など名前の有無で動作に違いのあるケースがある。 ざっくりいえば、英数字で表されているものが名前のある型、括弧やアスタリスクなどの記号を使って表されている型が名前のない型 名前のある型 下記のようにtypeを使って宣言されている型は名前のある型。

    Go言語の型とreflect
    oppara
    oppara 2017/10/09
  • Goプログラミング言語仕様 - golang.jp

    Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 はじめに この文書は、プログラミング言語Goのリファレンスマニュアルです。その他の情報、文書はhttp://golang.orgを参照ください。 Go言語は汎用言語ですが、システムプログラミングを念頭に設計されています。この言語は、強い型付け、ガーベージコレクション、並列処理をサポートする機能を持ちます。プログラムはパッケージという単位で構成され、依存関係は効率的に管理されます。今現在は、従来からあるコンパイル/リンクモデルによる実行バイナリ生成方式を採っています。 Go言語の文法は、コンパクトかつ規則的で、IDE(統合開発環境)のような自動ツールにとって解析しやすい言語となっています。

    oppara
    oppara 2017/10/09
  • Golangのデバッガdelveの使い方 - Qiita

    はじめに Goで書いたコードデバッグするのにdelveというデバッガ使ってみたら、なかなかに便利だったので基的な使い方をまとめておく。 delveのコードは以下のGitHubリポジトリで公開されてるんだけど、 https://github.com/derekparker/delve 使い方の説明が公式ドキュメントにあんまり書いてないので、実際に触ってみて、具体例を挙げて説明していこうかと思う。 インストール 手元の環境はMacなのでbrewで入れた。 ※他の環境の場合は以下の公式ドキュメントを参照して下さい。 https://github.com/derekparker/delve/tree/master/Documentation/installation

    Golangのデバッガdelveの使い方 - Qiita
    oppara
    oppara 2017/10/09
  • boto3からaws-sdk-goにしただけでCPU使用率が75%->10%になった - Qiita

    概要 社内の ZABBIX server の CPU 使用率が高くなってきたので、最小工数で解決したい CloudWatch からメトリクスを取得するスクリプトが python(boto3) で書かれてる とりあえずこのスクリプトを go(aws-sdk-go) に書き換える CPU 使用率が 75% から 10% に下がった。 結論 簡単なスクリプトがボトルネックになってそうなら、go で書き換えれば良いと思いました。 以下詳細 弊社のメトリクスの取得方法 プロジェクト毎に ZABBIX proxy を立て、proxy 経由で ZABBIX server が各メトリクスを取得・保存 1 で取得できないものは、ZABBIX server が全プロジェクト分 CloudWatch api で取得 CloudWatch でのメトリクス取得について 1回の api で取得しているのは、1インスタ

    boto3からaws-sdk-goにしただけでCPU使用率が75%->10%になった - Qiita
    oppara
    oppara 2017/10/09
  • クレデンシャルの適切な扱い方 ー AWS SDK for Goの場合 | DevelopersIO

    渡辺です。 AWS CLIやAWS SDKを利用すれば、AWSでリソースを自由に操作できます。 この時、認証情報(クレデンシャル)が必要ですが、適切に扱わなければなりません。 特にアクセスキーの扱いは慎重に行い、可能な限りアクセスキーを利用しないことが大切です。 AWS SDK fo Goでのクレデンシャルの扱いについてまとめました。 AWS SDK for Goを使う流れ はじめにAWS SDK for Goでのサービス利用手順について確認します。 例えば、EC2サービスを利用するには次のようなコードです。 sess := session.Must(session.NewSession()) svc := ec2.New( sess, aws.NewConfig().WithRegion("ap-northeast-1"), ) fmt.Println(svc.DescribeInsta

    クレデンシャルの適切な扱い方 ー AWS SDK for Goの場合 | DevelopersIO
    oppara
    oppara 2017/10/09
  • Go の Test に対する考え方 - Qiita

    この記事は Go Advent Calendar 2013 の 9 日目の投稿です。 今回は、 Go の testing というパッケージの使い方を解説しようと思ったのですが、 それだとつまらなすぎるので、合わせて Go が test というか assert についてどういうスタンスをとっているかを書いてみます。 Go でテスト さて、「テストのないコードはレガシーコード」などと言われて久しく、様々な言語が test (主に Unittest) について言語レベルでサポートしたり、デファクトなライブラリが確立したりといった状況が、今日では至って普通のこととなっています。 そんな言語や環境で、息をするようにテストを書いてきたみなさんが、はじめて Go でコードを書く時に見るべきは testing パッケージです。 http://golang.org/pkg/testing/ 命名規則 では、

    Go の Test に対する考え方 - Qiita
    oppara
    oppara 2017/10/09
  • glide - パッケージ管理のお困りの方へ - - Qiita

    glideってなんぞ? glideはGo1.5以降で使用可能なvendoring機能を利用した。 パッケージ管理ツールです。 (正確にはvendor管理) glideを使うと下記のようにvendorにプロジェクトに必要なパッケージがインストールされ、そのプロジェクト内でのみ利用が可能となります。 (通常のgo get, go installのようにグローバル管理ではない) - $GOPATH/src/myProject (プロジェクトのディレクトリ) | |-- glide.yaml | |-- main.go | |-- mySubpackage (サブパッケージ) | | | |-- foo.go | |-- vendor (この配下がglideで作成されるもの) |-- github.com | |-- Masterminds | |-- ... etc. 使いはじめた理由 実は、使

    glide - パッケージ管理のお困りの方へ - - Qiita
    oppara
    oppara 2017/10/09