タグ

programmingとgolangに関するnntsuguのブックマーク (16)

  • Go製WebToolKit Buffalo[概要編] - Qiita

    はじめに Golang UK Conference 2017で紹介されていたGo製WebToolKit。日ではまだまだ事例がなさそうなのと気になっていたのでREADMEと公式ドキュメントを読んで概要をまとめた。ここではBuffaloとは?を理解できるよう書いていく 概要 BuffaloはGoのWebエコシステムに沿ってWebアプリケーション開発が出来るソフトウェア。Goを使って楽に素早くWeb開発できるように設計されている。 ここでエコシステムと言ってるのはBuffaloは大半の機能を独自で実装しているわけではなく、既存のpackageを利用して成り立っているからである。 BuffaloはフロントエンドJavaScript、SCSSなど)からバックエンド(データベース、ルーティングなど)をWebプロジェクトに含めた状態で生成し起動する。生成したプロジェクトでは簡単にWebアプリケーショ

    Go製WebToolKit Buffalo[概要編] - Qiita
  • Treasure 2017 の研修資料は Go を学ぶのに最高だった - kakakakakku blog

    Go 関連のを読んだり,サンプルコードを写経するだけではなく,もっと実践的に勉強したいなと思って調べていたら,VOYAGE GROUP の Treasure 2017 と言うインターンシップの研修資料GitHub に公開されていることを知って,さっそく挑戦してみた.数日間取り組んでみて,とにかく素晴らしかったので,紹介したいと思う.suzuken 先生,素晴らしすぎます! Go入門 GitHub - voyagegroup/talks 学べるテーマ Go研修資料とは言え,幅広いテーマで Go を学ぶことができる点が素晴らしかった.ザッと挙げるとすると以下のようになる.テーマを見るだけで,もうワクワクしてくるのではないだろうか? アルゴリズム実装とテストコード フィボナッチ数 スタック CLI net/http curl 実装 スクレイピング実装 コンカレンシー goroutine

    Treasure 2017 の研修資料は Go を学ぶのに最高だった - kakakakakku blog
  • sync.Pool で瀑上げメモリ効率

    2017/06/21 CA.go #1

    sync.Pool で瀑上げメモリ効率
  • Golangのエラー処理とpkg/errors

    GoConでは毎回エラー処理について面白い知見が得られる.Go Conference 2014 autumn においては(実際のトークではないが)居酒屋にて@JxckさんがRob Pike氏から以下のようなテクニックを紹介してもらっていた. Errors are values - The Go Blog Golang Error Handling lesson by Rob Pike これはWrite(やRead)のエラー処理が複数続く場合にerrWriter を定義して複数のエラー処理を一箇所にまとめてコードをすっきりとさせるテクニックであった. そして今回の Go Conference 2016 spring のkeynoteにおいてもDave Cheney氏から(僕にとっては)新たなエラー処理テクニックが紹介された. Gocon Spring 2016 実際に使ってみて/コードを読ん

  • Building a Go Web App in 2017 - Gregory Trubetskoy

    Update: part 2 is here, enjoy. And part 3. And part 4. A few weeks ago I started building yet another web-based app, in Go. Being mostly a back-end developer, I don’t have to write web apps very often, and every time I do, it seems like a great challenge. I often wish someone would write a guide to web development for people who do not have all day to get into the intricacies of great design and j

  • Writing Microservices in Go | Nordic APIs |

    In Hemingway’s A Farewell to Arms, the heroic archetype Frederick Henry stated of martinis, ”I had never tasted anything so cool and clean. They made me feel civilized.” The days of Hemingway might have been absent of APIs and coding languages, but had he been around in the modern era, he would have probably said the same of Go, the unique, refreshing, future-friendly language taking the API world

    Writing Microservices in Go | Nordic APIs |
    nntsugu
    nntsugu 2017/05/18
    ちょっと古いけどメンティおすすめらしい。
  • goadesign カテゴリーの記事一覧 - 押してダメならふて寝しろ

  • Go言語のリアルタイムGC 理論と実践 | POSTD

    (編注:誤訳、意味の分かりづらい訳を修正しました。リクエストありがとうございました。) 毎日、Pusherは数十億のメッセージをリアルタイム、つまり送り元から宛先まで100ms未満で送信しています。どのようにしてそれを可能にしているのでしょうか。重要となる要因はGoの低レイテンシのガベージコレクタです。 ガベージコレクタはプログラムを一時停止させるものであり、リアルタイムシステムの悩みの種です。そのため、新しいメッセージバスを設計する際には慎重に言語を選びました。Goは 低レイテンシを強調している ものの、私たちは懐疑的でした。「当にGoを使えば実現できるのか? もしできるならどうやって?」 このブログ記事ではGoのガベージコレクタを、どのように機能し(トリコロールアルゴリズム)、なぜ機能し(こんなに短いGCによる一時停止時間の実現)、そして何よりも、それが機能するのかどうか(GCによる

    Go言語のリアルタイムGC 理論と実践 | POSTD
  • Golang の defer 文と panic/recover 機構について - CUBE SUGAR CONTAINER

    Golang の defer 文と、それにまつわる panic/recover 機構について調べたので、その内容を書き残しておくことにする。 Golang では defer 文を使うことで、それを呼び出した関数が終了する際に実行すべき処理を記述することができる。 例えば関数の中でオープンしたリソースを確実にクローズするために使われたりする。 試してみよう まずは、シンプルなサンプルコードを使って defer 文の動作を確認してみることにする。 内容的にはメッセージを標準出力に出すということしかやっていない。 ただし、片方には defer が付いていて、もう片方には何もついていない。 コードの記述順序的には "End" のメッセージが先に来ているが、実行するとどうなるだろうか。 package main import ( "fmt" ) func helloworld() { defer f

    Golang の defer 文と panic/recover 機構について - CUBE SUGAR CONTAINER
    nntsugu
    nntsugu 2017/05/10
    errorとpanic/recoverの使い所/使い分けの話
  • Javaのジェネリクス(総称型)って何? - Qiita

    総称型について一切知らなかった西森用の備忘録です。 調べるに至った経緯 先日、こんな感じの迷路のプログラムをJavaで作りました。 Javaで穴掘り法の迷路作成を実装してみた。 そこで先達の方(shiracamusさん)にバグを修正してもらったのですが、「ほほーなるほどー」と、そのプログラムに色々な知らないことが散りばめられていたので、調べようと思いました。 プログラム内に関数型インターフェースが使われていたので調べてみたのですが、そこでまずこのジェネリクスについてつまずいたので、備忘録としてここに記します。 ジェネリクス(総称型)って? 普段使ってるうえでよく目にするのがリストに入れる型の限定だと思います。 List<String> list = new ArrayList<String>(); こんな感じで。<String>の部分です。 基的にListは色々なものを入れることができま

    Javaのジェネリクス(総称型)って何? - Qiita
    nntsugu
    nntsugu 2017/05/10
    Genericsの由来がしっくりきた。Javaでコレクションに何か突っ込むときはObject型だったから、コンパイル時にバグを見つけられなかったのかー。確かにGenericsが欲しくなるよね。
  • 【話題の土善旅館】Go開発合宿2017 #golangjp | dotstudio

    Go合宿】 土善旅館は最高だったしさらにパワーアップしていた【25人でGo!】 4/22〜4/23 Goビギナーズ開発合宿! Go合宿募集ページ Swift愛好会の開発合宿に当てられて、Goビギナーズでも開発合宿を開催したのでレポートします! なおあまりビギナーはいなかった模様。 土善旅館さんの神っぷりについては至る所でまとめられているのですが、想像よりずっと神だった&&さらにパワーアップしていたのでみんなマジで行こう!という思いで綴ります。そして合宿を開催したい幹事さん向けに備忘録を! 当日のTogetterまとめはこちら。 -> 【土善旅館】25人でGo開発合宿!【isGOD】 短いまとめ長くなること必至なので、絶対に知って欲しい点だけ先にまとめ。 土善旅館は最高思ってたよりずっとキレイ、かつキレイにしようとしている感がある(至る所がリフォーム済み)静か。広い。庭がすごい。ご飯超豪華

    【話題の土善旅館】Go開発合宿2017 #golangjp | dotstudio
    nntsugu
    nntsugu 2017/04/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章 Go言語の特徴と環境構築―Googleが作った新言語 | gihyo.jp

    特集のはじめに Goは、2009年にGoogleにより発表されたオープンソースのプログラミング言語です。C言語の開発者Ken Thompson、UTF-8の開発者Rob Pike、memcachedの開発者Brad Fitzpatrickといった名だたるエンジニアによって開発されています。 Goはシンプルな言語仕様であるため学習が比較的容易で、豊富な標準パッケージが同梱されているためすばやく目的を達成できます。また、巨大なコードでも高速にコンパイルできるため大規模開発にも適しており、Windows、OS X、Linuxなどの環境に合わせた実行ファイルを生成するクロスコンパイルのしくみがあるため作成したプログラムを容易に配布できます。並行処理のサポートも充実しており、ミドルウェアの開発などにも適しているとされています。 特集では、2014年6月にリリースされた最新バージョンであるGo 1.

    第1章 Go言語の特徴と環境構築―Googleが作った新言語 | gihyo.jp
  • Golangでinterface{}を使ったJSONのパース - Qiita

    { "ok": true, "members": [ { "id": "U023BECGF", "team_id": "T021F9ZE2", "name": "bobby", "deleted": false, "status": null, "color": "9f69e7", "real_name": "Bobby Tables", "tz": "America\/Los_Angeles", "tz_label": "Pacific Daylight Time", "tz_offset": -25200, "profile": { "avatar_hash": "ge3b51ca72de", "first_name": "Bobby", "last_name": "Tables", "real_name": "Bobby Tables", "email": "bobby@slack.

    Golangでinterface{}を使ったJSONのパース - Qiita
    nntsugu
    nntsugu 2016/11/01
    interface
  • イベントループなしでのハイパフォーマンス – C10K問題へのGoの回答 | POSTD

    この投稿は、私が去年OSCONで行ったプレゼンテーションを基に作成しています。プレゼンよりは簡潔に編集し直し、プレゼン後にいただいたいくつかのフィードバックに応える形で記事を書いています。 Go言語に関してよく言われるのは、Go言語はサーバでうまく機能し、静的なバイナリや強力な並行処理、高いパフォーマンスを見せくれるということです。 この投稿では、その後半の2つの項目に関して焦点を当てます。プログラマとってGo言語とそのランタイムは、スケーラブルなネットワークサーバをスレッド管理やブロッキングI/Oを気にせずに書くのにどんなに有効かを説明していきます。 効率的なプログラミング言語に関しての議論 技術的な話に入る前に、Go言語をターゲットにしたマーケットを説明する2つの議論に関してお話したいと思います。 ムーアの法則 画像は以下より引用; 2005年5月にHerb Sutter氏が書いたDr

    イベントループなしでのハイパフォーマンス – C10K問題へのGoの回答 | POSTD
  • 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
    nntsugu
    nntsugu 2013/12/10
    "Assertが無い理由" - 言語開発者の思想を知る、FAQ読むのも重要だね
  • 1