タグ

2017年3月12日のブックマーク (4件)

  • 高速に自作パッケージをGithubにリリースするghrというツールをつくった

    高速に自作パッケージをGithubにリリースするghrというツールをつくった tcnksm/ghr・Github ghrを使えば,1コマンドでGithubにリリースページの作成とそこへのパッケージのアップロードが可能になる.複数パッケージのアップロードは並列で実行される. デモ 以下は簡単な動作例. 上のデモでは,v0.1.0タグでリリースを作成し,pkg/dist/v0.1.0以下の6つのファイルを並列でアップロードしている(ghrをghrでリリースしている).1ファイルあたり,2.0M程度なのでまあま速いかと.アップロード結果は,ここで見られる. 背景 “Go言語のツールをクロスコンパイルしてGithubにリリースする” 上で書いたようにcurl使って頑張ってAPIを叩いていたが,やっぱシェルスクリプトは嫌だし,アップロードが遅い. Githubへのリリースを行う専用ツールでaktau

    taro-maru
    taro-maru 2017/03/12
  • golang で regexp パッケージを使うときに気をつけること - at kaneshin

    golang の Regexp は初期化の Compile コストがそこそこありますが、実は正規表現のパターンと対象となる文字列によって、初期化コストが無視できる(パターンと文字列に支配される)くらい遅くなります。よく言われる regexp の初期化コスト問題が無視できると言われても、正直、全く嬉しくないですね。 ただ、コーディング中に regexp パッケージを使わなければいけない場面は出てくるため、なるべくコストの掛からない実装を心がけています。 Compile/MustCompile 初期化コストはなくすため、グローバルに保持するようにします。 定義 var re = regexp.MustCompile("[a-z]{3}") func main() { fmt.Println(re.FindAllString("foobarbazqux", -1)) // => [foo bar

    golang で regexp パッケージを使うときに気をつけること - at kaneshin
    taro-maru
    taro-maru 2017/03/12
  • 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 を使ったテクニックあれこれ
    taro-maru
    taro-maru 2017/03/12
  • Go言語のエラーハンドリングについて - Qiita

    皆さまゴールデンウィークはいかがお過ごしでしょうか。 GW前に投稿しようと下書きにちまちま書き溜めていた記事ですが、スマホで誤ってゴミ箱ボタンを押してしまったがために一瞬で電子の藻屑と化してしまい泣きながら記事を書き直しています。 せめて削除時は確認ダイアログぐらい出るようにQiitaには改善してもらいたいものです。。 閑話休題。 Go言語で複数エラーハンドリングするためにいい方法ないかなーとネットの海を彷徨っていたところ、なかなかよさげな記事を見つけたので実例を交えて書き残していきたいと思います。 go1.6.2で検証 エラー処理の基 Go言語にはtry~catch~finallyの例外処理は存在しません。 http://golang.jp/go_faq#exceptions Go言語ではエラーを処理するためにerrorインタフェースが用意されています。 これはfunc Error(

    Go言語のエラーハンドリングについて - Qiita