新参者 感想

新参者 (講談社文庫)

新参者 (講談社文庫)

加賀恭一郎シリーズの第8弾.
2010年にテレビドラマにもなったので,
これだけは知っているという人も多いのでは.

人形町のとあるマンションで,一人の女性が絞殺された.
事件を捜査する警視庁のサポート要員として,
日本橋署から加賀恭一郎が動員される.
数々の事件を解決へと導いた加賀の洞察力により,
事件の真相が徐々に明らかになっていく……

本作は全9章構成となっており,
上述の女性絞殺事件の調査で発生したちょっとした謎を
各章で加賀が解き明かしていく……という流れとなっている.
内容的には「短編集」と呼んで良いと思う.
とはいえ,全ての謎は絞殺事件の真相へと収束するし,
別の章で出てきた登場人物がしれっと再登場したりするので,
間を空けずに一気に読み切った方が,たぶん楽しめると思う.

他の加賀恭一郎シリーズと比べると重苦しさがなく,
「人情もの」と呼ぶべきエピソードが多いのも特徴.
それに合わせてか,加賀のキャラも微妙に変わっている気がする.
(作中で,一応理由付けはされている)
そういうのが好きか否かで,
この作品に対する評価は結構ブレそうな気もする.


個人的には結構好きだったが,一般的な評価はどうだろう?

人月の神話 感想

人月の神話【新装版】

人月の神話【新装版】

「実は読んだことありませんでした」系の本を
昨年から少しずつ読んでいたんだけど,たぶんこれがラスト.

古今東西のソフトウェア屋は「銀の弾丸」という単語を
結構な頻度で使いたがるんだけど,その火付け役のような本.
銀の弾丸とは,「特効薬」と言い換えるのが適切かな.
『ソフトウェア開発の効率を劇的に改善する
銀の弾丸」は存在しない』……という論旨となる.

何が恐ろしいって,この本の初版の発売が1975年ということ.
にも拘わらず,書いている内容は
現代の開発現場でも起きがちなアンチパターンの数々.
その頃から,テクニカルな進歩はあれど,
マネージネントの進歩はない,ということなのかもしれない.

初版発売時の主流がメインフレームということもあり,
その辺に触れたことのない世代としては
正直ピンと来ない記述もあるのだが,それでも十分読める.
逆に,この時点で既にアジャイルを匂わせる記述もあったりする.

この改訂版は発売20周年を記念して発売されたもので,
初版の主張がどこまで妥当で,どこまで不適切だったかを
著者自身が振り返っている章が追加されている.
なので,初版しか読んだことも無いという人でも
十分読む価値はあるんじゃないかな.

ひとまず,この業界に足を踏み入れるときに流し読みして,
ある程度足場が固まってきた段階で改めて読んで……という流れが
ベストだと思う.
ある程度経験値が溜まった段階で読んでも
「当たり前じゃん」で流してしまい,あまり響かないかもしれない.


ちなみに本の管理が適当過ぎて,我が家になぜか2冊ありました.

ナビゲーションドロワー(DrawerLayout)の活用

自作アプリのメニューを,いい加減ドロワーにしましょう,という話.
ドロワーというのは,画面端をフリックすることで
折りたたまれていたレイアウトがスライド表示される,あれです.

毎度のことながらリファレンス.
ナビゲーションドロワーの作成  |  Android Developers

事前にGradleのdependenciesに
implementation 'com.android.support:drawerlayout:28.0.0-alpha1'
を追加.しないとデバッグ時にアプリが落ちた.

DrawerLayoutのXMLを作成する上では,上記のリファレンスにもあるとおり
以下の注意点が存在する.
・メインコンテンツを先に,ドロワーを後に書く.
・メインコンテンツは,widthもheightもmatch_parent.
・ドロワーには水平方向のグラビティを指定する.
・ドロワーのwidthは320dp以下,heightはmatch_parent.

あとはドロワーの中身が無いと,正しく実装されたかよく分かんないので,
最低限なコードとしてActivityに以下を追記しておく.

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ListView listView = findViewById(R.id.left_drawer);
        listView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, new String[]{"aaa", "bbb"}));
    }
}

結果はこんな感じ.
f:id:bob_l_s:20190224012217p:plain


次はここにメニューて画面遷移させるところかな.

AndroidのUIテストの超基礎

久しぶりすぎて色々記憶が飛んでいるので,復習.
扱うのは王道(たぶん)のEspresso.リファレンスは以下.

Espresso  |  Android Developers
Espresso setup instructions  |  Android Developers

基本的に書いていることをそのまんまコピペすれば良いんだけど,
@RunWith(AndroidJunit4.class)の部分がdeprecatedになっていた.

こちらの記事の末尾によると,依存先を変えれば良いとのこと.
AndroidでContextが必要な機能のテストコードを簡単に書こうとしてとても時間がかかった話 - Qiita

// 修正前
androidTestImplementation 'androidx.test:runner:1.1.0'
// 修正後
androidTestImplementation 'androidx.test.ext:junit:1.0.0'

あとはGradleからconnectedAndroidTestで実行して
redなりgreenなりを示してくれればOK.

Matcherのラインナップとしては以下.
これらを使って色々なassertionを記述することになる.
ViewMatchers  |  Android Developers


というわけで,久々に何か作ろうと思います.

Androidを支える技術I 感想

Androidを支える技術〈I〉──60fpsを達成するモダンなGUIシステム (WEB+DB PRESS plus)

Androidを支える技術〈I〉──60fpsを達成するモダンなGUIシステム (WEB+DB PRESS plus)

本当は上下巻構成なのだが,
中々のボリュームだったので,一旦上巻のみの感想.

スマートフォンのOSでiOSと双璧をなすAndroid
覚えてしまえば割と簡単にアプリを作成できるのだが,
如何せん根本部分のリファレンスが少なかったりする.
その結果として,
「仕組みはよく分からないけど,とにかくこれで動く」
という,おまじないがコードの大部分を占めがち.

そんな中,本書は「描画」にターゲットを絞りつつも,
ディスプレイのタッチ操作が内部でどのように処理されて
画面描写まで到達するのか,その流れを
非常に詳細なレベルで説明してくれている.

あまりに細かいので,5章以降のハードウェアよりの部分は
正直「なんとなく」レベルでしか理解できなかったが,
その手前の,入力がViewのdrawメソッドに到達するまでの流れは
まさに個人的にずっと知りたかったところ.
デバッグで何となく見かけていたクラスやメソッドが登場したときは,
「ああ,こいつそんなことしてたのか」
と,ちょっとした感動を覚えた.

どうやら著者が自力でAndroidのコードを読み解いたようで,
その徹底っぷりたるや恐れ入る.
「ここは読み解ききれませんでした」と正直に書いている部分もあるし,
おそらく間違えている箇所もあるとは思うが,
Androidの細かい部分を知りたい人にとって最適な書籍だと思う.


下巻も読了次第,感想書きたいが,仕事用書籍の割り込みが…….

甘々と稲妻 8-12巻 感想

めでたく最終巻を迎えたので感想.
ちなみに7巻までの感想は以下.

甘々と稲妻 1-7巻 感想 - NK5のノート

高校3年生になった小鳥は,進路について
「店を継ぎたい」
と述べるも,母から予想外の反対を食らい思い悩むようになる.
一方でつむぎは小学校に進学.
「給食」「新しい友達」「歯の生え変わり」など,
様々な変化に戸惑いながらも,日々成長を遂げていく.

つむぎが遭遇する問題や悩みの内容は
幼稚園時代と比較すると複雑になっていくけれど,
そんなつむぎを優しく諭す犬塚を見ていると,
1巻のときと比べて父親として成長したなと思う.

物語としては11巻の小鳥の高校卒業でほぼ完結しており,
最終12巻は,ほぼ全てがエピローグとなっている.
全5話に渡る番外編では
つむぎの独り立ちまでがダイジェストで描かれており,
ファンサービスとしては満点の内容だと思う.

いわゆる恋愛物としてみた場合は,
ほぼすべての関係が未決着で終わるんだけど,
まあ,そこは「読者の御想像にお任せ」ということで.


で,アニメのセカンドシーズンはまだですか?

Effective Java 感想

Effective Java 第3版

Effective Java 第3版

Java9に対応した第3版が出たので,購読.
まあ,そもそも第1版も第2版も読んだことないわけですが.

Javaに限らず,プログラミングにおいて,
それぞれの命令が何を意味し,裏で何が行われているか,
真の意味で理解している人って,あまり多くないと思う.
ほとんどの人は「なんとなく」でコーディングしがち.

その「なんとなく」が抱えるリスクを提示しつつ,
適切な対処法を突き詰めて提示してくれるのが,この1冊.
1テーマ4ページ前後から成り,全部で90テーマ用意されている.

「Java9対応」と書かれているが,メインはJava8で導入された
ラムダやストリームへの対応.
第2版とのマッピング表も用意されているので,
旧版からのアップデートを知りたい人はそこを参照すると良いかも.

とにかく1ページ1ページの密度が濃い.
頑張って読んだが,たぶん著者の伝えたかったことの
2割も理解できていない.
著者や訳者の説明力不足というより,完全に俺の技力の問題だろう.
むしろ訳文は,この手の技術書としてはかなり高品質だと思う.

Javaという言語の深さや難しさを理解し,
さらなる学びを決意する動機付けとしては,最適だと思う.
その意味で,中~上級者向けの書籍に当たるんじゃないかな.


久しぶりに何かJavaアプリ書こうかなぁ.