タグ

goに関するmather314のブックマーク (19)

  • 「プログラミング言語Go完全入門」の「完全」公開のお知らせ | メルカリエンジニアリング

    メルペイ エキスパートチームの@tenntennです。稿は Merpay Tech Openness Month の11日目の記事です。 「プログラミング言語Go完全入門」の期間限定公開のお知らせでも書いたように、メルペイでは、社外の方向けにGopher道場という体系的にGoを学べる場を無償で提供してきました。Goの普及を目的にこれまでに8回開催し100人以上の方に参加していただきました。 また、Gopher道場の動画や資料はGopher道場 自習室として誰でも利用できるようになっており、現時点で300名以上の方が利用されています。 Gopher道場の資料のベースになっている「プログラミング言語Go完全入門」は、2020年7月31日までの限定公開になっていましたが、日より公開期限を撤廃し、完全公開することになりました。 また、日8月31日から始まる「Online Summer Int

    「プログラミング言語Go完全入門」の「完全」公開のお知らせ | メルカリエンジニアリング
  • Go の命名規則 | micnncim

    記事は Go Advent Calendar 2019 11 日目の記事です。 Go はシンプルな言語機能・シンタックスが特徴であり、命名規則にもそのシンプルさが表れています。 記事では、公式や著名な Go エンジニア、OSS などから見られる Go らしい命名規則を紹介します。 今更なテーマかもしれませんが、意外にも公私共々で命名規則が意識されていないコードを時折見かけるので、自戒も込めて記します。 誤った内容があれば Twitter でご指摘いただければと思います。 パッケージ名簡潔にするEffective Go では、short, concise, evocative なパッケージ名が望ましいとされます。 これはパッケージ名に限らずほとんどあらゆる命名において役立つ指針だと思います。 また、「パッケージ名は一言で何をするかを表すエレベーターピッチだ」という Dave Cheney

    Go の命名規則 | micnncim
  • JSON/YAMLで定義可能なHTTPモックサーバーMmockを触ってみる(セットアップ、シンプルなモックの定義、ブラウザでのアクセスログおよびモック定義一覧の確認まで) | DevelopersIO

    外部サービスとの連携などのテストを行う際、テスト環境に制約があったり処理に時間がかかるなどの理由でHTTPモックサーバーが欲しくなることがあります。 記事ではGo言語で書かれたHTTPモックサーバー、Mmockをご紹介します。 Mmock Mmock | GitHub MmockはGo言語で書かれたHTTPモックサーバーです。 README.mdでは、主な特徴として以下があげられています。 JSONもしくはYAMLでのモック定義 レスポンスにフェイク用のデータ or リクエストのデータを利用できる パラメータを含んだパスを定義可能 ワイルドカードによるマッチング メソッド、URL、クエリパラメータ、ヘッダ、クッキー、リクエストボディでリクエストをマッチング リスタートせずにモックを編集可能 ブラウザでのリクエストおよびログの参照 シナリオに沿ったステートフルな振る舞い 部分的なプロキシモ

    JSON/YAMLで定義可能なHTTPモックサーバーMmockを触ってみる(セットアップ、シンプルなモックの定義、ブラウザでのアクセスログおよびモック定義一覧の確認まで) | DevelopersIO
  • Go言語がスピード感あふれる新ロゴを発表。マスコットキャラクターのGopherくんは存続

    Go言語の開発チームは新しいロゴを策定し、公開しました。 下記はGoogleGo言語のエンジニアリングリードを担当するAndrew Bonventre氏のツイートです。 Go has a new look. Check it out...https://t.co/jZeVxP0XnB #golang pic.twitter.com/sni8Q6GfXj — Andrew Bonventre (@andybons) 2018年4月26日 Go言語は、Googleが中心となってオープンソースで開発されているプログラミング言語。WindowsmacOSLinux、FreeBSD、iOS、Android、そして最近ではWebAssemblyなど、さまざまなOSやCPUに対応したバイナリを生成できることが特長の1つとなっています。 Go言語がWebAssemblyをサポートへ。GOARCHは「

    Go言語がスピード感あふれる新ロゴを発表。マスコットキャラクターのGopherくんは存続
    mather314
    mather314 2018/05/01
    シンプルになりましたなぁ。
  • Essential Go

    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

    Essential Go
  • Goのパッケージ構成の失敗遍歴と現状確認

    この記事は Gunosy Advent Calendar 2017の5日目の記事です。前回の記事はGunosyのパーソナライズを支える技術 -ワークフロー編-でした。 GoAPIを書くときの問題僕の在籍するGunosyはGoを昔(?)から番採用しておりまして、ノウハウも潤沢に溜まっている企業だと言えます。 しかし、contextの扱いやベストなパッケージ構成、テスト、net/httpでAPIを書くノウハウなどなど、迷うことは多々あります。 これは弊社特有の事情ではなく、Goのサーバーサイドエンジニア全員にとっての問題です。中でも、パッケージ構成をどうすればいいのか(相互参照せずに快適に開発を進められるパッケージ構成とは)を見つけるのは結構難しく、各々のチームにお任せ、という状況です。 今回は上記の問題のうち、パッケージ構成に踏みこんで見たいとおもいます。会社でもよくパッケージ構成をどう

    Goのパッケージ構成の失敗遍歴と現状確認
    mather314
    mather314 2017/12/06
    失敗事例を示していただけてありがたい
  • なぜ私達は Python から Go に移行したのか - Frasco

    新しい言語に移行するのは常に大きな決断です。その言語をよく知る人がチームメンバーに1人しかいない時などは特にそうです。今年の初め、我々は Stream の主要言語を Python から Go に切り替えました。この記事では、なぜ私達が Python から Go に移行しようと決断したのか、その理由を説明します。 Go を使う理由 理由1 - パフォーマンス Go は速いです! Go は極端に速い。そのパフォーマンスは Java もしくは C++ に匹敵します。私達のユースケースでは、GoPython より30倍速いです。GoJava を比較したベンチマークはこちらです。 理由2 - 言語パフォーマンスの問題 多くのアプリケーションにとって、プログラミング言語は、単にアプリとデータベースを繋ぐものにすぎません。言語そのもののパフォーマンスは通常あまり重要ではありません。 しかしな

    なぜ私達は Python から Go に移行したのか - Frasco
  • Big Sky :: レーベンシュタイン距離を使ったあいまい grep コマンド「lsdgrep」作ってみた

    元ネタはずいぶんと昔の記事なのだけど。 編集距離 (Levenshtein Distance) - naoyaのはてなダイアリー ■ 編集距離 (Levenshtein Distance) 昨日 最長共通部分列問題 (LCS) について触れました。ついでなので編集距離のアルゴリズムについても整理してみます。 編集距離 (レーベン... http://d.hatena.ne.jp/naoya/20090329/1238307757 思い付きはまったく関係ない所から。 mp3 が数千ファイル入ってるフォルダで何かの手違いで同じ曲が入ってしまう事が結構あって重複取り去る作業してた。ID3が違ってるとMD5も違うのでレーベンシュタインの文字列距離を使ってファイル名が似てるの調べたら422ファイル消せる事が分かった。 — Vim芸人 (@mattn_jp) February 25, 2017 これを

    Big Sky :: レーベンシュタイン距離を使ったあいまい grep コマンド「lsdgrep」作ってみた
  • Gitea - Go製のGitリポジトリ管理サーバ

    Gitリポジトリは分散型ではありますが、一つ信頼できるサーバがある方が便利です。そこでGitHubやBitBucketなどが使われるわけですが、企業によってはセキュリティ上の理由で使えないこともあるでしょう。 そんな方に使ってみて欲しいのがGiteaです。日語化も行われているGitサーバです。 Giteaの使い方 トップページです。Goで書かれているのでサーバのOSを選ばず実行できるのが特徴です。 登録しました。個人のリポジトリはもちろん、組織にも対応しています。 新しいリポジトリを作りました。この辺りはGitHubに似ていますね。 ちゃんと日語化されています。 自分に割り当てられている課題があれば、ここで一覧表示されます。 プルリクエストです。 履歴です。 GiteaはWikiの機能があったりと、基的にはGitHubと同じような機能が並んでいます。さらに課題をプロジェクトを横断して

    Gitea - Go製のGitリポジトリ管理サーバ
  • Grumpy: Go running Python!

    The latest news from Google on open source releases, major projects, events, and student outreach programs. Google runs millions of lines of Python code. The front-end server that drives youtube.com and YouTube’s APIs is primarily written in Python, and it serves millions of requests per second! YouTube’s front-end runs on CPython 2.7, so we’ve put a ton of work into improving the runtime and adap

    Grumpy: Go running Python!
    mather314
    mather314 2017/01/05
    Pythonの並列処理は辛いからGoに変換できるようにしてみたよ!
  • Goから見たシステムコール (1/2)

    今回は、システムコールそのものについて深く掘り下げていきます。 システムコールとは何者で、ないとどうなるのか? システムコールを呼び出すコード(Go言語アプリケーション側)を探索しよう システムコールから、実際にOSカーネル内で仕事をする関数が呼び出されるまでのステップは? システムコールの呼び出しをモニターするツールの紹介 とはいえ、Goでアプリケーションプログラムを書くほとんどの人は、直接システムコールを呼び出すコードを書くわけではないでしょう。 また、OSを改造してシステムコールを自分で作成することもまれでしょう。 そのため、今回の記事にはサンプルコードを使ったハンズオンはあまりなく、手を動かしてコード化するネタはありません。 この連載のテーマは「プログラマの視点から、具体的で役に立ちそうな低レイヤーの情報を提供する」ことですが、今回に限っては座学的な内容です。 謝辞 今回の執筆にあ

    Goから見たシステムコール (1/2)
  • realize - Goの自動ビルド環境

    MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました Goのビルドを行う場合、コマンドを使って行うのが基です。多くのコンパイル系プログラミング言語ではそうやって開発するでしょう。しかし毎回入力するのは面倒になってくるのも事実です。 そこで使ってみたいのがrealizeです。Goプロジェクトのファイル変更をウォッチして自動コンパイルしてくれます。 realizeの使い方 realizeではパスを追加して、最後にrunを実行します。複数のGoプロジェクトが管理できます。 $ realize run Realize - 1.1 A Go build system with file watchers, output streams and live reload. Run, build and watch file changes wit

    realize - Goの自動ビルド環境
    mather314
    mather314 2016/11/16
    どうも依存関係の問題で現在ビルドできないっぽい?
  • 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

  • Go by Example

    Go is an open source programming language designed for building simple, fast, and reliable software. Please read the official documentation to learn a bit about Go code, tools packages, and modules. Go by Example is a hands-on introduction to Go using annotated example programs. Check out the first example or browse the full list below. Hello World Values Variables Constants For If/Else Switch Arr

  • Go言語での構造体実装パターン

    Go言語での構造体実装は、埋込や独自コンセプトのインターフェースといったGo言語独自の機能を理解して行う必要があります。 今年からGo言語を始めましたが理解が曖昧なままだと実装に迷うことが何度かありました。今回よい機会なので、Go言語での構造体実装パターンとしてまとめてみることにしました。 構造体実装パターン 実装パターンの洗い出しとして、GoFデザインパターンをGo言語で実装する手法をとりました。 その中で繰り返し現れる実装をGo言語での構造体実装パターンとしてまとめてみました。 コンストラクタ関数 エクスポートによるアクセス許可 インターフェースによるポリモフィズム 構造体によるポリモフィズム 構造体によるサブクラス・レスポンシビリティ 構造体による移譲 関数による移譲 以下、それぞれのパターンを解説していきます。 コンストラクタ関数 Go言語には構造体のコンストラクタがないため、構造

    Go言語での構造体実装パターン
  • Goのアンチパターン

    Go書いててなんとなく見えてきた Goでやっちゃいけないパターン WAF導入してらくらくWebアプリ WAF自体が現在群雄割拠状態。 WAF毎にハンドラインターフェースが違うので既存コードつなぐにはラッパーが必要。 どのWAFもLL言語に比べるとまだまだフィーチャーの網羅範囲が狭い。 なのでもちろんLL言語ほど楽には書けないことが多い。 リフレクション使いまくりでトータル性能はLL言語並みに遅いのもある。 Go1.7のcontextパッケージの導入で標準のHTTPハンドラが復権する可能性があり更に荒れる予想。 追記: 楽できるのを期待してWAFを導入するの「やっちゃいけない」とまでは言い過ぎだったかもしれないけれど例のsqlでPrepareを正しく使えていないで性能出なかった件とか、当面WAFを使うなら自分で概ね中身を理解して使う覚悟が必要。 構造体メソッドにロジックを詰め込む Goの思想

  • Go Fake S3 - Go製の開発用Amazon S3クローン

    MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました Webアプリケーションを提供する上でAmazon S3をストレージとして使いたいと思う人は多いはずです。便利なのですが、開発時にもお金がかかってしまうこと、オフライン時に使えないのが難点です。 そこで使いたいのがAmazon S3クローン系のシステムです。今回はGo言語で作られたGo Fake S3を紹介します。 Go Fake S3の使い方 Go Fake S3を立ち上げます。localhost:9000で立ち上がります。ベースにBoltDBを使っています。 $ ./s3f_darwin_amd64 -db tests3.db -port ":9000" 2016/04/23 11:43:55 locals3 db created or opened 後はhostsファイルに “

    Go Fake S3 - Go製の開発用Amazon S3クローン
    mather314
    mather314 2016/06/23
    一瞬VoltDB使ってんの?と思ってしまったけど、BoltDBはGo用のkey-valueストアなのか。
  • Go言語によるCLIツール開発とUNIX哲学について - ゆううきブログ

    この記事ははてなエンジニアアドベントカレンダー2014の8日目です。 今回は、Go言語でサーバ管理ツール Mackerel のコマンドラインツールmkr を作るときに調べたこと、考えたこと、やったことについて紹介します。(mkr は現時点では開発版での提供になります。) コマンドラインツールについて コマンドラインツールを作るにあたって、@deeeet さんの YAPC Asia 2014 での発表資料が非常に参考になります。 書籍 UNIXという考え方ーその思想と哲学 の内容をベースに、コマンドラインツールはどうあるべきかということが丁寧に説明されています。 上記資料から引用させていただくと、コマンドラインツールにおいて重要なポイントは以下の7つであるとされています。 1つのことに集中している 直感的に使える 他のツールと連携できる 利用を助けてくれる 適切なデフォルト値を持ち設定もでき

    Go言語によるCLIツール開発とUNIX哲学について - ゆううきブログ
  • Gogs, an alternative to Gitlab :: Juan B. Rodriguez

    tl;dr Gitlab is a great git hosting service, almost as powerful as Github. But, is there something out there that’s comparable to Gitlab/Github, yet simpler to manage ? I think Gogs does the job. Introduction These days, Github has become the preferred platform to host code. With its many great features, ease of use and access, almost all software developers are happily using it. Also, since Googl

    Gogs, an alternative to Gitlab :: Juan B. Rodriguez
    mather314
    mather314 2015/03/17
    Go実装のGithubクローンとな?
  • 1