Domain Driven Design Quickly 日本語版を読んでる

Domain Driven Design(ドメイン駆動設計) Quickly 日本語版を読んでるんだけど、具体例が少なくて頭のなかでイメージしないといけない or 出来なくてよくわからないところが多くて読むのにちょっと時間かかってる。
もちろん、Quicklyにまとめたから仕方ないとは分かってるから、十分に理解できなくてもとりあえずひと通り読もうと思ってる。そのあとエリック・エヴァンスのドメイン駆動設計読む(高いけど...)

リーダブルコード読んだ

リーダブルコード読んだ。
読みやすいコードの書き方に関するエッセンスを実例と共に詰め込んだ本。ただ、デキるプログラマからすると新しい情報はあんまりなさそう。

個人的には

  • 理解するのにかかる時間が短いコードを書くべき
  • 無関係な下位問題を抽出する
  • 自分の書いたfunction名が何を指すと思うか等を同僚に聞いてみる
と言うのが印象に残っていて、これからの開発にポジティブな影響を与えてくれそう。
1つ目は、コード書いてる時、書き方の候補が複数あった時、今までは「何となく良さそうな方」を選んでたけど、これ読んで「理解するのに時間がかかるかどうか」と言う明確な軸を使って判断できるようになった。
2つ目は、今まで何となくfunctionに切り出してたりしてたプロセスが「無関係な下位問題を抽出する」と言う言葉で抽象化されて、これからそう言うのをちゃんと意識して書けるようになると思う。
3つ目は、要は他人が読んでわかりやすいかどうかは他人に聞けって話。

あと、もっと直接的な知識として

  • javascriptは変数を宣言する時varをつけないとグローバルになること
  • javascriptpythonはifやforブロック内で変数宣言してもスコープがそのブロック内に限定されないこと
って言うのは知らなかったので、知れて良かった。

それと最後の付録に名著が列挙されてて、当分次読む本に迷うことがないのも地味に嬉しかった。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)


アジャイルってコミュ障にはつらいんじゃないか

アジャイルな見積もりと計画づくりって本読んでるんやけど、読んでてアジャイルはコミュ障にはつらい気がした。
  • プロセスやツールより人と人同士の相互作用を重視する。
  • 包括的なドキュメントより動作するソフトウェアを重視する。
  • 契約上の交渉よりも顧客との協調を重視する。
  • 計画に従うことよりも変化に対応することを重視する。
らしい。人と人の相互作用を重視するって、しょっぱなからコミュ障にはつらい。変化に対応するって言っても、チーム全体に影響することならその変化についてチーム全員の合意を取るなり共通の認識合わせをする必要がある。このコミュニケーションコストが面倒に感じたら、変化するべきところを自分のところで握りつぶしたりするやつが出てくる。

じゃぁどうしたらいいかってコミュ力つけてチーム全員が仲良くなる、あるいはアジャイルなんかやってないでウォーターフォール型な開発すればいいんだろう。
と言うわけでもうちょっとチームの人とコミュニケーション取るようにしようとおもった。

親がiPhone買った話

今までずっとガラケー使っていた父親母親が揃って去年iPhone5を買った。前からちょっとそんな話はしていたんだけれども、俺はあんまりおすすめしなかった。基本的に機会音痴というか、コンピュータに弱い人達なので。なんだけど、「ガラケー使い続けてたら、もしガラケーがなくなってスマホだけになった時困る」と言ってiPhone5を買った。まぁ本人が買いたいと言うのを止める気はなかったんだけど、こないだ実家帰ってやっぱり止めときゃ良かったと思ったので、そのことについて書いてみる。

実家に帰ったら「メールが届いてもケータイが鳴らない。なんとかならないか。」的なことを言われたので調べてみた。俺が今ほとんどgmailしか使ってないからか、キャリアメールではなくgmailを使っていた。で、iOSデフォルトの「メール」アプリでgmailのメールを扱っていた。
その「メール」アプリだとgmailをプッシュ通知で使えない的な話を昔聞いたことあるような。何か設定したら出来る気もするんだけれども、とりあえずいつも俺が使っている「Gmail」アプリ落として設定したら解決するんで、そうしようと思ってAppStoreから「Gmail」アプリを落とそうとしたら、Apple IDの入力しろって言われた。
なんと、買ってから2ヶ月以上たってるけど一つもアプリを落としたことがないらしい。
で、Apple ID自体は作ってあるらしいんで入力してもらったら新規登録的な画面が出てきてクレジットカードの入力を求められた。正直スキップしたかったけど出来ないぽい。俺の父親はクレジットカード持ってないので詰んだ\(^o^)/
とりあえず「メール」アプリの新着チェックを15分ごとに設定して我慢してもらった。父親はずっと「なんでそんなんせなあかんの」的なこと言っていて、俺からはAppleがそう作ったからとしか言いようがないんだけど、納得出来ない様でやっぱりなんで、なんで、と言い続けていた。今度auショップ行ってくるとも言ってた。あぁ、auショップの人大変だな、って思った。

と、こういう一連の出来事があって、ガラケーにしとけってもうちょっと強く言っておいたら良かった、と思ったお話。

海外のToDoアプリのダメなところ

海外でいくら賛美されてても、日本じゃ全く使えないToDoアプリがある。例えばWunderlistやiCloudのリマインダ(ウェブ版)だ。
何が駄目だって、あいつらReturn押したら問答無用で入力中のタスクを終わらせて、次のタスク入力に移りやがる。
これだけだと、「タスク多い時便利」とか思うかもしれない。しかし違う。重要なのは「Return押したら」であって、「改行したら」とは違うことだ。
つまり、日本語入力の変換を確定させるためにReturn押した瞬間にそのタスク入力が終了する。このストレスったらない。使うToDoアプリの候補にも挙がらない。


というわけで、日本語でも使える無料でクールなToDoアプリ誰かください。

この世界は電話を持ってない人にあまりにも冷たい

※このエントリはただの愚痴です。

10月某日、買ったばかりのiPhone5をなくした。その日のうちは、どこかに置き忘れたか何かだろうと思って楽観してた。
翌日、まだ見つからないので、iPhoneを探す機能を使ってみた。オフラインでどこにあるのか分からなかった。そんなすぐ電池なくなるわけないので、嫌な予感はした。

数日たっても見つからないので、諦めて警察に届けに行った。

俺「ケータイなくしたんですけど」

警官「それではここに連絡先書いて下さい」

俺「・・・(だからそれをなくしたって言ってんだろおおおおおおおおおお)」

警官「?」

俺「・・・電話ないんですけど、メールアドレスとかじゃ駄目ですか?」

警官「それなら、実家とか友達の電話番号でお願いします」

俺「はぁ(友達の電話番号なんて覚えてるわけないだろおおおおおおおおお)」

実家の電話番号書いておいた。


しかしケータイがないと何も出来ない。友達と夕方新宿駅の東口で待ち合わせしたけど、あやうく合流できないところだった。ケータイないのにそんな人大杉な場所で待ち合わせすんな、って話なだけかもしれないけれども。


結局警察から連絡もないし、どうしようもないので、auショップでiPhone5を買い直すことにした。

俺「iPhone5ください」

店員「それではここに連絡先書いて下さい」

俺「・・・(またかよ・・・)」

店員「?」

俺「メールとかじゃ駄目ですか?」

店員「そういうサービスは行なっておりません」

俺「はぁ」


しょうがないので、この時は持ち歩いていた3G回線の繋がらない初代Xperiaの電話帳みて友人の電話番号書いておいた。
今、電話を買うためには電話が必要らしい。服屋に行く服がないと同じあれですね。本当に電話売る気あんのかって思った。

で、この時在庫がなかったんで、入荷すると連絡が(友人のケータイに)来ることになってた。
が、待てども待てども連絡が来ない。一回本当にまだ入荷してないのか確認しようと思って友人のケータイを使ってauショップに電話してみた。

「ピーッという音の後にご用件をお申し出下さい」

言ったところであとで友人のケータイに連絡来るだけなので諦めた。


で、やっぱり連絡来ないし他のauショップにiPhone5即日お渡し出来るって書いてあるし流石におかしいので直接店に行ってきた。

俺「iPhone5予約したんですが、連絡が遅すぎるんで来ました」

店員「少々お待ち下さい」

...
店員「お待たせいたしました。入荷はしていたんですが、ご連絡はこれから、というところでした」





















嘘だっ!
http://dic.nicovideo.jp/oekaki/31579.png



この世界は電話を持ってない人にあまりにも冷たい

これがないとやってられない!新しいMacに真っ先に入れた5つのアプリ

今内定先の研修を受けてて、おそらく入社後も使うMacBook Proを渡されたんですよ。で、自分用に色々いじりたいけどそんな時間もなく研修は進むわけで、それでもこのアプリは入れないとやってられない!ということで合間を縫って5つアプリをインストールしたんで、紹介してみます。

KeyRemap4MacBook

キーボードのバインドを変更できます。これがないとほんとやってられません。普段使ってるMacだと結構いじってるんですが、少なくとも↓の設定はしないと僕はもう生きていけません。

  • 右のCommandを一回押下でかな入力、左のCommandを一回押下で英数入力(押しながら他のキーを押すと普通にCommandとして動く)
  • Spaceを押しながら他のキーを押すとControl
  • Control+jでEnter

一つ目の設定はUSキーボード使ってる人は必須です。使ってない人は光の速さでインストールするべきです。

あとCapsLockをControlに、ControlをCapsLockにしたんですがそれは普通の環境設定で出来るんでそっちでやりました。

Google日本語入力

ことえりは使い方わかりません。あとキーバインドをいじっていて、この設定もしないとストレスがマッハです。

Google Chrome

言わずと知れたGoogle先生のブラウザです。自分のGoogleアカウント登録したら色々同期してくれてそのまま使えます。あまりにもシームレスに使えてびっくりしました。

Right Zoom

Macのウィンドウの閉じるボタンとかって左上にあるじゃないですか。x, -, +のマークがついたボタンがあるわけなんですが、どう見ても左から閉じる、最小化、最大化、じゃないですか。

違うんですよね。+は最適化?で最大化してくれないんですよ。そんなおせっかいいいから素直に最大化してくれよ、って願いを叶えてくれるのがRight Zoomです。ただそれだけです。だがそれがいい。

BetterTouchTool

マルチタッチジェスチャーをカスタマイズ出来るのがメインの機能のアプリです。ですが、それだけでなく、Windows7のようなウィンドウスナップ機能(ウィンドウをドラッグして画面上に持って行くと最大化、画面左に持って行くとウィンドウを画面左半分の大きさにする等)もついてます。これが便利でしかたないです。あと、Chromeで個人的によく使うジェスチャ(三本指クリックでCommand+Click(新しいタブで開く)、三本指で下にスワイプでCommand+w(タブを閉じる)、三本指で上にスワイプでCommand+(更新))だけ登録しました。