タグ

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

  • Big Sky :: golang では変数の宣言位置が大事

    今日こんなツイートをした。 @mattn_jp よろしければベターな理由をm(_ _)m 名前空間を短くする作法なのはわかるのですがメモリやGCやコンパイラなど、どの辺に優しい感じですか? — Ryuji IWATA (@qt_luigi) April 5, 2017 qt_luigi さんからどうしてかを聞かれたので説明したいと思います。 golang では宣言した位置で初めて自動変数としてメモリが確保され、ゼロクリアされます。 for i := 0; i < b.N; i++ { var foo Foo bar, err := doSomething() if err != nil { continue } foo.v = bar fmt.Fprintln(ioutil.Discard, foo) } なので例えばこの様なコードで doSomething() が err を返した場合、

    Big Sky :: golang では変数の宣言位置が大事
  • 英語をやっていくためのDuo3.0デスクトップアプリを作った話 - 解せぬ日記

    以前、英語をやっていくためのDuo3.0アプリを作り直した話 - 解せぬ日記で書いたとおりReactNativeで作ったモバイルアプリを使ってDuo3.0をやってきたわけだけど、それをやっていると今度はデスクトップアプリが欲しくなってきた。やっぱりタイピングはそっちのほうが早く時間も節約できる。僕は普段、ArchLinuxを使ってて、仕事ではMacOSXを使っているので、気がついたらElectronを使って作ってた。Duo3.0アプリ芸人みたいな様相を呈してきたけど、僕はボキャビルがしたいだけなんだ。 成果 以下、成果になります。 vimeo.com ソースコードも置いとく。小さいのでElectronやってみたい人が雰囲気を眺めるには良いかも知れない。 github.com TL;DR Electronに関してはサンプル程度だが前に書いたこともあり、中身はJavascriptHTMLで書

    英語をやっていくためのDuo3.0デスクトップアプリを作った話 - 解せぬ日記
  • Gitのステージング領域の正体を探る | メルカリエンジニアリング

    ソフトウェアエンジニアの @DQNEO です。こんにちは。 Gitの内部構造を深掘りするシリーズ3回目です。 前回までのお話はこちら Gitのつくりかた – Mercari Engineering Blog Gitのコミットハッシュ値は何を元にどうやって生成されているのか – Mercari Engineering Blog 今日はみんなだいすき「ステージング領域」の中身について解説してみます。 ステージング領域とは何か? 簡単に説明すると「次にコミットしたときにコンテンツとして登録されるもの」リストです。(別名「インデックス」ともいいます。) このリストは、 git addやgit rmしたときに書き換わります。 (古くはcacheと呼ばれていました。内部実装やgit diff --cachedに今もその名残があります。) git addのマニュアルに説明があります。 Git – git

    Gitのステージング領域の正体を探る | メルカリエンジニアリング