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
How to Lead? Testimonial of a Lead Android Engineer
先日、Go Conference 2018 Springに参加してきました。キーノートはDave Cheney氏による、GoのHashmapはどのようにして効率的な実装を達成したのか、について(本記事のサブタイトルに、キーノートのタイトルを借用させていただきました)。復習も兼ねてHashmapの実装を覗いてみたので、簡単にまとめようと思います。 なお、英語のセッションだったので、正しく理解できていない部分があるかもしれません。お気付きの方は、ぜひご指摘ください。 Hashmapに関する他言語の問題点Dave Cheney氏によると、C++とJavaのHashmapには、それぞれ以下のような問題点があるとのことです。 C++: キーと値の組合せが異なるHashmapは、型としても全く別物となる。結果、コンパイル後のプログラムには、それぞれのHashmap実装が別物として含まれることになる。J
Golangの並行処理は強力である一方で同期処理を慎重に実装する必要がある.“Go 言語における並行処理の構築部材”にまとめられているようにGolangは様々な方法でそれを実装することができる.実現したいタスクに合わせてこれらを適切に選択する必要がある. この同期処理の機構として新たにgolang.org/x/sync/errgroupというパッケージが登場した.実際に自分のツールで使ってみて便利だったので簡単に紹介する. 使いどころ 時間のかかる1つのタスクを複数のサブタスクとして並行実行しそれらが全て終了するのを待ち合わせる処理(Latch)を書きたい場合にerrgroupは使える.その中でも「1つでもサブタスクでエラーが発生した場合に他のサブタスクを全てを終了しエラーを返したい」(複数のサブタスクが全て正常に終了して初めて1つの処理として完結する)場合が主な使いどころである. 実例
Ten Reasons Why I Don't Like Golang July 26, 2016 When I first started programming in Go, my summary of it was, “The good things are great and the bad things are weird and I can live with them.” After another three years and a few large projects in Go, I no longer like the language and wouldn’t use it for a new project. Here are 10 reasons why, in no particular order. Go uses capitalization to det
Untuk sebagian besar kasino online untuk membuat slot tersedia cukup pivotal karena itu adalah bagian utama dari kasino. Biasanya, situs perjudian menawarkan manfaat selamat datang murah hati yang memberi pelanggan… 最大の価値のためにあなたの財産を素早く売る方法 あなたがあなたの家のマーケティングを考えているなら、非常に最初にあなたのコミュニティのための地域の市場の問題を見てください。あなたの場所によっては、確かに実際にははるかに良い/さらに悪い機会が提供される可能性があります。オファーの準備ができている場合は、すぐ下にいくつかのハウツーの選択肢と良識のある提案があります。
依存がなく、テスト可能であり、クリーン。 Uncle Bobのクリーンアーキテクチャの概念を読んだので、これを私はGoで実装してみたいと思います。このアーキテクチャは、自分たちの会社である Kurio – App Berita Indonesia で使っていたものに似ていますが、少し違っています。大きな違いはなく、概念は一緒なのですが、フォルダ構造が違っています。 サンプルのプロジェクトとして、記事をCRUDで管理するリポジトリを https://github.com/bxcodec/go-clean-arch にpushしてあります。 * 免責条項 ここで使われているどのライブラリあるいはフレームワークも、利用を特別推奨しているものではありませんので、ご自身あるいはサードパーティによる同じ機能のものと入れ替えることが可能です。 基本的な考え方 ご存知のように、クリーンアーキテクチャで設計
When writing an HTTP server or client in Go, timeouts are amongst the easiest and most subtle things to get wrong: there’s many to choose from, and a mistake can have no consequences for a long time, until the network glitches and the process hangs. HTTP is a complex multi-stage protocol, so there's no one-size fits all solution to timeouts. Think about a streaming endpoint versus a JSON API versu
概要 結論から言うと、Streamで扱っているものはStreamのまま扱うです。 具体的にはio.Readerを毎回ioutil.ReadAllで[]byteに変換せずにそのまま使いましょうです。 なぜStreamを使うべきか Node.jsの例ですが、こちらで非常に分かりやすく説明されています。 yosuke-furukawa.hatenablog.com それを踏まえて考えてみると、Goの場合以下の2つが大きいと思います。 1. メモリの効率化 ioutil.ReadAllなどで一旦全て[]byteに変換すると、その分メモリを消費しますし、アロケーションやGCに依る速度低下が起きます。 一方io.Readerやio.Writerは各chunkの処理に同じバイトを使いまわすので、メモリの効率が良いです。 2. 標準パッケージの多くがio.Readerをサポートしてる io.Reader、
新しい言語に移行するのは常に大きな決断です。その言語をよく知る人がチームメンバーに1人しかいない時などは特にそうです。今年の初め、我々は Stream の主要言語を Python から Go に切り替えました。この記事では、なぜ私達が Python から Go に移行しようと決断したのか、その理由を説明します。 Go を使う理由 理由1 - パフォーマンス Go は速いです! Go は極端に速い。そのパフォーマンスは Java もしくは C++ に匹敵します。私達のユースケースでは、Go は Python より30倍速いです。Go と Java を比較したベンチマークはこちらです。 理由2 - 言語パフォーマンスの問題 多くのアプリケーションにとって、プログラミング言語は、単にアプリとデータベースを繋ぐものにすぎません。言語そのもののパフォーマンスは通常あまり重要ではありません。 しかしな
Unit-testing programs depend on I/O in Go @yuya_takeyama 2014/11/30@GoCon 2014 Autumn At first Mr. Pike, thank you for coming to Japan And thank you for great language 主催者の皆様、素晴らしいイベントと発表の機会をありがとうございます 楽天さん、会場をありがとうございます このスライドについて 発表に含まれるコードは GitHub リポジトリ中 にあります Pandoc はじめて使いました。便利な運用についてご存知の方教えてください... こんにちは 普段は PHP で Web アプリ運用してます コマンドラインツールは Ruby で書いてます コマンドラインツールは徐々に Go に寄せつつあります db2yaml dbya
The Go Blogの日本語訳を公開しています。修正は https://github.com/ymotongpoo/goblog-ja/ まで。 Go 2にむけて Toward Go 2 by Russ Cox はじめに (この文章は本日行われた Gophercon 2017 での私の発表の書き起こしで、Goコミュニティ全体にGo 2のための議論や計画をする中での支援を求めるものです。 動画が公開されたらこちらにリンクする予定です。) Rob Pike、Robert Griesemer、そしてKen Thompsonが新しいプログラミング言語について数日議論を重ねた後、2007年9月25日にRobが「Go」という名前を提案しました。 翌年、Ian Lance Taylorと私がチームに参加し、5人で2つのコンパイラと標準ライブラリを開発し、その成果が2009年11月10日のオープンソース
Essential Go is a free book about Go programming language. It's part of Essential Programming Books. It's written to provide clear and concise explanation of topics for both beginner and advanced programmers. Most examples are linked to online playground that allows you to change the code and re-run it. You can also quickly navigate to desired content using table of content on the left and search
はじめに 「sessionauth」を使ってのパスワード保存状態 パスワードのハッシュ化 パスワード文字列とハッシュ値を比較 ハッシュ値の生成・比較を1つのコードにまとめる 認証のデモ 出力結果 更新履歴 はじめに 本記事は、 ・bcrypt.GenerateFromPassword ・bcrypt.CompareHashAndPassword を使ってみる話です。 Go言語を使ったWeb開発で認証機能を実装したくて調べてみたら、「sessionauth」というパッケージがありました。 試しに sessionauth を追加って認証機能を実装してみることにする。 github.com 認証の有無のセッションを管理してくれるのは便利なのだが、パスワード格納(DBへの保存)の機能は提供されていないので、その部分は自ら実装する必要がありそう。 「sessionauth」を使ってのパスワード保存状
gistfile1.md Goプログラムのプロファイリング 原文 http://blog.golang.org/profiling-go-programs 本文 Robert HundtはScala Days 2011で「Loop Recognition in C++/Java/Go/Scala.」と題し論文の発表を行った。 論文ではC++, Go, Java, Scalaでのコンパイラの流動解析パスで使用するようなループ探索アルゴリズムを実装し、 これらの言語での典型的なパフォーマンスの問題についての結論を引き出すことに使用しました。 この論文で提示されたGoプログラムは非常に遅く動作します。今回この遅いプログラムを早くする事ができるか、 Goのプロファイリングツールを使用しながら実証します。 プロファイリングツールを使用して、具体的なボトルネックを特定し修正する事により Goループ探索
OpenCensus Easily collect telemetry like metrics and distributed traces from your services OpenCensus and OpenTracing have merged to form OpenTelemetry, which serves as the next major version of OpenCensus and OpenTracing. OpenTelemetry has now reached feature parity with OpenCensus, with tracing and metrics SDKs available in .NET, Golang, Java, NodeJS, and Python. All OpenCensus Github repositori
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く