Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...
回文かどうかを判定する関数を書きたくなりまして、goで実装してみました。 回文 - Wikipedia さくっとかけてしまったのでなんパターンか書いてみて一番早い書き方を探ってみました。 近頃仕事でJVM言語を書く機会が多いので、久々に違う言語でかくと楽しいもんですよねー 実装案 以下の4実装で比較してみました reverseして元の文字列と比較 文字列を最初/最後 => 2番目/後ろから2番目 => ...で比較 ↑をutf8モジュールを使って実装 ↑をutf8モジュール+rangeで回す実装 実装 parindromeかを判定する関数を複数パターン作って、一番早い書き方を調査 結果 というわけでutf8モジュール+rangeで回す実装が一番早いみたいです。 もっと良い実装を思いついた方がいましたら、ぜひ教えてください。 参考 utf8 - The Go Programming Lang
先日、 Goに初めて私のパッチが取り込まれ 、コントリビュータに仲間入りしました。 このパッチは、 database/sql.Stmt をヘビーに使った時に性能がだいたい16コア以上のコア数にスケールしないという問題を解決するものです。 こういった問題をどうやって調査するのかと、Goにパッチが取り込まれるまでの手順を紹介します。 背景 私は TechEmpower の FrameworkBenchmarks という、いろんな言語/フレームワークで同一のアプリを作ってベンチマークするというプロジェクトで、主にPython関連のメンテナをしています。 Goにも興味があるので、Ginというフレームワークを追加したりコードレビューに参加したりしています。 2014-05-01 に行われた前回のベンチマーク Round 9 では、 PEAK Hosting が実行環境に加わりました。この環境は、デュ
日時: 2014-11:30 10:00~18:00 場所: 品川シーサイド 楽天タワー イベントURL: https://github.com/GoCon/GoCon/blob/master/2014autumn.rst togetter: http://togetter.com/li/751700 スライドは見つけ次第、追記予定 当日の品川シーサイドはミニ四駆大会があった Keynote1: Rob Pike (@rob_pike) (45min) Title: Simplicity is Complicated Go の成功の要因について話したい ちまたで言われているような早さ、容易さ、ツール、ライブラリ、並行性、インターフェースも違う 単純さが要因だと私は思ってる でもそれについて理解してもらうのは難しい 収束しようとしている言語たち Lang.Next カンファレンスにて、様々な
Goの勉強を兼ねて、基本的なCURDを満たす、MVCなWEBアプリケーションを作りたいと思います。 データベース DBはSQLiteを使ってるサンプルが多いですが、せっかくなので今回はMySQL5.6を使うことにします。 ライブラリ GoでMVCフレームワークを作る場合、goji、gormあたりが定番のようなので、これらを使います。 バリデーションだとこれが定番、というのが見つからなかったので、今回は使いやすそうなvalvalにしました。 ライブラリのインストール 必要なライブラリを入れます。 $ go get github.com/wcl48/valval $ go get github.com/jinzhu/gorm $ go get github.com/zenazn/goji $ go get github.com/go-sql-driver/mysql どんな感じのWEBアプリケ
久しぶりの更新 GitHubの <URL:http://github.com/matz/streem> を公開したら驚くべき反響の大きさなので、本人もびっくりしている。 ので、ここでちょっとまとめておく。 もともとは日経Linuxの自作言語入門の連載のネタ 時系列的には2015年1月号で言語仕様を決めた(原稿提出は11月中旬) 2015年2月号で実装について解説(原稿提出は12月初旬) 2月号原稿には「github.com/matz/streemを参照のこと」と書いた 提出したその日に1月号発売 原稿提出後、原稿で解説した部分を実装し(300行程度)、githubにアップロード だれかが見つける hackernews, redditなどでバズる github issues, pull requestなどいっぱいくる 私が実装する前に Go で実装しちゃう人が出る (mattn/streee
この記事は Go Advent Calendar 2014 17 日目の記事です。 Go におけるパフォーマンスチューニングの話をします。 これらは Denco や Kocha などでのパフォーマンスチューニングの経験などから得た知見です。 処理系の話ではありませんのでご了承ください。 前提 プロファイリングを取った後、じゃあどうやって最適化するかというところの話です 「推測するな、計測せよ」 アルゴリズムやデータ構造は最適なものが選択されていると仮定します 小手先の最適化を行うよりアルゴリズム自体を変えたほうが圧倒的に良くなります。 この記事の各ベンチマークは Go 1.4 (go version go1.4 linux/amd64)で下記のコマンドにて取っています
はじめに こんにちは、Go界のコリン・ファースです。この記事はGo Advent Calendar 2014の21日目の記事です。昨日初サバゲーしたら、左手の薬指の爪のどまんなか含め、ピンポイントに左手の薬指3箇所を撃たれて、めっちゃ痛いです。 ところで今年のGo Advent Calendarではすでに2本の記事が正規表現に関する記事が上がっています。 Go で Language Benchmark Game に挑戦して惨敗した - Qiita by @methane Go - Luceneで使われてるFSTを実装してみた(正規表現マッチ:VMアプローチへの招待) - Qiita by @ikawaha @methane さんの記事の中では「Goの正規表現エンジンが遅い」という話が出ていました。また @ikawaha さんの記事では丁寧にVirtual Machine Approachな
An autocompletion daemon for the Go programming language IMPORTANT: This project is not maintained anymore, consider using https://pkg.go.dev/golang.org/x/tools/gopls, a tool which provides similar functionality and more, created and maintained by Go team. Gocode is a helper tool which is intended to be integrated with your source code editor, like vim, neovim and emacs. It provides several advanc
Intro この記事は Go Advent Calendar 2014 の 15 日目の記事です。 例えばネットワークのフレーム処理的なものを書いている場合、以下のようなコードがよくでてきます。 There are many codes like this, while writing a Network Frame Parser program. var type uint8 err = binary.Read(r, binary.BigEndian, &type) if err != nil { return err } var length uint32 err = binary.Read(r, binary.BigEndian, &length) if err != nil { return err } ... 関数の中では、各要素の長さ毎に読み込んで、読み込みに失敗したらエラーを
はじめに タイトルの通りvimで作るGoの開発環境が便利なのでまとめたものです。 特にコードリーディングに便利な設定を紹介します。 参考 本稿を書くに当たって参考になった記事です。 日付が新しい順に並べていますので下の方は古い記述を含んでいます。 vim-go-extra を公開致します。 http://vim-jp.org/blog/2014/09/02/vim-go-extra.html Go 1.2.1 の環境構築 Homebrew + Vim 編 (2014.03) http://qiita.com/methane/items/4905f40e4772afec3e60 Big Sky :: Vimを使ったGo言語開発手法 http://mattn.kaoriya.net/software/vim/20130531000559.htm goのvimコマンド「Fmt」が、実はquick
tech.kayac.com Advent Calendar 2014 11日目です。 今年の夏にカヤックはGo言語を積極的に推進していきます 宣言が出た影響で今年のAdvent Calenderはgoの話題多めとなっております。 去年辺りから周囲がにわかにgoづいてきた時に「仕事で使うようになったら勉強する(キリッ」 って言ってたらほんとに仕事で使うようになって現在勉強中の @handlenameがお送りします。 多分にもれずgo関連のはなしです。 Alfred便利 AlfredというMac用のアプリケーションがあります。 検索して候補を絞り込んで対応するアクションを実行する、というのが主な機能で、 Webで検索したり他のアプリを起動したりが素早く行えます。 基本的な機能は無料で使えるのですが、 有料のPowerpackを購入すると Workflowという拡張機能が追加ができるようになり
Dec 9, 2014 この記事はDocker Advent Calendar 2014の9日目です。 書こうと思ってたことが完全にネタかぶりしたので今日はどうでもいい小ネタを書きます。 dockerのイメージをDockerfileで作るにはベースイメージが必要ですよね。例えばgoを使ったWebアプリケーションを作ろうと思ったら公式のgolangイメージを使う人が多いだろうと思います。 公式の安心感もあるし基本的にそれでいいと僕も思うんですが、サイズが大きいんですよね。今手元でdocker pull golang:latestしたら448MBあるみたいです。 僕が欲しいのはgoでビルドしたらバイナリの実行環境であって全てが揃った完全なdebianではないのです。 ということで、今日のテーマは可能な限り小さいdockerイメージを作ることです。 scratchイメージ 公式にscratchと
この記事はGo Concurrency Patterns: Pipelines and cancellation - The Go Blogを自分の勉強用に翻訳したものです。 Go Concurrency Patterns: Pipelines and cancellation Introduction(最初に) Go's concurrency primitives make it easy to construct streaming data pipelines that make efficient use of I/O and multiple CPUs. This article presents examples of such pipelines, highlights subtleties that arise when operations fail, and intr
キャリアを充実させる『カギ』に!PR TIMES CTO金子達哉から学ぶアウトプット術 / output_method
5日目担当の@cubicdaiyaです。先月末のGoConではGoのカンファレンスなのにほぼnginxをビルドする話しかしてなかったので今日はちゃんとGoの話をします。 Goで書くサーバプログラム Goではサーバプログラムを書くためのユーティリティが豊富に揃ってる上に、ゴルーチンやチャネルを利用することで高いパフォーマンスが要求される環境でも十分な性能を発揮することができます。いつだったか「あれはHTTPサーバ書くための言語ですよ」なんて話をとあるエンジニアから聞いたことがあるくらいです。 例えば「Hello, World!」を返すだけのHTTPサーバであれば標準ライブラリのnet/httpを利用することで以下のように書くことが出来ます。 package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter,
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く