『Javaパフォーマンス』読書会 終了 [読書会]
技術的負債(6) [技術的負債]
Becoming a Better Programmer: A Handbook for People Who Care About Code
- 出版社/メーカー: O'Reilly Media
- 発売日: 2014/10/03
- メディア: Kindle版
この本の「Chapter 13: A Tale of Two Systems」からの抜粋(p.122)です。
技術的負債に全く関心を払っていないソフトウェア組織が最後はどうなってしまうのかというのも関心事ですが、最近の個人的関心事は、そのような組織で働くことで個々のソフトウェアエンジニアの成長に対して何が起きるのかということです。Technical debt is a term coined by Ward Cunningham that’s widely used in the software industry today. The metaphor leans on the financial world: making a decision to help ship software quickly is like taking on a loan. It can enable you to do something now that you would not otherwise be able to do.Technical Debt
But you can’t ignore that loan—you always have to pay it back. The longer it takes to pay back, the more it costs you. If you fail to make timely repayments, you’ll be stuck paying off interest on the loan, and your purchase power diminishes.
In the software world, that means return to your code to update it, or else your progress will slow as the code bogs down in accrued debt. This is important: in the long run, lower code quality means longer development times, but a responsible short-term loan can speed things up.
Technical debt might be deferred refactoring, design adjustments that reflect what you’ve discovered, waiting to update libraries or toolchains until after the next major release, or rationalising the logging/debugging scaffolding.
This is a colourful metaphor that can be misused: technical debt does not just mean doing something badly. Sometimes writing bad code is justified as being “pragmatic”; there is a difference between a pragmatic choice and a sloppy one.
Consciously managing technical debt is a powerful weapon in your development arsenal. Don’t let debt build up, and keep it visible. Like a real loan, pay back debt as early as possible to avoid suffering excessive interest and charges.
書籍『The Go Programming Language』(9) [golang]
The Go Programming Language (Addison-Wesley Professional Computing Series)
- 出版社/メーカー: Addison-Wesley Professional
- 発売日: 2015/11/16
- メディア: Kindle版
すでに紙の本とKindle版が発売されているので、購入された人も多いと思います。紙の本の索引(Index)のRob Pikeのところに次のようにあります。
Pike, Rob xi, xiii, 67, 107
p.107には次のようなコード例が掲載されいます。
実は、これはRob Pikeに関連する例なので、索引が追加されています。関連しているのは1980、archery、silverの三つです。私は知らなかったのですが、これはRob Pikeに関するよく知られたジョークのようです。array ["gold", "silver", "bronze"] object {"year": 1980, "event": "archery", "medals": ["gold", "silver", "bronze"]}
Rob Pikeは経歴にジョークで、1980年のオリンピックのアーチェリ競技で銀メダルを取ったと書いていたようです。1980年のモスクワオリンピックを、米国およびカナダ(それに日本)はボイコットしたので彼がオリンピックで銀メダルを取ることはできるはずもないということです。詳しくは、http://c2.com/cgi/wiki?RobPike を参照してください。
第3期「Java 8研修」コース終了 [プログラミング言語Java教育]
Javaプログラマーなら習得しておきたい Java SE 8 実践プログラミング
- 出版社/メーカー: インプレス
- 発売日: 2014/09/22
- メディア: Kindle版
この本をテキストとして学ぶコースですが、先週に続いて第3期が11月20日(金)に終了しました。修了生は8名でした。これで、延べ26名が修了したことになります。
第2期「Java 8研修」コース終了 [プログラミング言語Java教育]
Javaプログラマーなら習得しておきたい Java SE 8 実践プログラミング
- 出版社/メーカー: インプレス
- 発売日: 2014/09/22
- メディア: Kindle版
この本を使用した第2期が11月13日(金)に終了しました。修了生は5名でした。6回で終了を予定したコースなのですが、5回で終了しました。第3期も来週の金曜日に終了予定です。
書籍『プログラミング原論』再出版されました [本]
2010年にピアソン桐原から出版され、その後、絶版になった『プログラミング原論』が、東京電機大学出版局から再出版されました。再出版に際して原著の正誤表をすべて反映していますし、著者による「日本語版の読者へ」(下記)が新たに追加されています。また、本もB5版になり文字も大きくなっています。
日本語版の読書者へ
私達は,日本語版の読者向けにまえがきを書く機会を提供してくれた出版社および訳者の柴田芳樹氏に深く感謝しています。
この本の精神は,日本の美学にあります。この本は,必要最低限の数の言葉で,できる限り多くを説明しようとしています。古くからの俳句のように17語まで減らすことはできませんが,俳句が少ない語数で表現することに影響を受けました。この本は,あまり厚くはありません。実際,無駄な厚みが全くないことを願っています。私達は,すべての言葉が意味を持つように努めました。
故障しない自動車や修理を全く必要としないテレビでもって,日本のエンジニアが世界を変え始めた頃に,私達は大人になりました。私達の望みは,ソフトウェアに対する私達の取り組みによって,自動車やテレビと同じように頑強なものを,プログラマが作り出すことを可能にすることです。日本のエンジニアのおかげで,一般の人々が自動車に関する機械知識を持っている必要がなく,自動車は常に走ると想定できるように変わったのです。ソフトウェア業界も自動車業界と同じように予想できるようになってもらいたいと思っています。そうすれば,ソフトウェアは,直感的で芸術家肌のプログラマではなく,有能なプログラマによって生み出されるようになるでしょう。
この本は,出発点に過ぎません。ソフトウェア開発を工業化するための努力のほとんどは,これからの未来に行われます。この本の読者の方々が,その未来をより現実的にしてくれることを望んでいます。
訳者である柴田芳樹氏には,注意深い翻訳だけでなく,誤りを見つけてくれたことにも感謝します。
Paul McJones,Alexander Stepanov
米国,カリフォルニア州
2015年8月
Go言語関連の新刊 [golang]
Go言語関連の出版予定も入れた新刊です。
Go言語関連は過去他にも書籍が出ていますが、翻訳は私の『プログラミング言語Goフレーズブック』だけのようです。
The Go Programming Language (Addison-Wesley Professional Computing)
- 作者: Alan A. A. Donovan
- 出版社/メーカー: Addison-Wesley Professional
- 発売日: 2015/11/05
- メディア: ペーパーバック
Go言語関連は過去他にも書籍が出ていますが、翻訳は私の『プログラミング言語Goフレーズブック』だけのようです。
API設計の基礎(8) [API設計の基礎]
2009年に書き始めて、しばらく書かない期間があったのですが、とりあえず最初の版としたいと思います。また内容もかなり縮小されて3章から構成され37頁しかありません。
「まえがき」からの抜粋です。
第 1 章 C/C++での実装の隠蔽
第 2 章 Java での実装の隠蔽
第 3 章 防御的プログラミング
「まえがき」からの抜粋です。
1978 年に大学で初めてコンピュータに触れてから様々なソフトウェア開発に従事してきました。しかし、大学での 6 年間や社会人となってからも、非効率なソフトウェア開発をしてきたのが現実です。C 言語で実装を隠蔽することを覚えたのは、社会人となってから 7、8 年過ぎてからでしたし、防御的プログラミングを始めたのは何と社会人となってから 15 年も過ぎていました。
本書では、C 言語、C++言語、Java 言語を中心として、日々のソフトウェア開発の中で意識して注意を払うべきことをまとめたものです。それらを実践するのとしないとでは、日々の開発の生産性が大きく左右されます。残念ながら、それらを教えられたり、指導されながらソフトウェア開発を行っているソフトウェアエンジニアは少ないです。
私自身も、特に誰かに教えてもらったのではなく、自分で考えたり、書籍を通して学んだりしたしました。しかし、最初にきちんと学んでいれば、もっと良いソフトウェア作りができたと思っています。
・・・途中省略・・・
本書は、私自身がソフトウェア開発を行いながら学んだことをまとめたものであり、その内容には偏りがあるかもしれません。しかし、本書を通して、みなさんが私と同じような遠回りをすることなくソフトウェア開発をされることの助けとなれば幸いです。