タグ

golangに関するNyohoのブックマーク (152)

  • 並列対決 Elixir × C# × Go オマケでScala nodejs

    大量データを非同期ストリームで並列集計処理して速度対決。それぞれの処理系の特徴を掴んで行きます。

    並列対決 Elixir × C# × Go オマケでScala nodejs
    Nyoho
    Nyoho 2019/01/27
    いろんな並列処理対決
  • Swift プログラマが Go言語を学び始めた話(前編) - ペンギン村 Tech Blog

    私は Rust に賭けていた。ポストC++言語としての地位をどのプログラミング言語が取るか、もっといえば Rust vs Go でどちらが勝つかという話においてだ。 私が初めてGo言語を知った時は、こんな非力なプログラミング言語のどこが良いのだろうという感想だった。シンタックスはC言語を踏襲しているもののなんだか奇妙に見えたし、例外もジェネリクスも無いプログラミング言語が流行るわけ無いと思った。もちろんそれが意図的であるというWeb記事をいくつか読んだあとでもだ。それにGCを採用した言語がそれほどの高速さを得られるのかという点においても懐疑的であった。 しかし、予想に反してGo言語は相当受け入れられたらしい。 コンテナ界の世紀末覇者先輩であるDockerGo言語で書かれているし、私の愛するKubernetesやその周辺ツールまでもがGo言語で書かれているらしい。 それに比べて Rust

    Swift プログラマが Go言語を学び始めた話(前編) - ペンギン村 Tech Blog
    Nyoho
    Nyoho 2019/01/24
    なるほど確かにSwiftと並べて書いてある。
  • Go言語雑感 - 48's diary

    Go言語について入門書のチュートリアルくらいはちょっとやってたんだけど,実用でどのくらい使えるかテストしてみました。 ターゲットは例の如く将棋ですね。 どっかの移植でも面白くないので,池さんの参考書やらオープンソースの他のソフトを適当に読み散らかしながら自分なりの実装をしてみました。 特に速度や互換性などには特に考えない習作レベルです。bitboard使ってないです。 そいやpythonでもやったんですがね。 昨年末,盤の設計から局面表示,合法手生成辺りを2日くらいで作ってました。ちょっとした合間を見つけてUSIプロトコルに対応させてランダム対戦まで昨年内にできてました。 そして年明けの昨日から探索部を作成。 シンプルなαβ法を実装した段階ではシングルスレッドで200knpsくらい出てました。やねうら王には随分負けているがGo言語実装ってのを考えたら健闘してるかなぁって印象。 評価値を駒得

    Go言語雑感 - 48's diary
  • 「例外」がないからGo言語はイケてないとかって言ってるヤツが本当にイケてない件 - Qiita

    この記事は、Go3 Advent Calendar 2018 の8日目の記事です。 7日目は @codehex さんによる「Go でアプリケーションとクライアントのミドルウェアを作成する方法知ってますか?」でした。 日はネタ全開でお送りいたします。 Disclaimer(免責事項) はじめに言い訳というか、これを書いた経緯というか。 プログラミング言語をdisる人をdisる芸を見たいですね! — yet another (@Maki_Daisuke) 2018年10月11日 というツイートをいたしまして、言った手前自分でやるか、と思い立った次第です。 なので、ネタとしてお楽しみください。 なお、炎上した場合にも、それすらもネタとして楽しむ所存ですのでアシカラズ。 それでは、いってみましょう。 Go言語がイケてない…だ…と……? Go言語はイケてない言語としてよくdisられているが、その中

    「例外」がないからGo言語はイケてないとかって言ってるヤツが本当にイケてない件 - Qiita
    Nyoho
    Nyoho 2018/12/12
  • Goの開発環境でDockerを利用する - Qiita

    Go3 Advent Calendar 2018の9日目を担当するtheoden9014です。よろしくお願いします。 Makefileについて書こうと思ったのですが、内容が同じような記事が先に出てしまったようなので、少し趣向を変えたタイトルにしました。 この記事では、MakefileとDockerfileを上手く利用することによって、Docker内でのビルドやデバッグを簡単にする方法についてご紹介します。 この手法であれば、開発者は手元にはDockerをインストールするだけでGoを使った開発を行えるようになります。 今回は以下のリポジトリをベースとしてご紹介していきます。 https://github.com/theoden9014/go-startkit/tree/qiita 背景 Goで開発する際には$GOPATHの知識は必要不可欠です。 vgoの普及によって$GOPATHの重要性は下

    Goの開発環境でDockerを利用する - Qiita
  • Goでサーバー開発するときのMakefileを晒してみる - Qiita

    はじめに この記事は、Go3 Advent Calendar の4日目の記事です。 Goで開発する際にはテストの実行やlintの実施といった細々としたコマンドを Makefile にまとめることが多いと思います。 これにはコマンド入力の手間を省くのももちろんですが、チーム内でコマンド実行の方法を統一するという意味もあります。「手元でのテストはReadmeに書いてある通りに実行してね」と伝えるよりも、Makefileにまとまってる方が親切です。 ということで、何番煎じか分かりませんが今回は業務で使っている Makefile を晒してみたいと思います。 ちなみに主に以下のツールを利用しています。 パッケージ管理: dep 自動リロード: realize DB migration管理: goose Makefile 以下の物を使用しています。 setup: go get -u github.co

    Goでサーバー開発するときのMakefileを晒してみる - Qiita
  • Go言語のイケてない部分 - ぐるぐる~

    最近色々あって仕事Go言語を使っています。 色々割り切っている言語なので、こんなこと言ってもしゃーないんですが、言語設計はミスってるんじゃなかなぁ、と思わざるを得ない点が多々あります。 使い始めて1か月くらいなので間違ったことを書いているかもしれませんので、何かあれば指摘していただけるとありがたいです。 文ではネガばかり羅列していますが、ランタイムとツール周りは気に入っています。 Goのランタイムを使う、もっと洗練されたAlt Go的なものがあるといいのに(もしくはジェネリクスのったGo2を早くリリースしてほしい)、と思う日々です。 追記: なんか意図とは違った受け取られ方をしている方もいるので追記します。 この記事はあくまで、「Go言語を学ぶにあたって躓いた点」を列挙し、まとめ、理由を考えてみる(教えてもらう)ために書いたものです。 Go言語自体はDisってますが、Go言語ユーザーを

    Go言語のイケてない部分 - ぐるぐる~
    Nyoho
    Nyoho 2018/11/08
  • goroutineはなぜ軽量なのか - Carpe Diem

    概要 以前の記事で christina04.hatenablog.com Goはスレッドよりはるかに軽量なgoroutineでC10K問題を解決する、という話をしましたが、goroutineが軽量なのはなぜか?という理由を深掘りしたことがなかったのでしてみました。 環境 golang 1.11.1 Darwin 17.7.0 軽量と呼ばれる理由は2つ 大きく分けると以下の2つのポイントがあります スレッドに比べてメモリ使用量が低い スイッチングコストが低い それぞれ説明していきます。 goroutineがスレッドに比べてメモリ使用量が低いのはなぜか スタックとヒープのメモリの使い方を理解すると分かります。 ヒープはメモリの下層、プログラムコードのすぐ上にあり、上に向かって成長します。一方スタックは仮想アドレス空間の一番上にあり、徐々に下に成長していきます。 ref: イベントループなしでの

    goroutineはなぜ軽量なのか - Carpe Diem
    Nyoho
    Nyoho 2018/10/30
  • Big Sky :: 書評「Go言語による並行処理」

    O'Reilly Japan, Inc. 様に献頂きました。ありがとうございます。 そして献頂く際にお声を掛けて頂いた、書の翻訳を担当された ymotongpoo さんにもお礼を申し上げます。ありがとうございます。 書の訳は非常に素晴らしく、とても原文が英文であったとは思えないほど綺麗で、読んでいく中で「原文でどの様に表現されているんだろう」といった引っかかりも無く、とてもスムーズに読み進められました。 Go 言語に関わって随分と長くなってきました。初めて Go を知ってからユーザがどんどん増える様を見る事が出来るのは正直に言って非常に嬉しいです。 ふと Go の魅力は何かと聞かれたら幾つか挙げる事が出来ますが、間違いなく選ぶのが「非同期処理の簡単さ」です。これまで多くの開発者が OS スレッドで実現してきた非同期処理を、Go 言語は少ないイディオムとインテリジェントなランタイムを

    Big Sky :: 書評「Go言語による並行処理」
    Nyoho
    Nyoho 2018/10/23
    訳文がいいのはいいなあ。
  • ISUCON8 オンライン予選の利用言語比率 : ISUCON公式Blog

    オンライン予選の利用言語比率を公開します。オンライン予選は528組の参加があり、起動に成功したチームは508組となりました。 オンライン予選 利用言語比率利用率の全体ランキングは以下の通りです。 Go   203組 40.0% Ruby  106組 20.9% Perl   70組 13.8% Python 65組 12.8% PHP   44組 8.7% Node.js 20組 3.9% 選出場が決まった30チームに限定すると以下となります。 Go   19 63.3% Python 6 20.0% Perl   2 6.7% PHP   2 6.7% Ruby  1 3.3% ※複数言語のサーバーが立ってたときは(そのチームの持つサーバー郡の中で)最も立ってる台数が多かった言語を採用言語とみなしています ※ログインしていない場合は初期状態であるPerlとして換算されている場合がありま

    ISUCON8 オンライン予選の利用言語比率 : ISUCON公式Blog
    Nyoho
    Nyoho 2018/09/28
    Goがすごい
  • GoによるWebアプリ開発のキホン

    Webアプリケーションにおいて、マルチテナント型、つまり複数のユーザー組織がアプリケーションとデータベースを共有する構成にすることがあります。この構成の持つリスクとして、万が一バグにより他テナントの情報が見えてしまうとそれは情報漏洩となり、重大なインシデントとなってしまうことがあります。この重要性を考えると、「気を付けて実装する」だけではなく、仕組みで漏洩を防ぐような対策には価値があります。 そこで、今回はPostgresSQLの行レベルセキュリティと、SpringAOPによる処理を組み合わせて、ログインしているテナントのデータにしかアクセスできなくする仕組みを実現しました。 導入にあたり考慮した複数の選択肢、乗り越えたいくつかの壁についてご紹介します。 同様の課題を抱えている方の参考にしていただけるような情報をお伝えしたいと思います。

    GoによるWebアプリ開発のキホン
  • チョットできるGoプログラマーになるための詳解GoDoc - Qiita

    わかりましたか?よくわかりませんよね?まあ、godocとgo docは同じドキュメントツールですが、別のツールです。家と元祖みたいなものとして、長らく平行で提供されてきました。ちょうどこの記事を書いている少し前にリリースされた1.11で、godocの方がウェブだけになるとリリースノートに書かれました。 また、godoc.orgのサーバーはローカルのgodocコマンドよりも機能が増えていたり、テンプレートが微妙に違ったりします。とはいえ、ドキュメントを書くときはこれらの違いはそこまで気にすることはありません。 2020/09/19追記: 現在はpkg.go.devが稼働を開始し、godoc.orgのページにアクセスするとこちらへのリダイレクトをするかどうかを問い合わせるバナーが出ます。将来的にはこちらに一化されると思います。開発者が行うべきこと、記述すべきことは差はありません。このドキュ

    チョットできるGoプログラマーになるための詳解GoDoc - Qiita
    Nyoho
    Nyoho 2018/09/17
  • A Tour of Go

    A Tour of Go

    Nyoho
    Nyoho 2018/09/12
    便利だな
  • Goならわかる Linuxのメモリ管理

    ビジネスとデザインとエンジニアリングを繋ぐために 一人のエンジニアは何ができるか / What can a single engineer do to connect business, design, and engineering?

    Goならわかる Linuxのメモリ管理
  • さようなら ImageMagick - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、アプリケーション基盤チームの青木(@a_o_k_i_n_g)です。 一般的な Web アプリケーションがそうであるように、サイボウズのグループウェアにも画像をサムネイルで表示する機能があります。サイボウズでは日々数万件やそれ以上のサムネイルを生成しており、それらは全て ImageMagick によって生成されていました。 そこで得た知見はこちらの記事で公開されています。 blog.cybozu.io しかし現在、サイボウズから ImageMagick は消え去りました。その理由と、我々が取った代替手段について紹介します。 ImageMagick を外した理由 言うまでもなく ImageMagick は優秀なツールで、画像変換に関する何らかのサービスやツールを作る場合には採用の第一候補になることでしょう。あらゆる画像フォーマットに対応し、出力画像をきめ細かに制御できる膨大なオプシ

    さようなら ImageMagick - Cybozu Inside Out | サイボウズエンジニアのブログ
    Nyoho
    Nyoho 2018/08/23
  • サーバーレス開発を始めて6ヶ月間なので振り返りをしてみる - YOMON8.NET

    今の会社(BeeX Inc.)に来て、半年くらいサーバーレス開発をやってきました。 やっと人並みに(?)サーバーレス開発進められるようになったのと、開発が一息ついたので振り返りをしてみようと思います。 はじめに サーバーサイドについて 使用サービス LambdaGolangで書きました Golangで辛かったこと Golangで良かったこと クライアントサイド サーバーレス開発が大変だったこと 関連コンポーネントが多い 障害の原因特定が難しい ネットワーク絡むとハマりやすい 統合テストが大変 裏の動きが見えない 情報収集の難易度が高い サーバーレス開発で良いと思ったこと サービスの環境全部をコードで表現できる 処理の特性によっては圧倒的に安い OSに入らない、入れない 運用が楽になる(はず) まとめ はじめに 初めてのサーバーレス開発を手がけたこの数カ月を振り返ってみると、エンジニアとし

    サーバーレス開発を始めて6ヶ月間なので振り返りをしてみる - YOMON8.NET
  • Golang で Let's Encrypt の証明書を発行して使用する - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Golang で Let's Encrypt の証明書を発行して使用する - Qiita
    Nyoho
    Nyoho 2018/08/04
    すごいなこんな短くてできるのか。certbot のソース読んなことないけどここまで短くはないよね。
  • Big Sky :: golang の channel を使ったテクニックあれこれ

    golang の channel は他の言語に見ない独特のパラダイムを開発者に提供します。 単純にスレッド間でメッセージングをするだけでもC言語で書けばそこそこの量になったり、慣れていない人であればどう実装すればいいか分からないなんて事もあったと思います。しかし golanggoroutine/channel は、やっている内容の割にとても容易にスレッド間通信やキューイング、処理の受け待ち等を実装できる様になっています。尚、channel をどの様に適用したら良いかについては以下を参照下さい。 Big Sky :: Golang の channel の使い所 golang の特徴と言えば goroutine と channel ですが、その使いどころに悩む人もおられる様です。 goroutine は非同期に実行される処理、channel はその grout... http://mat

    Big Sky :: golang の channel を使ったテクニックあれこれ
    Nyoho
    Nyoho 2018/07/09
  • Go言語による2年半の新規プロダクト開発とその総括

    Fashionably flexible responsive web design (full day workshop)

    Go言語による2年半の新規プロダクト開発とその総括
    Nyoho
    Nyoho 2018/07/05
  • Go and Ruby-FFI

    Go and Ruby-FFI How to write a shared library in Go that can be loaded by Ruby-FFI. With the release of Go 1.5 we got access to a new buildmode called c-shared, which allows you to build shared libraries that Ruby-FFI can load. (Also, anything else that can load shared libraries) Inspiration Filippo Valsorda has already written a very nice article on Building Python modules with Go 1.5 but I natur

    Go and Ruby-FFI