タグ

golangに関するyamada55のブックマーク (26)

  • GoのためのGo

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

  • try - Go の新しいエラーハンドリング (Go 1.14で導入予定)(でしたが,却下となりました) - Qiita

    Go 1.14 で try というシンプルなエラーハンドリング方法が導入予定です。 2019/07/17 追記 議論の結果、try は一旦却下となりました。詳しくは提案者 Robert Griesemer 氏のコメントを参照下さい。 error Go でのエラーハンドリングはややタイプ数が多い。

    try - Go の新しいエラーハンドリング (Go 1.14で導入予定)(でしたが,却下となりました) - Qiita
  • Awesome Go : 素晴らしい Go のフレームワーク・ライブラリ・ソフトウェアの数々 - Qiita

    元記事: Awesome GO Awesome List in Qiita Awesome Ruby Awesome Java Awesome JavaScript Awesome Node.js Awesome Python Awesome Selenium Awesome Appium オーディオ/ミュージック オーディオを操作するためのライブラリ. EasyMIDI - EasyMidi は, 標準の MIDI ファイル (SMF) を作業するためのシンプルで信頼性の高いライブラリです. flac - FLAC ストリームをサポートするネイティブ Go FLAC エンコーダ/デコーダ. gaad - ネイティブ Go AAC ビットストリームパーサ. go-sox - libsox の Go バインディング. go_mediainfo - libmediainfo の Go バインデ

    Awesome Go : 素晴らしい Go のフレームワーク・ライブラリ・ソフトウェアの数々 - Qiita
  • Amazon.co.jp: Go言語による並行処理: Katherine Cox-Buday (著), 山口能迪 (翻訳): 本

    Amazon.co.jp: Go言語による並行処理: Katherine Cox-Buday (著), 山口能迪 (翻訳): 本
  • Portable Cloud Programming with Go Cloud - The Go Programming Language

    Eno Compton and Cassandra Salisbury 24 July 2018 Introduction Today, the Go team at Google is releasing a new open source project, Go Cloud, a library and tools for developing on the open cloud. With this project, we aim to make Go the language of choice for developers building portable cloud applications. This post explains why we started this project, the details of how Go Cloud works, and how t

    Portable Cloud Programming with Go Cloud - The Go Programming Language
  • Go & Versioning(vgo)を読んで大きな変更が入ったなと思った - Qiita

    Help us understand the problem. What is going on with this article?

    Go & Versioning(vgo)を読んで大きな変更が入ったなと思った - Qiita
  • Goを使ってDLLをクロスコンパイル on Linux - Kuro Usada ga!

    August 14, 2018 December 1, 2017 Kuro Usada 16 minute read mattn さんによる「GolangWindows の DLL を作る方法」という記事を参考に、cgo を使って Linux 上で DLL をクロスコンパイルします。 Go を使えば、Windows なしで伺かの SHIORI.DLL を作成することができます。ので、作ります。 この記事は Go Advent Calender 2017(その4) の 1日目の記事です。 2日目は kami_zh さんによる「Goで標準出力をテストする方法」です。 この記事で作成する SHIORI を基に、もうちょっと機能的にしたサンプルゴーストを作りました:github.com/kurousada/gohst 必要なもの Linux PC Go (たぶん)1.5以上 MinGW Wi

  • Go Binary Hacks - GoのシステムコールとGo本体のビルド #golang - Qiita

    はじめに Goは、Go1.5以降C言語による実装がなくなり、ほぼ全てがGoによって書かれています。そのためGoエンジニアは最悪Goのソースコードを読んで問題を解決することができるため、とても生産的な状態にあると言えます。 しかしGoがセルフホスティングだとしてもOSの機能群を呼び出すときには、C言語で実装されているシステムコールを実行しているはずです。では、Goではどのようにシステムコールを実行しているのでしょうか?また、どのようにそれらをビルドしているのでしょうか? この記事では、上記の疑問をGoのソースとドキュメントから読み解いていきます。 Goとシステムコール 一般のGoプログラマがGoでシステムコールを実行するには、syscallパッケージ、golang.org/x/sys/パッケージを利用します。1 関数一覧には見覚えるのあるシステムコールと同様の名前の関数が並んでいます。これら

    Go Binary Hacks - GoのシステムコールとGo本体のビルド #golang - Qiita
  • 404 Error

    Sorry, this page doesn't exist. Please check the URL or go back a page. 404 Error. Page Not Found.

  • Go言語とコンテナ

    長かった連載も今回が最終回です。 この連載では、プログラムがコンピュータ上で動くときに何が起きているのかを、Go言語のコードを通して覗いてきました。 今回は、その締めくくりとして、コンテナについて紹介します。 現在広く利用されているコンテナ技術であるDockerのコアは、Go言語製のlibcontainerというライブラリです。 このライブラリを使って自作のコンテナを仕立ててみます。 今回の原稿にあたっては、仮想化周りでsyohexさんに細かく指摘をいただきました。ありがとうございました。 仮想化 コンテナの話に入る前に、コンテナと目的がよく似た技術である仮想化について説明します。 仮想化は、コンテナよりも先に広く使われるようになった技術ですが、 歴史的にさまざまなソリューションがあり、どのような仕組みか、どのようなメリットがあるか、どのような制約があるか、どこにフォーカスするかで分類の

    Go言語とコンテナ
  • go-mp3: Pure Go な MP3 デコーダー - Qiita

    tl;dr (要約) GoMP3 デコーダー実装がなかったので、既存の C のものを移植し、 go-mp3 というライブラリを作りました。 背景 Pure Go な実装の MP3 デコーダーを探したのですが、自分の探す限りでは見つかりませんでした。 tcolgate/mp3 が最も近かろうと思われましたが、これはどうやらコンテナをデコードするのみのようです。 ないものはしょうがないので、自分で実装することにしました。フルスクラッチで実装するモチベーションはなかったため、既存の別言語の物を転用することにしました。今回は PDMP3 という Public Domain なデコーダーを採用しました。 PDMP3 は C で書かれていますが、これを手で Go に移植したわけです。できあがったものが go-mp3 です。 移植 移植にあたっては cgo を使って、まず PDMP3 素の状態で

    go-mp3: Pure Go な MP3 デコーダー - Qiita
  • Go言語のメモリ管理

    ソフトウェアにとってメモリは不可欠です。 実行する命令も、メモリにロードしなければ実行できません。 ソースコードに書かれた定数値も、いったんメモリにロードしないと使えません。 関数を呼び出すにも、スタックと呼ばれるメモリ領域が必要です。 スタック以外に、ヒープと呼ばれるメモリ領域が必要なこともあります。 今回は、Go言語のプログラマーが作成するプログラムの下で、どのようにメモリが管理され利用されるかを探ります。 Go言語のメモリ管理というとガベージコレクターの話を思い起こすかもしれませんが、ガベージコレクターについては連載では取り上げません。 メモリ確保の旅 コンピューターに接続されている物理的なメモリチップが、どのような過程を経てプログラムで使われるのか、順番に見ていきましょう。 (1): カーネル 最近のオペレーティングシステムでは複数のプロセスを同時に実行できます。 それらのプロセ

    Go言語のメモリ管理
  • loggingについて話そう - Qiita

    この記事は Let’s talk about logging の翻訳です。 Nate Finch による Go Forum への投稿で始まったスレッド を見てこの記事を書くことにしました。 この記事は Go を対象にしていますが、あなたのいままでのやり方を振り返ってみたら、同じ考え方がより広く適用できると思います。 なんでこんなに足りないの? 訳注: "Why no Love?" を、「(愛されてないから)機能が足りない」というニュアンスで解釈しましたが、自信が無いです。 Golog パッケージ はレベル付きのロギングを提供していません。なので手動で debug, info, warn, error のようなプレフィックスを書く必要があります。 また、 Go はパッケージごとにログの出力レベルを制御する方法も提供していません。 比較対象としてサードパーティーのロギングライブラリを見て

    loggingについて話そう - Qiita
  • GoとPythonとGrumpyの速度ベンチマーク ~Googleのトランスパイラはどれくらい速い?~ - Qiita

    GoPythonとGrumpyの速度ベンチマーク ~Googleトランスパイラはどれくらい速い?~PythonGoGoogleベンチマークgrumpy 概要 GrumpyというPythonからGoへのトランスパイラを使ってみた GoPythonとGrumpyでベンチマークを取ってみた 処理速度は Go >> Python >> Grumpyで非常にGrumpyが遅かった Grumpyとは Googleは1月4日(米国時間)、「Google Open Source Blog: Grumpy: Go running Python!」において、Goで開発されたPython実行環境「Grumpy」を発表した。GrumpyはGoで実装されたPython実行環境。Pythonのコードを一旦Goのコードに変換することで動作するコンパイラ方式を採用。並列処理性能が優れているほか、Pythonコードか

    GoとPythonとGrumpyの速度ベンチマーク ~Googleのトランスパイラはどれくらい速い?~ - Qiita
  • Go言語と並列処理(3)

    前々回は並行・並列の基Go言語の文法、前回はOSスレッドとの違いと、並列処理をサポートする標準ライブラリの紹介をしてきました。 今回は、並行・並列で処理を記述するためのパターンをいくつか紹介します。 さらに、Goによるプログラミングには直接関係しませんが、これまでの説明では登場しない並列処理のモデルとして、GPUのスレッディンングモデルを紹介します。 今回の記事の執筆にあたっては、GPUまわりの部分でエヌビディアジャパンの森野慎也さんにご協力いただきました。 感謝申し上げます。 Goにおける並行・並列処理のパターン集 Goにかぎらず、並列化を導入するとどれだけ効率が改善するかをあらわす数式として有名な、アムダールの法則というものがあります。 Pは並列化できる仕事の割合、Nは並列数です。 ある仕事のうち50%の部分が並列化可能だとすると、Nを無限大にしても(分母の右側の項がゼロになる)、

    Go言語と並列処理(3)
  • Go1.7のcontextパッケージ

    Go1.7ではgolang.org/x/net/contextがcontextパッケージとして標準パッケージに仲間入りする.そしていくつかの標準パッケージではcontextパッケージを使ったメソッド/関数も新たに登場する.contextパッケージは今後さらに重要な,Gopherは普通に扱うべき,パッケージになると考えられる.記事ではそもそもcontextパッケージとは何か?なぜ登場したのか?なぜ重要なのか?どのように使うべきか?についてまとめる. contextパッケージが初めて紹介されたのは2014年のThe Go Blogの記事 “Go Concurrency Patterns: Context”である.この記事ではなぜGoogleがcontextパッケージを開発したのか,どのように使うのか具体的な検索タスクを例に解説されている.まだ読んだことがない人はそちらを先に読むと良い. co

  • Golang の中国での盛り上がりと『Go Webプログラミング』 - belbomemo

    Goへの注目は国によって偏りがありますが、Google Trends で見る限り、圧倒的に中国が高いです。 もちろん人口の影響は大きいでしょうし、同じ10億人超えのインドに比べて、プログラミングに関心のある層が分厚いのも関係していると思います。 しかし他の国と見比べると、やはり中国の関心は相対的にも高そうに見えます。 例えば都市単位で見ても、上位3つは中国。 トップが深圳市なのは、何か専門教育期間やIT企業でも密集してるんでしょか。 こういう中国の盛り上がりと直接関連があるかは分かりませんが、『Go Web プログラミング』astaxie/build-web-application-with-golangというドキュメントの影響も気になります。 これは、上海のastaxie (astaxie)が中心となって、Github上でオープンに作成されたもので、書籍としても販売されています。 原文は

    Golang の中国での盛り上がりと『Go Webプログラミング』 - belbomemo
  • イベントループなしでのハイパフォーマンス – C10K問題へのGoの回答 | POSTD

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

    イベントループなしでのハイパフォーマンス – C10K問題へのGoの回答 | POSTD
  • PythonとGoでxmlのパース速度を比較してみる - Qiita

    AccessKey, SecretKey, AssociateTag を適当なものに変更して実行すると xmls ディレクトリに 145個のファイルが保存されます。1つのファイルには10冊までの情報が含まれ、合計1442冊の情報になります。 Python で実行 parse_amazon_xml.py # -*- coding:utf-8 -*- import time from lxml import objectify class ImageInfo: def __init__(self): self.url = '' self.width = '' self.height = '' class BookInfo: def __init__(self): self.asin = '' self.title = '' self.binding = '' self.author = ''

    PythonとGoでxmlのパース速度を比較してみる - Qiita
  • Go言語でJSONに泣かないためのコーディングパターン - Qiita

    いまになって見直してみると微妙な部分が多かったので、 この記事の Qiita での公開を終了することにしました。 いいね!&ストックして頂いた皆様、ありがとうございました。 Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    Go言語でJSONに泣かないためのコーディングパターン - Qiita