builderscon tokyo 2017に参加した

8月4, 5日と builderscon に参加してきました。

聞いたセッション

聞いたセッションの中で特に面白かったのは以下の2つでした。

builderscon.io

builderscon.io

複雑なJavaScriptアプリケーションに立ち向かうためのアーキテクチャ

speakerdeck.com

僕は仕事でここ3年くらいiOSアプリを書いています。このセッションはJavaScriptと銘打ってはいるのですが、iOSの設計にもばっちり適用できるアプリアーキテクチャがテーマでした。実例を交えつつ丁寧に説明してくださって非常に参考になりました。

関連して、以下の発表も大変参考になりました。真似しよう。

#yapc8oji 得票数4位トーク「あの日見たM V WhateverのModelを僕たちはまだ知らない」実況中継 - Re.Ra.Ku tech blog

DeepLearningによるアイドル顔認識を支える技術

speakerdeck.com

データセットを作成するyak shavingの中でRails, React, Dockerなど未経験の技術をキャッチアップされていて、目的を達成するために新しい技術を少しずつ学んでいくのはとても良いと思いました。

所感

buildersconは「知らなかった、を聞く」というテーマで、今回これはだいぶ達成できました。 個人的には自分の活動がインプットに偏っているのを常々感じているので、また勉強会で発表したり、このブログもぼちぼち書いていきたいなと大変刺激を受けました。

最後に

builderscon はセッションが面白かったのはもちろん、無限コーヒーや朝食が大変ありがたく、2日間大変快適に過ごせました。運営の皆さん、ありがとうございました!

RxSwiftのチュートリアルをやった

プレーンなSwiftで書かれたアプリをRxSwiftで書き換えるチュートリアルがあったのでやってみた。

www.raywenderlich.com

以下の点がとても良いと思った。

  • ソースコードをダウンロードして、すぐに手元で動かすことができる。(Xcode 8.2.1)
  • 分量が丁度良い。文章を読みながら進めて3h程度で終えることができた。
  • RxSwiftで書くとどういう風にコードが書き換わるのか、RxSwift, RxCocoaで何ができるのか、何が嬉しいのかが体感できる。

英語が得意ではない人でも、それほど苦労せず進められると思う。最後のバリデーションを実装する箇所は端末の言語設定が日本語だとうまく動かないので、英語にするとよい。

10月に読んだ本

 今月は5冊読みました。

間違いだらけのソフトウェア・アーキテクチャ―非機能要件の開発と評価 (Software Design plus)

間違いだらけのソフトウェア・アーキテクチャ―非機能要件の開発と評価 (Software Design plus)

 

 

 個人で書いたRailsアプリをHerokuで動かしたりしていて、Herokuに関する基礎知識が日本語でひとまとまりになっているのはとても有難いです。巻末の付録にあるTwelve-Factor Appについても自分は読んだことがなかったので勉強になりました。Twelve-Factorのプロセスはステートレスかつシェアドナッシングであるべきというのを読んで、HerokuだけではDBの永続化や画像ファイル等の保存ができないことの理屈が分かりました。あと設定は環境変数に格納するとか、常識なのかもしれませんが新たな知見でした。

オブジェクト指向でなぜつくるのか 第2版

オブジェクト指向でなぜつくるのか 第2版

 

 

ソフトウェアテスト技法ドリル―テスト設計の考え方と実際

ソフトウェアテスト技法ドリル―テスト設計の考え方と実際

 

 

How Google Works (ハウ・グーグル・ワークス)  ―私たちの働き方とマネジメント

How Google Works (ハウ・グーグル・ワークス) ―私たちの働き方とマネジメント

 

 

あと9月にやっていたアンダースタンディング コンピュテーションの写経が途中だったりとかあるので、完走したい。。

8月に読んだ本

 

モチベーション3.0 持続する「やる気!」をいかに引き出すか

モチベーション3.0 持続する「やる気!」をいかに引き出すか

 

 

アジャイルな時間管理術 ポモドーロテクニック入門

アジャイルな時間管理術 ポモドーロテクニック入門

 

 

パーフェクトRuby (PERFECT SERIES 6)

パーフェクトRuby (PERFECT SERIES 6)

 

 

ドラッカーさんに教わったIT技術者が変わる50の習慣

ドラッカーさんに教わったIT技術者が変わる50の習慣

 

 

メタプログラミングRuby

メタプログラミングRuby

 

 今月は5冊読みました。

Ruby勉強し始めて半年くらい経ったのですが、はじめてのRuby → パーフェクトRuby  メタプログラミングRubyっていうのは、Rubyの入門としては理解を深めやすいステップの踏み方だと感じました。途中プロジェクトオイラーRubyで解いてみたり、Rubyのデザパタ本読んだり、Railsチュートリアルやってみたりとかもしたけど。パーフェクトRubyは著者が日本人だから読みやすいし、コーディングのスタイルがお手本になると感じたので、けっこう写経しました。

モチベーション3.0はエモなかんじで自分はとても好きでした。(小並感)

ポモドーロテクニックは今仕事中やってみてます。余裕がある時はいいけど、忙しくなってくるとけっこうリズムが崩れてくるので、その辺徹底すると能率が上がってきそう。

ドラッカーさんは買った時は立ち読みして良いなって思ったんだけど、今改めて読むとわりと当たり前のことしか書いてなくて、刺激が足りなかったです。

 

7月に読んだ本

 

継続的インテグレーション入門

継続的インテグレーション入門

 

さすがに5年前の本なので紹介されているツールは古くなっていますが、原則的な部分でのCIに関する知見が身についた気がします。これの発展的内容で継続的デリバリーにつながるかんじかと。

「納品」をなくせばうまくいく ソフトウェア業界の“常識

「納品」をなくせばうまくいく ソフトウェア業界の“常識"を変えるビジネスモデル

 

 とても良かった。自分の仕事は価値を生み出せているか?自問自答を続ける日々です。

 

嫌われる勇気

嫌われる勇気

 

 

 

入門Chef Solo - Infrastructure as Code

入門Chef Solo - Infrastructure as Code

 

実践したい。冪等性。インフラ as code.

環境をコードに落とし込んで即座に再現可能にするということ。

2013年度読んだ技術書

今日で年度終わりなので、今年度(2013/04〜2014/03)読んだ本を書いていく。

積んでる本や読み途中の本は除く。

ソフトウェア開発の名著を読む 【第二版】 (技評SE選書)

ソフトウェア開発の名著を読む 【第二版】 (技評SE選書)

 

 去年の始めに、達人プログラマーアジャイルサムライリーダブルコード情熱プログラマーを立て続けに読んで、「どうやら技術書読むのは楽しいし勉強になるようだ」と思い手にとった。紹介されている本のなかで、昨年7月にピアソンの本が絶版になったことで現在手に入らない本があること、リーダブルコードやClean Coderみたいな比較的最近出た良本は載っていないなど有用でない点はあるけれど、自分が読んだ紹介されている本は全部良かった。

 

コーディングを支える技術 ~成り立ちから学ぶプログラミング作法 (WEB+DB PRESS plus)

コーディングを支える技術 ~成り立ちから学ぶプログラミング作法 (WEB+DB PRESS plus)

 

 

 

CODE COMPLETE 第2版 上

CODE COMPLETE 第2版 上

 

 良いコードを書くために。

 

エンジニアとしての生き方  IT技術者たちよ、世界へ出よう! (インプレス選書)

エンジニアとしての生き方  IT技術者たちよ、世界へ出よう! (インプレス選書)

 

 

 

ピープルウエア 第2版 ? ヤル気こそプロジェクト成功の鍵

ピープルウエア 第2版 ? ヤル気こそプロジェクト成功の鍵

 

 チームみんなで読みたい。何度も読み返したい本。

 

Joel on Software

Joel on Software

 

 

Team Geek ―Googleのギークたちはいかにしてチームを作るのか

Team Geek ―Googleのギークたちはいかにしてチームを作るのか

 

チームのメンバと上手くコラボレートするには。

 

100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊

100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊

 

 読書のお供に。

 

独習C# 第2版

独習C# 第2版

 

 C#をちゃんと勉強し直そうと読み直した。

 

Head Firstオブジェクト指向分析設計 ―頭とからだで覚えるオブジェクト指向の基本

Head Firstオブジェクト指向分析設計 ―頭とからだで覚えるオブジェクト指向の基本

 

オブジェクト指向をちゃんと勉強したいと思って読んだ。読み途中だけどHead Firstデザインパターンも合わせて読んだ。

 

ハッカーと画家 コンピュータ時代の創造者たち

ハッカーと画家 コンピュータ時代の創造者たち

 

 

IT業界を楽しく生き抜くための「つまみぐい勉強法」 (技評SE選書)

IT業界を楽しく生き抜くための「つまみぐい勉強法」 (技評SE選書)

 

 

Subversion実践入門:達人プログラマに学ぶバージョン管理(第2版)

Subversion実践入門:達人プログラマに学ぶバージョン管理(第2版)

 

 

 

デザインパターンとともに学ぶオブジェクト指向のこころ (Software patterns series)

デザインパターンとともに学ぶオブジェクト指向のこころ (Software patterns series)

 

 2回読んだ。この本でオブジェクト指向がちゃんと理解できたと思っている。Strategyパターンの説明は何度も読んだ。これからも何度も読み返す。いずれオブジェクト指向入門も読んで理解を深めたい。

 

小さなチーム、大きな仕事〔完全版〕: 37シグナルズ成功の法則

小さなチーム、大きな仕事〔完全版〕: 37シグナルズ成功の法則

  • 作者: ジェイソン・フリード,デイヴィッド・ハイネマイヤー・ハンソン,黒沢 健二,松永 肇一,美谷 広海,祐佳 ヤング
  • 出版社/メーカー: 早川書房
  • 発売日: 2012/01/11
  • メディア: 単行本
  • 購入: 21人 クリック: 325回
  • この商品を含むブログ (35件) を見る
 

 

はじめて学ぶソフトウェアのテスト技法

はじめて学ぶソフトウェアのテスト技法

 

 テストについてはまだ全然なので理解を深めたい。

 

アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣

アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣

 

 

リファクタリング―プログラムの体質改善テクニック (Object Technology Series)

リファクタリング―プログラムの体質改善テクニック (Object Technology Series)

  • 作者: マーチンファウラー,Martin Fowler,児玉公信,平澤章,友野晶夫,梅沢真史
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/05
  • メディア: 単行本
  • 購入: 94人 クリック: 3,091回
  • この商品を含むブログ (307件) を見る
 

 2回目。この本も何周もしたい。

 

ゆとりの法則 ? 誰も書かなかったプロジェクト管理の誤解

ゆとりの法則 ? 誰も書かなかったプロジェクト管理の誤解

 

 

Clean Coder プロフェッショナルプログラマへの道

Clean Coder プロフェッショナルプログラマへの道

 

 

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

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

 

 後半理解し難い部分が多かったので、再読する。

 

レガシーコード改善ガイド (Object Oriented SELECTION)

レガシーコード改善ガイド (Object Oriented SELECTION)

 

 

 

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

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

 

 普段漫然と書いているJavaScriptをもっと上手く書けるように。

 

強いチームはオフィスを捨てる: 37シグナルズが考える「働き方革命」

強いチームはオフィスを捨てる: 37シグナルズが考える「働き方革命」

 

 

 

増補改訂版Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門

 

 これも何度も読む本。

 

初めてのRuby

初めてのRuby

 

 Rubyを始めたくて読んだ。irbで動かしたり写経してみたり。「プログラミングの入門書ではなく、Rubyの入門書」なるほど。とても楽しく読んだ。

 

知識ゼロから学ぶ ソフトウェアテスト

知識ゼロから学ぶ ソフトウェアテスト

 

 

 

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

 

 

パターン指向リファクタリング入門~ソフトウエア設計を改善する27の作法

パターン指向リファクタリング入門~ソフトウエア設計を改善する27の作法

 

 

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

 

 

自分は普段本を読むときは、大事だと思った箇所、理解できなかった箇所に片っ端からふせんを貼って、一度最後まで読み終えたらふせんを貼った箇所に戻るという読み方をしている。ただ漫然と読むよりは断然理解が深まるけれど、今はそれだけだと足りない気がしている。

同じ本を2回は読んで、関連する書籍も読んで腹に落とすのが必要だと感じていて、そのあたりは うさみみさんの本の読み方 - Togetterまとめ を読んで、なるほど参考にしたいと思ったところ。

The Art of Unit Testing: with examples in C# 3

The Art of Unit Testing: With Examples in C#

The Art of Unit Testing: With Examples in C#

 

CHAPTER 3. Using Stubs to break dependencies

・stubの定義

・mock, fakeとの違い

・依存性の注入(dependency injection)をどのように行うべきか

個人的な気付き

・依存性の注入方法、"Extract and Override"

テスト対象を継承したクラスを作成し、外部のクラスに依存している(テスト対象でない)メソッドをオーバーライドする。

オブジェクト指向設計と、テスト容易性も加味したオブジェクト指向設計(TOOD = testable object-oriented design)は必ずしも一致しない。