読者です 読者をやめる 読者になる 読者になる

【書評】Ruby on Rails5 アプリケーションプログラミング

はじめに

ご縁があり、WINGSプロジェクトの書籍レビューに応募して献本を頂きました。購入を予定していた本なのでお財布が助かりました(笑)。読み終わりましたので書評を書かせていただこうと思います。

本の概要

本書は「Ruby on Rails4 アプリケーションプログラミング」のRails5に対応した改訂版です。Railsの基礎部分の解説から始まって、Scaffold、View、Model、Controller…とRailsの主要機能が、基本的な部分を理解できる粒度で記述されています。

Rails5対応部分について

Rails5になって変化した部分や追加された機能についても、Rails4からのユーザーにもわかりやすいようにバージョン指定で記述されていますので、変化があった機能についても簡単に把握できるように配慮がされています。また、ごく一部ですがRails5.1(これを書いている時点で正式版がリリース済みです)についても特徴的な点について言及がされています。

本の傾向

本書の傾向としては「これ一冊を読み通せば、Railsの基礎部分はチュレベル程度まで理解、拡張機能についてもどんな機能であるかは一通り理解出来る」ように書かれています。

内容について

基礎部分にあたるScaffold、View、Model、Controller、Restfulの考え方とそれに結びつくRoutingについての記述が本書の三分の二を占めており、これらについてはよく使う機能について割と細かい部分まで解説されています。よくある「サンプルのコーディングを実際に積み上げていく本」ではなく、「主要機能のリファレンス+それらに対する図解と説明」といった感じの本です。 機能の説明にはリファレンス的な記述に加えて、断片ではありますがサンプルコードも記述されているため、わかりやすくなっています。

後半部分では、テストや拡張的な機能についても一通り記述されているので、Railsが初めての方も本書を一冊読めば概ね何が出来るのかは理解できると思います。

上記でも書いたとおり、基礎部分については個々の詳細機能についてリファレンス的に記述がありますので、実際に開発を行う手元に置いておくと「あれ、この機能なんだっけ?」的なシチュエーションで結構役に立つと思います(前著のRails4版は実際にそうやって活用していました)。

まとめ

本書は基礎からRailsを学ぶ人にはちょっとハードルが高いかもしれません。特に「一本サンプルアプリを作り上げて理解する」タイプの本ではないので、ある程度開発の経験があるプログラマか、前バージョンから移行する方向けだと思います。 図解やサンプルも豊富に記述されているので、Webの情報では理解しづらい機能についても本書を読めば理解しやすいと思います。総合的に「現場向け」の本だと自分は感じました。

自宅インターネット接続の「IPv6プラス」化

はじめに

一時期から、自宅のネット接続(光)が途方も無く遅くなっていった。平日の昼間などはまだマシ(3MB/s程度は出る)だが、夜間休日はスマフォのテザリングのほうが余程早く、KB/sに落ち込む始末。それでもちょい使いぐらいには支障が無かったので長らく放置していた。がアップデートや大きめの音楽データなどのダウンロード、動画の視聴にはとても不便でになった。大体パケットロスが常時25%あるネットワークってどうなのよ?って状態。

そんな中、とあるネトゲ(FF14)を再開した嫁が「これではマトモにプレイ出来ない」と一念発起。せっせと手続きを進めていった。ちなみにプロバイダーはBiglobeで回線はフレッツ光Nextの環境。これを6to4接続っぽい「IPv6プラス」に接続変更するのが目標。

最初の壁

申請するのにNTTのIDとパスワードが必要なようだが、これが見つからない(笑)。まずはNTTのサポートセンターに電話をして、これらを取り寄せる所から。聴いた所によると、流石に本人確認は厳しかったらしいし、繋がるまでに数十分は待ったとのこと。ものの数日で情報はきっちり届いた。

IPv6接続サービス」の罠

情報が揃ったので意気揚々申請し、ものの翌日には完了メールが来ていた。しかし何か様子がおかしい。IPv6のPPPoEは繋がらない。しかしネットワークインタフェースを調べてみるとv6アドレスが振られている節もある。 BBルーターで接続しているのが悪いのかと思い、メインで使っていたルーターはブリッジ接続に格下げし、NTTのCTUかをメインに使用するようにネットワーク構成を変更。しかしこれでも相変わらず。 IPv6ネイティブで接続出来るサイト(Googleとか海外サイトぐらいだけど)は速いが、その他はまるで変わらず。 「やっぱり対応ルーターじゃないとダメなのかな?」と新しいBBルーターを注文した。……

が、色々行った翌日に嫁様が色々調べていてふと気づいた。 「これ、IPv6接続で、IPv6プラスじゃない!」 どうやら申込みページの誘導が色々錯綜しているらしく、ネイティブ接続の方に申し込んでいたらしい。

気を取り直してIPv6プラスを改めて申し込む

今度は慎重に再度接続サービスを申込み。これも、ものの翌日にはさっさと切り替わった、仕事早い! 予定通りCTUのPPPoEランプが消えている。試しに色々ダウンロードしてみると、自分のMacからは無線LANの上限スピード理論値近くの速度で接続出来る。その他の機器からも早くなっているのを確認し出来た。実に快適!なお不要となった新規購入ルーターAmazonさんに返品直行(すいません、ヤマト運輸さん)

あれほどラグっていたFF14も非常に快適にプレイ出来るようになった模様。めでたしめでたし。

終わりに

やはりネットワークは人間的な速度が良いですね(笑)。今の所使用しているデバイスで、特に問題は起こっていません。骨を折ってくれた嫁様ありがとう。

他のプロバイダーでも類似のサービスを行っている所もあるらしいので、固定IPサービスなどが不要の方は試してみては? しかし、早く v6ネイティブ接続普及しないかなー

DEEP WORK

はじめに

表題のこの本がなんだか同業者の中で読まれているらしいので釣られて読んでみた。結論から言うと、とても良い本であったし、大いに反省すべきだと考えさせられた記述も多数あった。

細切れになる時間

インターネットのある程度の普及以降、タスクに対する時間は普通の人でも細切れになりがちだし、これがマネージャクラスならばなおさら傾向は強いであろうことは実感する。こういった細切れ時間の状態では物事も深く考えるというのは難しく、表面的に色々なタスクを忙しく見えているようにこなしている毎日を送っている人も多いだろう。 こういった時間を細切れにするのはタスクの粒度ばかりではない。新着メールやSNSの通知など、意識をそらすイベントには事欠かない。特にスマートフォンが普及してからさらにこういった傾向に拍車がかかっている。また最近ではチャットを業務で導入している所も珍しくはなくなってきており、そもそものスタイルが細切れ推奨的な仕事の仕方になりつつある。

細切れ時間では深く考えられない

一部の天才的な人は例外として、こういった状態だと処理する物事について深く考えることは難しく、必然的に条件反射的な処理をする事になる。こういった仕事の仕方で完結するタスクも多くあるが、それぐらいで済んでしまうタスクが価値を生み出す割合は低い。必然的になんだか忙しくて色々やっているんだけど、本当に価値のある成果が上がってこないという状態になっていってしまう。これでは個人としても会社としても日々流されている状態となり、結局は先細りをしていく未来になってしまうのではないだろうか。

集中することの価値

やはり大きく価値を出す仕事をするには深く集中時間を作り、その中で価値を生み出していく事が望ましい。世の流れがつぎはぎ時間での仕事の仕方に流れている昨今、個人や企業が大きく成長したり成果や価値を生み出していくには、なんとか世の流れに逆行して深く集中出来る時間を作るスタイルを作り出せるかどうかが鍵になってくる。世知辛くなり競争も激化している今、差をつけていくにはこういった施策や習慣を実施出来るかどうかが鍵になってくる。

通知を切り、スマフォをしまって仕事をしよう

大抵の場合、よほど長時間放置しなければ押し寄せる通知を即座に裁かなくても大事にはならない。メールは一定時間ごとに自分から確認しに行けば大抵十分用が足りるし、SNSは即座に見なくても別段死ぬことはないし、チャットのレスポンスも同様だ。 たまには通知を切って、2時間前後集中して何かに取り組む時間を作ろう。最初は集中しづらいかもしれないが、何度もやっているうちに慣れてくる。こういった時間を意識的に作って、積極的に価値を生み出していこう。

という感じの趣旨が

表題の本に書いてあった。分かってはいるがなかなか出来ていない事だけに耳に痛く(目に痛く?)読ませて頂いた。また少し時間をおいて読み返してみようと思う。

大事なことに集中する―――気が散るものだらけの世界で生産性を最大化する科学的方法

大事なことに集中する―――気が散るものだらけの世界で生産性を最大化する科学的方法

帰ってきたATOK

一旦は

長年使っていたATOK、2ヶ月ほど使用を中止してMac標準のIMEGoogle日本語入力を使っていてみたが、やはりしっくりとこない。昔に比べればどれもこれも極端に馬鹿という事は無く、それなりにきっちり変換してくれるのだが、馴染んだ癖に対する物なのか「あと今一歩」という所で不満が募り始めた。 そんなに長い文節を一気に変換すると言う事はなく、どちらかというと割と細切れでの変換が多いのだが、それでもやはりあと一歩及ばなかったようだ。

という訳で

結局ATOKを復活させた。 「やっぱりこれだよこれ」という感じで気持ち良く使える。あとあまり意識をしていなかったが辞書連携周りの恩恵が案外大きかった模様。あと辞書の語彙がやはり他のIMEより多く感じる。

早く

Mac版も2017にならないかな、と待ちわびている。

道具は使わなければ、やはり鈍る

まぁ、当たり前の話なのですが。

手が、全くもってボンクラになっていて愕然とした。

久しぶりに仕事でRailsを使ったアプリのコードを書き始めたら、これが進まないのなんの。あまりの忘れっぷりと手の動かなさに自分で自分にイライラすることしきり。よくよく振り返ってみたら年越えでRails/Rubyはほぼ触っていなかったし、転職する前はほとんど社内便利屋でインフラ周りの仕事、コードも書いていたが既存のJava案件の保守がほとんど。そりゃ鈍りますわ(笑)。いや、笑い事じゃなかったんだけど、、、

で、どうしたか?

やらないよりはマシ、ということでRailsの本を買って写経。まぁ全然追いついてこなかったけど、それでも多少は助けになった。あとEffectiveRubyの復習。復習っていっても頭からかなり抜け落ちているので新規学習に近いレベル。

余裕がないと

いやはや、自覚しながら割とダメなコードを結構書いてしまった。終盤多少はマシになってきたけど、、、EtoEテストである程度覆ったらリファクタリングしたい。

誰だ、歳のせいと言ってるのは?

まぁ、初老域には違いないですけど、、、まだだ、まだ終わらんよ!

オチは?

ないです。自戒を込めたポエムです。みなさん、継続的に手は動かしておきましょう。

【書評】改訂新版 JavaScript本格入門

前置き

随分以前、それまで避けていたJavaScriptを書く仕事から逃れられなくなった時、学習用として評判の良かった本書の前版を入手し、以降も比較的長めの期間手元に置いて愛用し、また初めてJavaScriptに触れる人達にも紹介してきました。 その本書の改訂新版がES2015に対応して出版される、と聞いて密かに楽しみにしていた所、ご縁があって書籍レビュアーを募集している、との事でしたので早速飛びつき、WINGSプロジェクトの書籍レビュアーに応募し、献本をして頂きました。

内容について

全体

本書は、制御構文や型、関数やオブジェクトなどの言語的基礎的な部分と、クライアントサイドでの実践的な土台になる部分の前後半に大きく分けられます。なお、目玉のES2015に関する部分については、本書の全体のそれぞれの要素(新構文なら構文の章)に散りばめられており、それぞれちゃんとES2015とマークが付いているので、当該仕様については簡単に識別出来るようになっており非常に分かりやすいです。

前版部分について

前半に該当する章で一番ページ数が割かれているのは「オブジェクト指向構文」についてです。ES2015での目玉のクラスが含まれている為でもあるのですが、それ以前の言語仕様でも「JavaScriptでもオブジェクト指向的な書き方」はプロトタイプベースという事もあり、決してぱっと理解しやすいものではありません。また、実際にプログラムを記述する際に中途半端に書くとバグの温床となりがちです。そういう部分に関して(もちろんその他の部分全般でもそうですが)非常に丁寧にかつ分かりやすく説明がされて言います。 もちろん基礎的な言語仕様についてもバッチリ各章で説明されているので、普通に業務などで使う場合に関してはこれで必要十分な印象を受けました。

後半部分について

後半部分で一番ページ数が割かれている章は「DOMの操作」についてです。つまり「HTMLやCSSをどう操るか」に関して比較的多めのページ数が割かれています。業務でJavaScriptを使用する場合、半分以上このDOMの操作について記述すると言っても過言では無いと経験上思います。もちろんJavaScriptフレームワークを使えば非常に勘弁に記述出来ますが、この部分の土台をしっかりと理解しているか否かでフレームワークを利用した場合の書き方や出来映えも変わってきます。また場合によってはフレームワークそのものの使用が出来ない場合もあります。そういったケース全般に渡って本章は力となってくれるでしょう。 それに次いでブラウザオブジェクトに関しても1章きっちりと割かれており、かつ実践で使用しそうな代表的な部分については網羅されているように思えます。

また最終章に、最後のスパイスとしてUnitTestやJSDOCについても少ないながらも記述があります。これは今の時流を考えると非常に妥当だと思えますし、それら要素へのとっかかりにはなるはずです。

総括

これからJavaScriptを学習しようとする人には、取りあえず最初はこれ一冊を手元に置いておきなさいと十分オススメが出来る本です。この内容であれば仕事上でも当面の間困る事は無いでしょうし、迷った時にリファレンス的にも十分使えます。下手なフレームワーク寄りの本から入るより、一度この本を通読してからフレームワークを暑かった方が、上達は早いでしょう。 また、今まで十分JavaScriptを書いている人でES2015への変化を知りたい人にもお勧め出来ます。

総括的に前版を上回る、期待に背かない良い本でした。ES2015絡みもあるので、手元に置いて活用させて貰おうと思います。

【書評】オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方

ざっくりまとめてしまうと、Rubyでの例示コードが載っているオブジェクト指向設計の本。

オブジェクト指向設計の全般を、重要なトピックスに絞って各章で解説して行っている感じ。例示コードがあるのでRubyを読める人であれば分かりやすいと思われる。ただし、一部のコードではRuby寄りの言語機能を使用しているので、多言語のみの人はその部分が分かりにくいかも。オブジェクト指向設計からの例外は最終章のテストコード周り、ここはテスト駆動開発寄り。

総括的に言えば初級〜中級者向けで、オブジェクト指向設計の原則的な部分をざっくりとまとめ上げられている感じ。ただあくまで総括的なので、もっと深く理解しようと思ったら別の書籍、例えば「アジャイルソフトウェア開発の奥義(第二版)」や「オブジェクト指向入門(第二版)」やデザインパターン関連の本を参照する必要がある。

逆に言えば上記のような本の内容をある程度理解している、もしくは既に所持していて根性入れて読んでいる/読む気があるのであれば、所持する価値はRubyでの例示コード部分に同価値を置くか、といった感じになる。

でも、頑張って訳してあるしいい本ですよ。教育用にもいいかも。

 

 

オブジェクト指向入門 第2版 原則・コンセプト (IT Architect’Archive クラシックモダン・コンピューティング)

オブジェクト指向入門 第2版 原則・コンセプト (IT Architect’Archive クラシックモダン・コンピューティング)

 

 

オブジェクト指向入門 第2版 方法論・実践 (IT Architects' Archiveクラシックモダン・コンピューティング)

オブジェクト指向入門 第2版 方法論・実践 (IT Architects' Archiveクラシックモダン・コンピューティング)

 

 

アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技

アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技