タグ

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

  • Golang用のi18nパッケージを作ってみた - Qiita

    Goアドベントカレンダーその3です。前日はzaneli@githubさんのGo言語で「このなに?」でした。JSとオーバーラップした内容なので他のアドベントカレンダーとクロスポストしちゃえ、と思っていたんですが、Qiitaの仕様上ダメだったので個別にエントリーを書く羽目になりました。みなさん真似しないように。 以前golangでi18nというエントリーを書きましたが、新しいパッケージgithub.com/shibukawa/i18n4vを作りました。godocはこちら。 なぜ作ったかというと、以下のような機能を十分に満たす国際化機能が欲しかったからです。 キーで単語を置き換える(元の単語もキーとして使用できます) 複数形 フォーマッティング(変数に値を設定) 文脈からの翻訳の選択(性別など) 翻訳の言語を複数同時に扱える JavaScriptと共通の辞書ファイルを共有 !!new という

    Golang用のi18nパッケージを作ってみた - Qiita
    kasumani
    kasumani 2016/12/22
    Golang用のi18nパッケージを作ってみた Goアドベントカレンダーその3です。前日はzaneli@githubさんのGo言語で「この猫なに猫?」でした。JSとオーバーラップした内容なので他のアドベントカレンダーとクロスポストしちゃえ、
  • オブジェクト指向言語としてGolangをやろうとするとハマること - Qiita

    埋め込み(embedded)に要注意というお話です。あるいは、GolangC++のようなゼロオーバーヘッドを目指していると考えれば腑に落ちるよね、的な。 Goはオブジェクト指向言語っぽく使うことができます。次のような機能を提供しています。 interfaceを使ったコーディング 埋め込み(embedded)を使った実装継承 インタフェースは次のような感じです。 // ポニーは歩ける type Pony interface { Walk() } // アースポニーも歩けるので、Ponyインタフェースに渡せる type EarthPony struct { } func (ep *EarthPony) Walk() { fmt.Println("歩くよ") } インタフェースはメソッド宣言しかかけません。実装は書けません。でも、定義されたメソッドを持てば、それはすべて「これの仲間だ」という感

    オブジェクト指向言語としてGolangをやろうとするとハマること - Qiita
    kasumani
    kasumani 2016/12/15
    オブジェクト指向言語としてGolangをやろうとするとハマること 埋め込み(embedded)に要注意というお話です。あるいは、GolangもC++のようなゼロオーバーヘッドを目指していると考えれば腑に落ちるよね、的な。 Tags: from Pocket Jan
  • オブジェクト指向と20年戦ってわかったこと - Qiita

    この記事の内容 オブジェクト指向と10年戦ってわかったこと Twitterやはてブコメントを見たら、「わかりやすかった」というコメントもあったのですが、どちらかというとネガティブ方面なコメントが多く目につきました。マサカリという用語で忌憚なく意見を言う風潮については別にいいんですが、「わかりにくい」「間違っている」「古い」みたいなコメントは何も生み出さないし、みんなでニコニコポエムを投稿しあうやさしいインターネッツになったらいいなって思ったので、僕もオブジェクト指向について投稿しようと思います。 何原則? 3原則じゃなくて4では?みたいなコメントもあったのですが、別に3でも4でも5でも重要ではないかなって思います。この4原則の出どころがどこかは知らないですが、C++かSmalltalkあたり(このあたりの話を見かけたのはJava登場前だった気がする)をターゲットとしている気がします。Jav

    オブジェクト指向と20年戦ってわかったこと - Qiita
    kasumani
    kasumani 2016/05/11
    オブジェクト指向と20年戦ってわかったこと みんな記事に対して言いたいこと(どちらかというとネガティブ方面)なコメントが見受けられるけど、みんなでニコニコポエムを投稿しあうやさしいインターネッツになったらい
  • jsx-linker - Qiita

    jsx-linker というのは、JSXが生成するJavaScriptを後処理して、いろいろごにょごにょするツールです。将来的には他に吸収されて消えてなくなるかもしれないけど、安定するまではガンガン変更できるように独立したツールとして作りました。「コンパイルの後はリンカーだよねjk」ということでlinkerという名前にしたけど、何もリンクはしません。できることは、いろいろな環境用の起動用コードを追加したり、export部を拡張したり、といった感じです。 内部的にはesprimaを使ってJSXコンパイラで生成されたJSをパースして情報を収集し、JSXの出力したJSコードや収集した情報をhogan.jsxのテンプレートに渡すという仕組みになっています。テンプレートを書けばいろんな処理を追加できるようになっています。JSXで --minify をしていても問題なく動くようになっています。 exp

    jsx-linker - Qiita
    kasumani
    kasumani 2014/08/17
    jsx-linker jsx-linker というのは、JSXが生成するJavaScriptを後処理して、いろいろごにょごにょするツールです。将来的には他に吸収されて消えてなくなるかもしれないけど、安定するまではガンガン変更できるように独立したツ
  • ウェブアプリから生成したファイルをダウンロードさせる - Qiita

    mimeタイプに対して、クライアントがどのように振る舞うかは基的にクライアント次第という理解なんですが、じゃあ明示的に自動生成したファイルをダウンロードさせるにはどうするのか?というのをちょっと調べたら、情報が出てきたので追試しました。 テストコードは、ArangoDBのFoxx環境用のJSです。 /download_file が実際にファイルを生成して返すエンドポイントです。このページを叩くと、ダウンロードが始まります。mimeタイプの application/download がポイントです。あと、ファイル名も Content-Disposition で指定できます。 (function() { "use strict"; var Foxx = require("org/arangodb/foxx"), controller = new Foxx.Controller(applica

    ウェブアプリから生成したファイルをダウンロードさせる - Qiita
    kasumani
    kasumani 2014/03/08
    ウェブアプリから生成したファイルをダウンロードさせる mimeタイプに対して、クライアントがどのように振る舞うかは基本的にクライアント次第という理解なんですが、じゃあ明示的に自動生成したファイルをダウンロー
  • 1