Effective Java 3rd Edition

Effective Java の 3rd Edition がついに発売するようだ。 Effective Java (3rd Edition)作者: Joshua Bloch出版社/メーカー: Addison-Wesley Professional発売日: 2017/12/29メディア: ペーパーバックこの商品を含むブログを見る ここからなら EPUB で買え…

ISUCON 7 で予選敗退した

ISUCON というプログラミングコンテストに参加し予選敗退した(100位近辺でした)。 isucon.net 準備 予選の一ヶ月くらい前に、会社の同僚から「今度 ISUCON に参加しません?」という話があって、会社のメンバー三人で参加することにした。 準備として、 Go…

45年間で東京23区の若年層人口が半減して、高齢者人口は3倍になったという話

IT と全然関係ない話。 たまーに「このニュースのこの数字は覚えておきたいなー」と思うことがあって、そういう時どうしようかなーと思ってたけど、ささっとブログに書いておくことにした(ブログ更新頻度維持のためにも)。 今回はこのニュース。 www.nli-r…

go build -gcflags '-N -l' とは何か

Go

Go を触っててデバッグビルドしようと思って調べる。 いたるところで次のようにしろ出てくる。 go build -gcflags '-N -l' ... で、この -gclags と -N と -l は何なのか。 -gcflags コンパイルツールに渡す引数を指定できるフラグ -gcflags ‘arg list’ argu…

『Androidを支える技術〈Ⅰ〉 ~ 60fps を達成するモダンな GUI システム』を読んで

『Androidを支える技術〈Ⅰ〉 ~ 60fps を達成するモダンな GUI システム』を読みました。 Androidを支える技術〈I〉──60fpsを達成するモダンなGUIシステム (WEB+DB PRESS plus)作者: 有野和真出版社/メーカー: 技術評論社発売日: 2017/02/22メディア: 単行本…

Chapter 8 Pragmatic Projects【The Pragmatic Programmer】

The Pragmatic Programmer の Chapter 8. Pragmatic Project を読んだ。内容は次の通り。 41 Pragmatic Teams 42 Ubiquitous Automation 43 Ruthless Testing 44 It’s All Writing 45 Great Expectations 46 Pride and Prejudice Great Expectation 他人の期…

Chapter 7 Before the Project【The Pragmatic Programmer】

The Pragmatic Programmer の Chapter 7. Before the Project を読んだ。内容は次の通り。 36 The Requirements Pit 37 Solving Impossible Puzzles 38 Not Until You’re Ready 39 The Specification Trap 40 Circles and Arrows 2つほど面白い章があったの…

Chapter 6. While You Are Coding【The Pragmatic Programmer】

The Pragmatic Programmer の Chapter6. While You Are Coding を読んだ。 内容は次の通り。 31 Programming by Coincidence 32 Algorithm Speed 33 Refactoring 34 Code That’s Easy to Test 35 Evil Wizards 印象に残る章がいくつかあったので書き残してお…

『サピエンス全史』を読んで

ちょっと前、と言っても数ヶ月は経ったけど『サピエンス全史』を読んだ。 サピエンス全史(上)文明の構造と人類の幸福作者: ユヴァル・ノア・ハラリ,柴田裕之出版社/メーカー: 河出書房新社発売日: 2016/09/08メディア: 単行本この商品を含むブログ (34件) を…

Chapter 5. Bend, or Break【The Pragmatic Programmer】

The Pragmatic Programmer の Chapter 5. Bend, or Break を読んだ。 内容は次の通り。 26 Decoupling and the Law of Demeter 27 Metaprogramming 28 Temporal Coupling 29 It’s Just a View 30 Blackboards 一通り読んだけど、あまり印象に残る話題がなか…

Chapter 4. Pragmatic Paranoia【The Pragmatic Programmer】

Pragmatic Programmer の Chapter 4. Pragmatic Paranoia を読んだ。 内容は次の通り。 21 Design by Contract 22 Dead Programs Tell No Lies 23 Assertive Programming 24 When to Use Exceptions 25 How to Balance Resources 契約によるプログラミングと…

Chapter3. The Basic Tools【The Pragmatic Programmer】

Pragmatic Programmer の Chapter 3. The Basic Tools を読んだ。 内容は次の通り。 14 The Power of Plain Text 15 Shell Games 16 Power Editing 17 Source Code Control 18 Debugging 19 Text Manipulation 20 Code Generators この章はツールの紹介とか…

Chapter2. A Pragmatic Approach【The Pragmatic Programmer】

Pragmatic Programmer の Chapter 2. A Pragmatic Approach を読んだ。 内容は次の通り。 7 The Evils of Duplication 8 Orthogonality 9 Reversibility 10 Tracer Bullets 11 Prototypes and Post-it Notes 12 Domain Languages 13 Estimating 曳光弾開発と…

第 218 回 TOEIC の結果

そういえばもう一ヶ月くらい前になるけど、第 218 回 TOEIC の結果が返ってきた。 Listening Reading Total 430 415 845 結果として前回から100点くらい伸びた。Listening も Reading も前回の TOEIC よりはきちんと理解して解けたところが多かった。理解で…

『基礎からしっかり学ぶ C++ の教科書』を読んで

『基礎からしっかり学ぶ C+の教科書』という本を読んだ。 基礎からしっかり学ぶC++の教科書 C++14対応作者: 矢吹太朗,WINGSプロジェクト山田祥寛出版社/メーカー: 日経BP社発売日: 2017/02/16メディア: 単行本この商品を含むブログを見る 著者の方に贈ってい…

『ディープワーク』を読んで

ディープワークを読んだ(邦訳のタイトルは『大事なことに集中する』)。 大事なことに集中する―――気が散るものだらけの世界で生産性を最大化する科学的方法作者: カル・ニューポート,門田美鈴出版社/メーカー: ダイヤモンド社発売日: 2016/12/09メディア: …

『ファスト&スロー』を読んで

『ファスト&スロー』を読んだ。 ファスト&スロー (上)作者: ダニエルカーネマン,村井章子出版社/メーカー: 早川書房発売日: 2012/12/28メディア: Kindle版購入: 2人 クリック: 34回この商品を含むブログ (7件) を見る ファスト&スロー (下)作者: ダニ…

Communicate!【The Pragmatic Programmer】

エンジニアとしてコミュニケーションは非常に重要だ。 エンジニアはコミュニケーションをとる必要があるし、上手にコミュニケーションできれば得るものも大きい。この章ではよいコミュニケーションを取るための心がけが挙げられている。 何が言いたいかを知…

Your Knowledge Portfolio【The Pragmatic Programmer】

知識ポートフォリオを構築して適切に管理しよう。 知識ポートフォリオは投資におけるポートフォリオと同じような視点で管理するとよい。各アイテムの間でバランスを取り、リスクの高いアイテムと低いアイテムを組み合わせよう。 ただし、もっとも重要なのは…

Good-Enough Software【The Pragmatic Programmer】

完璧でバグのないソフトウェアはありえない。 だからといって悲観する必要はない。 ユーザーにとって、経営者にとって、そして私たちの心の平穏にとって、充分なクオリティというものが存在する。完璧でなくても充分よければそれでいい。 ユーザーは明日の完…

Stone Soup and Boiled Frogs【The Pragmatic Prigrammer】

石のスープ 戦争から帰ってきた兵士が村に帰ってきた。しかし、彼らは食料を恵んでもらえない。そこで彼らは湧いたお湯に石を入れ『あとは人参があれば美味しいスープができるのになぁ』とつぶやく。すると村人たちが興味を持ち、人参だけでなく様々な食材を…

Software Entropy【The Pragmatic Programmer】

二つ目は "Software Entropy"。 割れ窓理論 ソフトウェアは物理世界とは隔離されているが、エントロピー増大の法則からは逃げられない。 どんなに素晴らしいソフトウェアであっても時間と共に朽ちていく。こういう状況を錆びに例えて "Software Rot" という…

The Cat Ate My Source Code【The Pragmatic Programmer】

明けましておめでとうございます。 2017年もすでに10日ほど経過してますが…。 一年半くらい書いてきた Effective Java シリーズが終わってしまって、イマイチ継続的にブログを書く感じにならない。 やっぱり、何かをシリーズ化してノルマにすることがブログ…

見積もりのずれ

最近、見積もりをしてから仕事に取り掛かるようにしている。プロのソフトウェアエンジニアとして見積もり能力は重要だと思う(たぶん)。「それ、簡単にできますよ(どやぁ」と放言して、できたのは半年後なんてのはプロとはいえない。 ちゃんと見積もって実…

【Effective Java】各項目のまとめ

Effective Java シリーズの各項目の一覧。 第1章:はじめに 第1章:はじめに 第2章:オブジェクトの生成と消滅 項目1:コンストラクタの代わりに static ファクトリーメソッドを検討する 項目2:数多くのコンストラクタパラメータに直面した時にはビル…

『人を動かす』を読んだ

なるべく読んだ本の感想は書いておこう。今までは書いたり書かなかったりだったから。 最近、『人を動かす』を読んだ。 人を動かす 文庫版作者: D・カーネギー,山口博出版社/メーカー: 創元社発売日: 2016/01/26メディア: 文庫この商品を含むブログ (5件) を…

【Effective Java】項目78:シリアライズされたインスタンスの代わりに、シリアライズ・プロキシを検討する

Serializable を実装すると、バグやセキュリティ上の問題が発生する可能性が高くなります。 コンストラクタ以外でインスタンスが生成されるようになるからです。 これらの可能性を大幅に減らす技法が、シリアライズ・プロキシ・パターン(Serialization Prox…

子育てエンジニアの一日(朝)

いつもとは志向を変えて自分の一日について書いてみる。 自分はソフトウェアエンジニア。結婚していて子供がいる。子供は一歳で、奥さんは働いている。いわゆる共働き家庭だ。 そんな人間のある日の一日。 朝 07:00 起床する。子供はまだ寝ている。顔を洗い…

【Effective Java】項目77:インスタンス制御に対しては、readResolve より enum 型を選ぶ

シングルトンのクラスをシリアライズする場合、readResolve メソッドを使ってインスタンス制御するよりも enum 型による実装を選ぶべきです。 readResolve メソッド まず readResolve メソッドについて説明します。 例えば、次のようなシングルトンクラスを…

【Effective Java】項目76:防御的に readObject を書く

ストリームからオブジェクトをデシリアライズする readObject メソッドは実質的に public コンストラクタとして機能します。 そのため、クラスのコンストラクタで検査している正当性や不変式を readObject にも実装する必要があります。 Period クラスの例 …