タグ

ブックマーク / qiita.com/Jxck_ (7)

  • Go の Test に対する考え方 - Qiita

    この記事は Go Advent Calendar 2013 の 9 日目の投稿です。 今回は、 Go の testing というパッケージの使い方を解説しようと思ったのですが、 それだとつまらなすぎるので、合わせて Go が test というか assert についてどういうスタンスをとっているかを書いてみます。 Go でテスト さて、「テストのないコードはレガシーコード」などと言われて久しく、様々な言語が test (主に Unittest) について言語レベルでサポートしたり、デファクトなライブラリが確立したりといった状況が、今日では至って普通のこととなっています。 そんな言語や環境で、息をするようにテストを書いてきたみなさんが、はじめて Go でコードを書く時に見るべきは testing パッケージです。 http://golang.org/pkg/testing/ 命名規則 では、

    Go の Test に対する考え方 - Qiita
  • Golang の sort パッケージ - Qiita

    intro sort パッケージは slice などをソートするデフォルト実装や、独自の比較ロジックを定めるインタフェースなどが提供されています。 Go のインタフェース、継承による拡張などの考え方的にも面白いので解説メモ。 Sort function sort パッケージには Sort 関数が定義されている。 そのシグネチャは以下。 つまり、ここに sort.Interface インタフェースを満たしたものを渡すと、中で Quick Sort, Heap Sort, Insertion Sort を、条件に応じて使い分け、いい感じに並べ替えてくれる。 Sort Interface sort.Interface のインタフェースは以下。 (Go では、メソッドを持っていればインタフェースは満たされる) type Interface interface { // Len is the num

    Golang の sort パッケージ - Qiita
  • DELETE_FLAG を付ける前に確認したいこと。 - Qiita

    DELETE_FLAG という思考停止フラグ DELETE_FLAG という boolean の列が DB 設計でよく話題になります。 論理削除という言葉で上手に論理武装し、スキを見せるとすぐに入れたがる人がおり、 一方でそれにつよく反対する人もいます。 自分の経験としては、広義の論理削除はありえると思いますが、実現方法が DELETE_FLAG だとなった時、それはあまり考えてないでなんとなくパターンとして盛り込んでる場合が多いと感じます。 ただし、設計に唯一の答えは無いので、もしかしたらそれが妥当な設計である場合があるかもしれません。 今回は「DELETE フラグがなぜダメなのか?」などという話をするつもりも、アンチパターンだと断言するつもりもありません。 問題は、仕様をきちんと把握すると、「最適な設計は DELETE_FLAG ではない」という場合が有って、その場合は、その最適な設計

    DELETE_FLAG を付ける前に確認したいこと。 - Qiita
  • Go のクロスコンパイル環境構築 - Qiita

    Go でクロスコンパイル Go の特徴であるクロスコンパイルの便利さと、その方法はよく語られますが、意外に「そのための準備工程」が知られてない気がしたので、ここで再度クロスコンパイル自体の便利さと、クロスコンパイル方法、そしてその準備方法を書いておきます。 クロスコンパイルの旨味 Go は、 1 つのソースコードから様々な OS 向けのバイナリを生成するクロスコンパイルをサポートしています。しかも、対象の OS が無いとビルドできないわけではなく、例えば MacWindows 用、 Linux 用、 Plan9 用のバイナリを一気に生成するといったことができます。 しかも、 32bit マシンで 64bit 用のバイナリを生成することもできます。 "Write Once Run Anywhere" でお馴染みの Java との違いは、 Java の場合は Class ファイルという形

    Go のクロスコンパイル環境構築 - Qiita
    a2ikm
    a2ikm 2015/01/09
  • IE10 以下を切る場合の JavaScript チェックリスト - Qiita

    この投稿は、 JavaScript Advent Calendar 18日目の記事です。 更新履歴 こちら をご覧下さい JavaScript の書き方をアップデートする JavaScript Good Parts で書かれているような JS の書き方は、古くなりつつある部分も多いです。 正直なところ、自分はあのが「今でも」良書だとは思っていません。 初学者に勧めることもしません。まんべんなさと普遍性と客観性から「パーフェクト JavaScript」 を勧めています。 その頃と比べると、 JavaScript をとりまく環境は変わりました JavaScript の進化に合わせて書き方もアップデートしていくべきなので、今回は分かりやすいしきい値として 「IE10 以下を切れるとしたら」 という前提で、列挙してみます。 たとえば XHR2 や File API に依存したサービスをやる場合な

    IE10 以下を切る場合の JavaScript チェックリスト - Qiita
  • npm で依存もタスクも一元化する - Qiita

    タスク管理 package.json にはパッケージの依存を書いて npm install するのが基だけど、 タスクの管理をどうするかというのは、別途また考えないといけない。 自分は gulp が良いと思っているが、 grunt や jake や make を使う人もいる。 また、たくさんオプションをつければほぼ一つのタスクが実行できてしまう browserify, jsh/eslint, mocha などのコマンドを提供するツールもある。 そして、 npm にも一部それらをサポートする npm run 機能があるので、そこに Unix ワンライナーを書くこともできる。 今回は、「どのタスクツールが最良か」みたいな話ではなく、それらをどうやって実行するか、または npm との棲み分けとか構成の流儀について、最近良いと思っているやり方について書いておく。 各方針で問題点を書いていくが、

    npm で依存もタスクも一元化する - Qiita
    a2ikm
    a2ikm 2014/12/07
    昨今のassetsをrailsじゃなくてjsのエコシステムで管理したほうがよさそうって議論と組み合わせるととてもよさそう
  • Dart について思っていること - Qiita

    追記 いくつかフィードバックを頂いたので補足。 まず、 Dart と NaCl は比較対象じゃないだろ的な話は、別に比較してません。 何か新しい実行環境を載せるなら LLVM が乗った方が汎用性があるのでは?という意味です。 Dart も NaCl で動けばいいんだろうし。 あと、 Angular.Dart は確かに Angular.js のポーティングに留まらず、 Dart ならではの実装になっていると聞きます。 Angular は流行ってるように思いますが、 DI 周りとか見ても結構 JS の限界を突破している感じがするので、 そこから Dart に流れる人もいるのかもしれませんが、そこからの流入はあまり現実的な気がしないなぁ。。 話はずれるけど、 HTML5 の下りはあまりよく無かったです。うまく書けてなかったけど、例えば Gears のことです(HTML5 が始まる前から、俺の中で

    Dart について思っていること - Qiita
  • 1