axross.org

JS好きです。

Javascript良書カタログ

f:id:axross:20141021010536j:plain

なぜ書いたか

  • 電子書籍のリストが欲しかった
  • 自分の積ん読具合を客観的に観測して戒める
  • アフィ

除外条件とか

  • あまりに古くて何言ってんのかわかんない本
  • 立ち読みしたけど購買意欲がわかず、世間的な評判もよろしくない本

なので、以下は漏れなく面白い本だと思う。 順番は感想順。

クライアントサイドJavascript・Javascript言語仕様に関する書籍

JavaScript 第6版

JavaScript 第6版

Effective JavaScript JavaScriptを使うときに知っておきたい68の冴えたやり方

Effective JavaScript JavaScriptを使うときに知っておきたい68の冴えたやり方

  • 電子書籍 : http://goo.gl/6rAqJy
  • 読んだ
    • (サイ本) - (パーフェクトJavascript) = これ
    • 読まなきゃゴミだ!と言われかねない

JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス

JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス

開眼!  JavaScript ―言語仕様から学ぶJavaScriptの本質

開眼! JavaScript ―言語仕様から学ぶJavaScriptの本質

オブジェクト指向JavaScriptの原則

オブジェクト指向JavaScriptの原則

  • 電子書籍 : http://www.oreilly.co.jp/books/9784873116815/
  • ちょっと読んだ
    • 本当に必要なことだけがよくまとまっている
    • 読んでたらAngularやることになってAngularの本読んで、なぜかサイ本を読んでいる

パーフェクトJavaScript (PERFECT SERIES 4)

パーフェクトJavaScript (PERFECT SERIES 4)

  • 電子書籍 : ない
  • 読んだ
    • 読んだ時(プログラミング歴半年くらい)は、この本を神として信仰していた
    • 今はそうは思わない

JavaScript本格入門 ?モダンスタイルによる基礎からAjax・jQueryまで

JavaScript本格入門 ?モダンスタイルによる基礎からAjax・jQueryまで

  • 電子書籍 : ない
    • Javascriptを学んだきっかけ
    • Amazonで評価がよかったので買った
    • 書いてる人の説明がただただうまい

メンテナブルJavaScript ―読みやすく保守しやすいJavaScriptコードのための作法

メンテナブルJavaScript ―読みやすく保守しやすいJavaScriptコードのための作法

JavaScriptデザインパターン

JavaScriptデザインパターン

JavaScriptで学ぶ関数型プログラミング

JavaScriptで学ぶ関数型プログラミング

テスタブルJavaScript

テスタブルJavaScript

JavaScript Ninjaの極意 ライブラリ開発のための知識とコーディング (Programmers’ SELECTION)

JavaScript Ninjaの極意 ライブラリ開発のための知識とコーディング (Programmers’ SELECTION)

その他

プログラマのためのコードパズル ~JavaScriptで挑むコードゴルフとアルゴリズム

プログラマのためのコードパズル ~JavaScriptで挑むコードゴルフとアルゴリズム

  • 電子書籍 : https://gihyo.jp/dp/ebook/2014/978-4-7741-6344-4
  • 持ってるけどまだ読んでない
    • Javascriptという単語に釣られた
    • コードパズルにまったく興味はないけど、なんか謎の使命感に取り憑かれそう

実践 Selenium WebDriver

実践 Selenium WebDriver

Node.jsに関する書籍

実践Node.js プログラミング (Programmer's SELECTION)

実践Node.js プログラミング (Programmer's SELECTION)

  • 電子書籍 : http://goo.gl/JkZVxI
  • ちょっと読んだ
    • @visionmediaとかが書いた「Node.js in action」の和訳本
    • 知らない奴はモグリ

サーバサイドJavaScript Node.js入門 (アスキー書籍)

サーバサイドJavaScript Node.js入門 (アスキー書籍)

  • 作者: 清水俊博,大津繁樹,小林秀和,佐々木庸平,篠崎祐輔,高木敦也,西山雄也,Jxck
  • 出版社/メーカー: KADOKAWA / アスキー・メディアワークス
  • 発売日: 2014/02/27
  • メディア: Kindle版
  • この商品を含むブログを見る

  • 電子書籍 : http://tatsu-zine.com/books/nodejs
  • 読んだ
    • Node.js界のアイドル、大津さんの本
    • 楽しく読んだけど、docs読めばよかったんじゃね?って気持ちになった

シングルページWebアプリケーション ―Node.js、MongoDBを活用したJavaScript SPA

シングルページWebアプリケーション ―Node.js、MongoDBを活用したJavaScript SPA

はじめてのNode.js -サーバーサイドJavaScriptでWebアプリを開発する-

はじめてのNode.js -サーバーサイドJavaScriptでWebアプリを開発する-

  • 電子書籍 : ない
  • ちょっと読んだ
    • 進行が遅くてイライラしたので途中で大津さんの本読み始めた

ライブラリやフレームワークに関する書籍

AngularJSリファレンス

AngularJSリファレンス

  • 作者: 池添明宏,金井健一,吉田徹生,丸山弘詩
  • 出版社/メーカー: インプレス
  • 発売日: 2014/09/05
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

AngularJSアプリケーション開発ガイド

AngularJSアプリケーション開発ガイド

Webアプリ構築のためのAngularJS

Webアプリ構築のためのAngularJS

フロントエンド全般を扱う書籍

モダンWeb ―新しいWebプラットフォームの基盤技術

モダンWeb ―新しいWebプラットフォームの基盤技術

JavaScriptエンジニア養成読本 [Webアプリ開発の定番構成Backbone.js+CoffeeScript+Gruntを1冊で習得! ] (Software Design plus)

JavaScriptエンジニア養成読本 [Webアプリ開発の定番構成Backbone.js+CoffeeScript+Gruntを1冊で習得! ] (Software Design plus)

  • 電子書籍 : ない
  • 持ってない
    • @mizchiのCoffeeScriptの話しか興味がわかなかった
    • backboneとかgruntの話とかされても...

フロントエンドエンジニア養成読本 [HTML、CSS、JavaScriptの基本から現場で役立つ技術まで満載! ] (Software Design plus)

フロントエンドエンジニア養成読本 [HTML、CSS、JavaScriptの基本から現場で役立つ技術まで満載! ] (Software Design plus)

  • 作者: 斉藤祐也,石本光司,加藤賢一,水野隼登,谷拓樹,泉水翔吾,原一成,平木聡,佐藤歩,杉本吉章
  • 出版社/メーカー: 技術評論社
  • 発売日: 2014/07/02
  • メディア: 大型本
  • この商品を含むブログを見る

DATETIMEがめんどくさいのでもうINTEGERでいい

MySQLとかで、レコードの作成日時とかにDATETIME型をずっと使っていたんだけど、めんどくさいなーってずっと思ってた。

何がめんどくさいのか

WebにおいてDBは基本的にサーバーが読み出して、HTTPに乗せて文字列形式でクライアントに返すものなので、何らかのフォーマットで保証しない限り、型の情報は消失する。

たとえばJSONのフォーマットだと、以下の型しか保証しない。

  • 文字列 (JavascriptのStringに相当)
  • 数値 (JavascriptのNumberに相当)
  • 真偽値 (JavascriptのBooleanに相当)
  • 配列 (JavascriptのArrayに相当)
  • 連想配列 (JavascriptのObjectに相当)
  • null

日時を扱う型はないので、必然的に文字列で返すことになる。

JS側でもめんどくさい

DBドライバとか言語とかによって、返す日時の文字列表現がまちまち。
だいたい分類すると次のどちらかに似たような形式で返ってくるんだけど、

"2014-01-01T00:00:00Z"
"2014-01-01 00:00:00+09:00"

どちらも、-/に置換しただけじゃDate.parseで受け入れてくれなかったりで、どうでもいいバグを産む。
JavascriptのDate型の実装がバラバラで、ECMA-262だと「ISO Date Formatを受け入れる」って書いてあるんだけど、実際Android端末でバラバラすぎて殺意を覚えたことがある。

もうINTEGERでいいや

日付を1970/01/01 00:00:00からの秒数を示すUNIX Epochにしておけば、こういう問題は起こらないわけで、これからはそうしていこうと思う。

...
`created_at` INTEGER UNSIGNED NOT NULL,
...

SQL標準では、INTEGERの最大値は2147483647で、UNIX Epochだと2038年あたりでこの最大値を超えちゃう、なんてことがあるらしいのでUNSIGNEDつけて符号無しにすることは忘れないようにしないと。

DB直接覗いた時の可読性とかもう知らない。
どうしても、って時は管理ツール作るから許して。

というより、いい方法があったら教えて。