タグ

Goに関するwate_wateのブックマーク (35)

  • 29. ダーマの神殿に行ってみて(k1LoW) | PHPの現場

    @k1LoW さんと ロリポップ!マネージドクラウド、ダーマの神殿、開発した OSS、受託開発とサービス開発などについて話しました。 ロリポップ!マネージドクラウド 開発と運用を別け隔てなく行うチーム マネージドクラウドの技術スタック Haconiwa ダーマの神殿に行ってみて 低レイヤに下りていく アプリケーションエンジニアから見た IaC インフラから学ぶかコードから学ぶか 低レイヤや言語仕様への興味 適度な刺激 不特定多数のアプリケーションを動かす基盤作り 技芸のコード化 OSS GoRuby awsspec を GO に書き換えるか? OSSを仕事の時間で書くかプライベートの時間で書くか 作りたいものネタ帳 メールを HTTP で転送するツール 一押しの OSS 受託開発とサービス開発の違い 0 から 1 の経験 変更への強い心 緊急事態宣言 Show notes ロリポップ

    29. ダーマの神殿に行ってみて(k1LoW) | PHPの現場
  • はてなサマーインターン2018の講義資料を公開しました。今年はGo言語&新カリキュラム! - Hatena Developer Blog

    Webアプリケーションエンジニアの id:tanishiking24 です。 今年で11年目となるはてなサマーインターンを2018/08/13 〜 2018/09/07という日程で開催しました。 developer.hatenastaff.com はてなサマーインターンの期間は前半と後半に分かれています。前半課程でははてなのサービス開発・運用に必要な技術を習得するための講義パート、後半課程では実際にサービスやシステム開発チームに参加していただいています。 はてなサマーインターンの講義パートで使用している「はてな教科書」はGitHubで公開しておりますが、今年のインターンで利用した講義資料を新たに公開しました。 今年のサマーインターンではカリキュラムを一新し、前半課程で利用するプログラミング言語にはGo言語を採用し、また進化するWeb技術に対応するためにデータベース基礎、インフラ、Webの基

    はてなサマーインターン2018の講義資料を公開しました。今年はGo言語&新カリキュラム! - Hatena Developer Blog
  • dep · Dependency management for Go

    Dependency management for Go

    wate_wate
    wate_wate 2018/02/01
  • 最近の私的 Golang 開発環境 - Qiita

    あらかじめ予防線を張っておくと Go 言語の開発環境で「これ!」という正解はない。特にチームで開発している場合は,チームの流儀に従うのが最善だと思っている。なので,この記事は「こういうやり方もあるよ」という参考程度に見ていただけるとありがたい。 GOPATH の構造 皆さん御存知の通り,環境変数 GOPATH は Go 言語パッケージや開発環境を指定するものだが,実は複数のパスを指定できる。Windows 環境ならこんな感じにセミコロン(;)で区切って指定する。

    最近の私的 Golang 開発環境 - Qiita
    wate_wate
    wate_wate 2018/01/29
  • GoのためのGo

    Go言語はシンプルさを念頭にデザインされた言語です。仕様は単純明瞭さのために小さく収められていますが、そのため表現力に欠けているとか、コードが冗長になるという印象を持つ人も多いでしょう。有名なところでは、ジェネリクスや例外といった機能が(今のところ)存在しないことが問題にされることが多いようです。 一般に、ソフトウェアエンジニアリングというものは書かれる言語だけに依るものではありません。視点を拡げてGoを取りまくツール群を含めて見てみると、go fmt や goimports といったツールが広く使われていること、また go generate コマンドの存在などを見ても、Goという言語には、人間のプログラミングを機械によってさまざまな面から補助しようという態度があります。

    wate_wate
    wate_wate 2017/01/28
  • GitHub - urfave/cli: A simple, fast, and fun package for building command line apps in Go

    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 - urfave/cli: A simple, fast, and fun package for building command line apps in Go
    wate_wate
    wate_wate 2016/12/22
  • golangでCLIを作ったときの備忘録

    先日、SPMというコマンドラインツールをリリースしましたが、golangでコマンドラインツールを作成する上で便利だったツールや考え方等を備忘として残します。 CLIのベース 3rd Partyのライブラリを利用せずとも標準のflagパッケージで処理を書けますが、色々と面倒なのでurfave/cliのパッケージを利用しました。このパッケージは以下のように、簡単にサブコマンドやフラグを定義できます。 app := cli.NewApp() app.Name = "spm" app.Usage = "Salesforce Package Manager" app.Version = APP_VERSION app.Commands = []cli.Command{ { Name: "install", Aliases: []string{"i"}, Usage: "Install salesfo

    wate_wate
    wate_wate 2016/12/22
  • エディタの壁を越えるGoの開発ツールの文化と作成法

    Go言語LT大会で発表した資料です。 https://go-beginners.connpass.com/event/55768/

    エディタの壁を越えるGoの開発ツールの文化と作成法
    wate_wate
    wate_wate 2016/11/06
  • 分散環境でユニークなidを発番するGo製プロダクト「katsubushi」のご紹介 - KAYAC engineers' blog

    Lobiチームの長田です。 今回はkatsubushiというアプリケーションを紹介します。 https://github.com/kayac/go-katsubushi katsubushiはid発番を行うアプリケーションです。 水平分割されたデータベースに対してユニークなidを発番するために作られました。 なお、記事中の「データベース」はMySQLを指します。 katsubushiの特徴 Snowflakeと同様のアルゴリズムでid発番 SnowflakeはTwitter社がかつて公開していたid発番アプリケーションです。 https://github.com/twitter/snowflake/tree/master 既にメンテナンスされておらず、masterブランチにはその旨が書かれたREADMEしか残されていません。 タグが切られているので、ソースコード等はそちらで確認できます。

    分散環境でユニークなidを発番するGo製プロダクト「katsubushi」のご紹介 - KAYAC engineers' blog
    wate_wate
    wate_wate 2016/10/28
  • Golangにおけるinterfaceをつかったテスト技法 | SOTA

    最近何度か聞かれたので自分がGolangでCLIツールやAPIサーバーを書くときに実践してるinterfaceを使ったテスト技法について簡単に書いておく.まずはinterfaceを使ったテストの基について説明し次に自分が実践している簡単なテクニックをいくつか紹介する. なおGolangのテストの基については @suzuken さんによる「みんなのGo言語」 の6章が最高なので今すぐ買ってくれ! 前提 自分はテストフレームワークや外部ツールは全く使わない.標準のtestingパッケージのみを使う.https://golang.org/doc/faq#Packages_Testing にも書かれているようにテストのためのフレームワークを使うことは新たなMini language(DSL)を導入することと変わらない.最初にそれを書く人は楽になるかもしれないが新しくプロジェクトに参入してきたひ

  • 低レベルアクセスへの入り口(1):io.Writer

    今回は、Go言語がOS直上の低レイヤーを扱いやすくするために提供している io.Writer インタフェースの紹介をします。Go言語がシステムプログラミングを簡単に行える言語でありつつも、それなりに少ない記述量で比較的高速で、それでいて多くのことが達成できるのは、これから説明するようなインタフェースにより、低レイヤーが扱いやすい構造になっているからです。インタフェースと、インタフェースに対して提供されるさまざまなサービス関数が、Go言語の安い、早い、うまいの秘密です。 io.WriterはOSが持つファイルのシステムコールの相似形 前回の記事では "Hello World!" プログラムの関数呼び出しをデバッガーでたどり、最後にシステムコール syscall.Write() が呼び出されているようすを見ました。OSでは、このシステムコールを、ファイルディスクリプタと呼ばれるものに対して呼び

    低レベルアクセスへの入り口(1):io.Writer
    wate_wate
    wate_wate 2016/10/06
  • GitHub - alexflint/gallium: Build desktop applications in Go and HTML.

    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 - alexflint/gallium: Build desktop applications in Go and HTML.
    wate_wate
    wate_wate 2016/09/25
  • gRPC

    Why gRPC?gRPC is a modern open source high performance Remote Procedure Call (RPC) framework that can run in any environment. It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking and authentication. It is also applicable in last mile of distributed computing to connect devices, mobile applications and browsers to backend

    gRPC
  • Go言語の低レイテンシGC実現のための取り組み | POSTD

    (訳注:2016/9/28、頂きましたフィードバックを元に記事を修正いたしました。) 私たち Twitch では、通信が大変混み合うシステムの多くで Go を採用しています。ライブ映像を配信したり、何百万人というユーザにチャットサービスを提供したりする場合に直面する問題を考慮すると、Goはそのシンプルさや安全性、パフォーマンス、読みやすさの点で良いツールだと言えます。 しかしこれは、私たちにとってGoがいかに素晴らしいツールかを説明する、よくある記事ではありません。Goで現在実装されているランタイムにより行き詰まったいくつかの局面をどう打開するか、さらに、私たちはそうした限界に達した時にどう対応したらいいのかについて書いたものです。 これからお話しするのは、「Go 1.4からGo 1.6へのGoランタイムの改善が、どのようにしてガベージコレクション(GC)の停止時間を20倍も改善することに

    Go言語の低レイテンシGC実現のための取り組み | POSTD
  • 「みんなの Go 言語」は忙しいプログラマこそ読むべき本 - 誰かの役に立てばいいブログ

    @songmu 氏からご恵贈いただいた「みんなの Go 言語」(みんGo)、早速拝読しました。 書評としてはタイトル通り、なのですがそれではあんまりなのでもう少し。 書でも述べられている通り、Go 言語は早ければ一日で大体学べてしまう学習効率の良さが魅力です。最大の魅力と言っていいかもしれません。コンパクトな言語仕様に実務で必要な周辺ツールが揃っているため、初学者から歴戦のプログラマまで活用範囲が非常に広いのです。 さて、その Go 言語をさらに活用するための書。お手に取ってみればわかりますが 150 ページ弱で薄いです。読むのに半日あれば十分でした。の内容も余計なことは書かれておらず、「こんな便利な機能があるよ」くらいなあっさり風味で淡々と役に立つ情報が並べられています。 ああ、わかっているなと。 Go 言語の最大の魅力と思う学習効率の高さを、文字通り形にした、それが「みんなの

    「みんなの Go 言語」は忙しいプログラマこそ読むべき本 - 誰かの役に立てばいいブログ
    wate_wate
    wate_wate 2016/09/09
  • Go言語を学びたいエンジニア必見の記事・スライド12選

    Go言語の主な特徴として、「実行が高速である」「言語仕様がシンプルである」という点が挙げられます。 発表当初の対応OSはOS X(Mac)とLinuxのみでしたが、Go 1.0(2012年3月リリース)からはWindowsGo 1.4(2014年12月リリース)からはAndroidも対象となり、開発範囲が広がりました。 次世代のプログラミング言語として注目を集めるGo言語をこれから学ぼうと考えている方のために、Go言語が基礎からわかるサイト・記事、スライドを12個まとめてご紹介します。 Go言語が学べるサイト・記事 golang-jp - The Go Programming Language http://golang-jp.org/ Go言語の家サイト(golang.org)を日語に訳しているサイトです。 未翻訳の部分もありますが、英語が苦手な方にはとても役に立つサイトでしょう。

    Go言語を学びたいエンジニア必見の記事・スライド12選
    wate_wate
    wate_wate 2016/07/26
  • Go入門

    This document summarizes a microservices meetup hosted by @mosa_siru. Key points include: 1. @mosa_siru is an engineer at DeNA and CTO of Gunosy. 2. The meetup covered Gunosy's architecture with over 45 GitHub repositories, 30 stacks, 10 Go APIs, and 10 Python batch processes using AWS services like Kinesis, Lambda, SQS and API Gateway. 3. Challenges discussed were managing 30 microservices, ensur

    Go入門
    wate_wate
    wate_wate 2016/06/24
  • 6年間におけるGoのベストプラクティス | POSTD

    稿は、QCon London 2016で行った講演の内容に基づいています。スライドとビデオは近日中に掲載予定です) 2014年に開催された最初のGopherConで、私は「 Best Practices in Production Environments(番環境でのベストプラクティス) 」と題した講演を行いました。 SoundCloud の私たちはGoのアーリーアダプターで、その時点までに既に2年近く、番環境向けの様々なGoコードを書き、実行し、メンテナンスしていました。そして私たちはいくつかのことを学んだので、その教訓をまとめ、多くの人に伝えたいと思ったのです。 それ以来、私はフルタイムでGoを使う仕事を続けています。SoundCloudではその後の活動やインフラチームで、そして現在は Weaveworks で Weave Scope や Weave Mesh の開発に使ってい

    6年間におけるGoのベストプラクティス | POSTD
    wate_wate
    wate_wate 2016/05/28
  • Mac上にGoの開発環境を構築する〜下準備編 | おそらくはそれさえも平凡な日々

    同僚がGoを始める上で、案外まとまった資料が無さそうだったので書いてみることにしました。 Macでhomebrewが入っていることが前提です。事前に brew update をおこない formula を最新のものにしておくと躓くことが少ないでしょう。 Goのインストール % brew install go エントリ執筆時点では、1.6.2 が入ります。Goはメジャーバージョンが同じ場合は、後方互換が保たれているので、基的に新しいやつを入れて問題ありません。 環境変数の設定 $GOPATH だけを決めればOKです。$GOPATH はどこでも良いのですが、ここでは $HOME/dev を $GOPATH に設定します。また、 $GOPATH/bin に $PATH も通しておきます。 export GOPATH=$HOME/dev export PATH=$GOPATH/bin:$PATH

    Mac上にGoの開発環境を構築する〜下準備編 | おそらくはそれさえも平凡な日々
    wate_wate
    wate_wate 2016/05/19
  • Go Fake S3 - Go製の開発用Amazon S3クローン

    MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました Webアプリケーションを提供する上でAmazon S3をストレージとして使いたいと思う人は多いはずです。便利なのですが、開発時にもお金がかかってしまうこと、オフライン時に使えないのが難点です。 そこで使いたいのがAmazon S3クローン系のシステムです。今回はGo言語で作られたGo Fake S3を紹介します。 Go Fake S3の使い方 Go Fake S3を立ち上げます。localhost:9000で立ち上がります。ベースにBoltDBを使っています。 $ ./s3f_darwin_amd64 -db tests3.db -port ":9000" 2016/04/23 11:43:55 locals3 db created or opened 後はhostsファイルに “

    Go Fake S3 - Go製の開発用Amazon S3クローン