タグ

golangに関するCLSmoothのブックマーク (14)

  • [Go]次世代イメージcimg/goとcircleci/go Orbsを使った2020年版CircleCIの環境構築 - My External Storage

    2020年になって、CircleCIのCI用の公式ベースイメージはcimg/base派生になった。 ただ、2020/06/07現在、Go向けの言語別公式ガイドの中身は古いままである。 cimg/goを使ったGo向けのCircleCIの設定をまとめる。 TL;DR CircleCIで利用するコンテナイメージに次世代版が登場した。 https://hub.docker.com/r/cimg/go 直接使わなくても、Orbsが便利 https://circleci.com/orbs/registry/orb/circleci/go go/mod-download-cachedでキャッシュとGo Modules周りがすぐ解決。 go-junit-reportgo getしなくてもよい gotestsumコマンドがデフォルトインストールされている GOPATHは変更されているので注意する /hom

    [Go]次世代イメージcimg/goとcircleci/go Orbsを使った2020年版CircleCIの環境構築 - My External Storage
  • Go が他の多くの言語での非同期プログラミングよりも優れている理由 - Qiita

    はじめに 非同期プログラミングと呼んでいるのは、ノンブロッキングIOと select, poll, epoll, kqueue のようなIO多重化を利用したネットワークアプリケーションを書くことです。 node.js で websocket 使ったチャットを書くとかそういうのです。 「他の多くの言語」とは、 Python (asyncio), node.js, C# などを想定しています。 Erlang や GHC なんかは Go に近いかも知れません。 async / await がない言語では、「コールバック地獄」や「deferred地獄」のような問題もありますがこの記事では扱っていません。 async / await のメリットを解説した他の記事を参照してください。 あとこの記事は主にランタイムに関する部分を扱っているので、「それは言語じゃなくて処理系の問題だ!」等の頓珍漢な揚げ足取

    Go が他の多くの言語での非同期プログラミングよりも優れている理由 - Qiita
  • Socketプログラミング · Build web application with Golang

    8.1 Socketプログラミング 多くの低レイヤのネットワークアプリケーションの開発者の目には一切のプログラムがどれもSocketのように映ります。すこし大げさかもしれませんが、だいたいこのようなものです。現在のネットワークプログラミングはほぼすべてにおいてSocketを使用してプログラムされています。このような場面を考えたことはありませんか?毎日ブラウザを開いてページを閲覧する際、ブラウザプロセスはどのようにしてWebサーバと通信を行っているのでしょう?QQを使ってチャットする時、QQプロセスはどのようにしてサーバまたはあなたの友達がいるQQプロセスと通信を行なっているのでしょう?PPstreamを開いてストリーミング映像を見るとき、PPstreamプロセスはどのようにして動画サーバと通信を行っているのでしょう?このように、すべてはSocketに依存して通信を行なっています。ひとつを見

  • Rust vs. Go

    This post is a head-to-head comparison of Rust vs. Go for NTPsec’s purposes. Read it bearing in mind that the NTP codebase has an unusual combination of traits - not as hard-core a systems-programming problem as an OS kernel, but with some critical regions that are soft realtime. This is an outside view, written after I had programming experience in Go but before I had any in Rust. The Rust parts

  • Writing An Interpreter In Goを読んだ

    Thorsten Ballによる“Writing An Interpreter In Go”を読んだ. 技術界隈のブログを見ているとたまにSteve Yeggeの「If you don’t know how compilers work, then you don’t know how computers work」という言葉に出会う.その度に学生のときにコンパイラの授業を受けなかったこと後悔し,社会人になって挑戦しようとして挫折したことを思い出して悲しい気持ちになる.@rui314さんのCコンパイラをスクラッチから開発してみたを読んではかっこいいなと思いつつ僕には無理だなあと心が折れていた. どの言語を書いていてもコンパイラ(もしくはInterpreter)は切っても離せないものであり内部の動きがどうなっているかを知っておきたいという欲求はプログラマーなら誰しもあると思う(少なくとも僕に

  • 「みんなのGo言語」が良かったので、自分のためだけのCLIツールを作ってみた - えいのうにっき

    言わずと知れた書籍「みんなのGo言語」。発売直後くらいに購入してはいたんだけど、目次あたりをパラパラ見て「あ、これは2,3日集中してガッとやりたくなるやつだ」と思って。で、タイミングを見計らっているうちに年末年始休暇に突入してしまったのだけど、そのタイミングでちゃんと「ガッ」とできたので、今日はそのお話をば。 みんなのGo言語[現場で使える実践テクニック] 作者: 松木雅幸,mattn,藤原俊一郎,中島大一,牧大輔,鈴木健太出版社/メーカー: 技術評論社発売日: 2016/09/09メディア: Kindle版この商品を含むブログを見る 僕と Go 言語 僕の Go 言語遍歴について少しだけ触れておく。 以前、個人的にちょっと作ってみたいツールがあった時期があって。そのとき既に Go がそこそこもてはやされていたこともあって、そのツールは Go で書いてみていた。↓がリポジトリなんだけど(コ

    「みんなのGo言語」が良かったので、自分のためだけのCLIツールを作ってみた - えいのうにっき
  • Go言語でTodoistのCLIクライアントを作ってみた - Qiita

    ブログのコピペです。 Go言語でTodoistのCLIクライアントを作ってみた Todoist というWebアプリケーションのタスク管理ツールが大好きで一年くらい使っている。 以前はddksr/cliistを使用してCLIで操作できていたのだが、Todoist APIのバージョンアップに伴い、使用できなくなってしまった。 アップデートをするようなのだが、いつになるか待つのも面倒だし、Go言語触ってみたかったので練習がてら新しくTodoistのCLIクライアントを作ってみたので紹介。 作成メモみたいなのはまた今度書く。 レポジトリ sachaos/todoist: Todoist CLI Client. I ❤️ Todoist and CLI. 使い方 タスク一覧 $ todoist l 64302291 p1 #Movie A CLOCKWORK ORANGE 64302368 p1 #

    Go言語でTodoistのCLIクライアントを作ってみた - Qiita
  • Dockerを使って本番さながらのGolangの環境を構築してIntelliJで開発する - とよぶ

    やっと季節は三寒四温の状態から抜け、もう春だと言っていい季節ですが、僕は痔に苦しんでいてやっとの思いで回復に向かっております。 春って素敵。 というわけで、業務で新しいプロジェクトGolangで実装する方針になってしまったので、仕方なくGolangの開発環境を構築します。 Scalaどこ行った。 僕自身はレガシープロジェクトに長いこといたので今更ながらDockerへの入門レベルの情報を書き並べつつ環境構築していきます。 準備 VirtualBoxのインストール Vagrantのインストール 環境 Mac OSX 10.9.5 Mavericks Vagrant 1.7.2 目標 MacのIntelliJからGolangのソースコードを修正して、Dockerコンテナ内に反映させ、 Macのブラウザ経由でアクセスしてレスポンスを確認できる。 仮想OSを準備してMacとファイルの同期を行う。

    Dockerを使って本番さながらのGolangの環境を構築してIntelliJで開発する - とよぶ
  • nginx-buildでnginxをビルドしよう - Qiita

    nginx-buildGoで書かれたnginxをビルドするためのツールです。Goの環境が整っていればgo getでインストールすることができます。 また、Goがインストールされてない環境向けに↓でビルド済みバイナリ(linuxmacの64bit版)を用意しています。 nginx-buildにできること nginx-buildは主にnginxのビルドにまつわる以下のタスクの大部分を自動化します。 nginxのソースコードのダウンロード configureのオプション指定 依存ライブラリ(PCRE、ZLIB、OpenSSL)のダウンロード、組み込み サードパーティーモジュールのダウンロード、組み込み、バージョン管理 筆者は過去にnginxのサードパーティモジュールを開発したり、数十台のnginxサーバを運用していたので、これらのタスクを頻繁に実行していました。しかし、ある時あまりにも面倒に

    nginx-buildでnginxをビルドしよう - Qiita
  • Big Sky :: golang で最近お気に入りの WAF「Goji」

    Web アプリケーションを書くときは今までずっと 小さい物は web.go 大きい物は net/http というスタンスを何故か貫いて来たんだけど、最近ようやく web.go をやめて goji を使う様になった。 Goji A web microframework for Golang https://goji.io/ 理由としては Sinatra ライクでありながら高度な正規表現マッチも使えるルータ それでいて net/http コンパチ 簡単に実装出来るミドルウェアスタック グレースフルシャットダウン そして何と言っても速い ミドルウェアも一般的な Web アプリケーションを作るには十分な物が既に揃ってます。 それでもやっぱり大きめな物は net/http で書くんだけど、小規模から中規模な物を一気にゴリゴリっと書く場合には goji は便利です。もちろん Windows でも動きま

    Big Sky :: golang で最近お気に入りの WAF「Goji」
  • Golang でのウェブ開発を考えてみる - Qiita

    Help us understand the problem. What is going on with this article? 仕事Golang を使ってウェブアプリを作ることになりそうなので、どんな構成がいいのか考えてみる。あくまで前提ありきの選択なので、何でもかんでも適用できるわけではない。 JS や静的ファイル部分は今のところ考慮していない。単によく知らないので。 突っ込み大歓迎です。これいいよ!とか教えてください 前提 多機能なフレームワークよりシンプルなフレームワークに色々組み合わせる方法をとりたい。 開発者は数名程度。Golang に精通している開発者が 1 名いる。残りはこれから。 開発者は Django での開発経験が豊富な人が多い 全員ウェブ開発経験はそれなりに積んでいる。 HTML と JSON 両方のパターンが存在するのでテンプレートエンジンは重要。 JS

    Golang でのウェブ開発を考えてみる - Qiita
  • MQTT as a Service: Sango のリリースをお手伝いしました — そこはかとなく書くよん。 ドキュメント

    MQTT as a Service: Sango のリリースをお手伝いしました¶ 日 2014年8月29日より、親会社の 時雨堂 はMQTT をインターネット上で簡単に利用できるサービスである「Sango」を提供開始しまし た。 https://sango.shiguredo.jp ダッシュボードはこんな感じで、MQTTへの接続情報が載っています。 GitHubアカウントがあれば、すぐに使いはじめることが出来ます。現在のとこ ろ無料プランだけが提供されており、加えて五百円プランを10月をめどに始め る予定です。無料プランはずっと提供する予定です。 詳細は プレスリリース を見てい ただくとして、ここでは軽く使い方と中身を紹介します。 Sangoの使い方¶ SangoGitHubアカウントで簡単にログインできます。 ログインすると MQTT接続情報 として、 - 接続先 : mqtt:/

    MQTT as a Service: Sango のリリースをお手伝いしました — そこはかとなく書くよん。 ドキュメント
  • text/template上で動く計算機を作る #golang - Qiita

    golangのテンプレート(例えば text/template)では、FuncMapを使うことで好きな関数を実行できます。ので練習がてら簡単な計算機を作ってみます: package example_test import ( "bytes" "fmt" "log" "text/template" ) func ExampleTemplateCalculator() { funcMap := template.FuncMap{ "add": func(a, b int) int { return a + b }, "sub": func(a, b int) int { return a - b }, "mul": func(a, b int) int { return a * b }, "div": func(a, b int) int { return a / b }, } var buf

    text/template上で動く計算機を作る #golang - Qiita
  • Go言語がダメな理由 | POSTD

    私はGo言語が気に入っていますし、多くの場面で使用します。現にこのブログもGoで書いています。Goは便利な言語ですが、優れた言語とは言えません。つまり、悪くはないけれど、十分ではないということです。 満足できない言語を使用する際は注意が必要です。注意を怠ると、その言語を次の20年間使い続ける羽目になるかもしれないからです。 私のGoに対する主な不満を文にまとめました。既に何度も指摘されていることも含まれていますが、中にはこれまでほとんど話題になっていない指摘もあります。 これから列挙する全ての課題には既に解決策があることを示すため、私が優良な言語と考えるRustやHaskellと比較して説明します。 汎用プログラミング 課題 誰でもさまざまな事柄に幅広く対応できるコードを記述したいと考えます。例えば数のリストの合計を求めるために定義した関数が、小数、整数、またその他の合計を求められるもの

    Go言語がダメな理由 | POSTD
  • 1