タグ

ブックマーク / qiita.com/goccy (5)

  • Chromeのストレージ永続化仕様を詳しく追ってみた - Qiita

    1. はじめに ChromeやFirefoxで使えるストレージ永続化機能はご存知でしょうか。 https://developers.google.com/web/updates/2016/06/persistent-storage に Persistent Storage という題で詳しく触れられていますが、通常 LRU で消去されてしまう IndexedDB や CacheStorage の内容を永続化してくれる機能だと理解しています。 CacheStorage と Persistent Storage の組み合わせは強力で、理論上大容量のアセットを永続化できるようになることから、PWAでのオフライン戦略や通信量削減戦略に対して強力な武器になると考えています。 しかし残念ながら、例によって Safari はサポートしていません。そのため、WebKit の利用を強制される iOS では、例

    Chromeのストレージ永続化仕様を詳しく追ってみた - Qiita
  • macOSでDockerを使ったGoのアプリケーション開発を爆速にするホットリローダを作った - Qiita

    はじめに メリークリスマス!! みなさんは Go のアプリケーション開発をどのような環境で行っていますか? 弊社ではゲームのアプリケーションサーバに Go を採用しており、開発は macOSDocker for Mac を利用しています。開発当初はこの構成による不満は特に感じていませんでしたが、1年半ほど経ってプロジェクトの規模が大きくなったことで、無視できないレベルで開発スピードを低下させる要因となってしまいました。 弊社ではアプリケーション開発にソースコードの自動生成を多用しており、その影響もあってかコードベースの Go のコードは 150万行を超える規模になっています。 加えて、ビルドする際は cgo 経由で利用している C++ のコードもそれなりの量絡んでくることもあり、 Docker for Mac を使った Docker コンテナ上でのビルドに要する時間は、 メモリ8GB

    macOSでDockerを使ったGoのアプリケーション開発を爆速にするホットリローダを作った - Qiita
  • GoでYAMLを扱うすべての人を幸せにするべく、ライブラリをスクラッチから書いた話 - Qiita

    この投稿は、 Go アドベントカレンダーの 6日目のものになります。 はじめに GoYAMLを扱う際にデファクトになっているのは、おそらく github.com/go-yaml/yaml でしょう。 実装はC言語で実装された libyamlGo に移植しつつ、 Go ならではの機能を足す作りになっているのですが、 cgo を使わずに pure Go で移植されており、開発者の気合を感じます。 枯れている libyaml を利用していることからも、 YAML の仕様を忠実に実装していることが期待できます。 ですが、このライブラリにはいくつか使いにくい点もあり、例えば以下のようなことはできませんでした 構造体を埋め込む場合に、埋め込む型をポインタで定義できない ( ※ ポインタなしは大丈夫 ) encoding/json とコンパチの インターフェース ( MarshalYAML()

    GoでYAMLを扱うすべての人を幸せにするべく、ライブラリをスクラッチから書いた話 - Qiita
  • Go Modulesに対応しつつ、Dockerコンテナの中でプライベートリポジトリを go get する - Qiita

    Go Modulesに対応しつつ、Dockerコンテナの中でプライベートリポジトリを go get するGoGitGitHubDockerdocker-compose TL;DR Dockerコンテナ x module aware mode x プライベートリポジトリ の組み合わせで go get できないことにお困りの場合は、 gitconfig 書き換えや ssh agent forwarding などをしなくても、 GOPROXY を使うとモジュール利用者が何も設定することなくコンテナ内で go get できるようになるよという話 1. はじめに 弊社では長らくGoのモジュール管理に glide を使っていましたが、Go Modules が Go1.13 で正式にサポートされることもあり乗り換えようとしました。 社内には多くの内製ライブラリがあり、それらをプライベートリポジトリで管理

    Go Modulesに対応しつつ、Dockerコンテナの中でプライベートリポジトリを go get する - Qiita
  • Go言語のために、すべてのORMに対応できるデータベースシャーディングライブラリを作った - Qiita

    1. はじめに Octillery というGo言語用のデーターベースシャーディングライブラリを開発したので紹介します。 すでにいくつかあるライブラリ ( evalphobia/wizard や go-pg/sharding )と異なる点は database/sql パッケージのインターフェースを実装するすべてのORMライブラリで利用できる database/sql の機能を直接使っていても利用できる 特定のデータベース実装に依存せずに利用できる設計になっている シャーディングアルゴリズムがプラガブルになっている あたりです。ライブラリの利用環境をなるべく限定したくないという思いから、特定の実装に依存しないような作りを目指して設計しました。 ライブラリの実装自体は昨年のうちに終わっていましたが、運用実績を作るために温めてきました。 ライブラリはすでに番環境で半年ほど運用されており、今も継続

    Go言語のために、すべてのORMに対応できるデータベースシャーディングライブラリを作った - Qiita
  • 1