SSブログ
API設計の基礎 ブログトップ

API設計の基礎(9) [API設計の基礎]

「API設計の基礎」は37頁しかないですが、それを題材として勉強会をしたという人達から誤字・脱字を指摘していただき、修正したものをアップしました。


2009年に最初のドラフトを公開してからもう7年になります。さまざまなプロジェクトのコンサルテーション(レビュー)を通して分かるのは、「API設計の基礎」に書いてあることを部分的でもきちんと実践しているエンジニアやソフトウェア開発組織は非常に少ないということです。

「まえがき」に次のように書いています。
本書は、私自身がソフトウェア開発を行いながら学んだことをまとめたものであり、その内容には偏りがあるかもしれません。しかし、本書を通して、みなさんが私と同じような遠回りをすることなくソフトウェア開発をされることの助けとなれば幸いです。
一人のエンジニアが遠回りするのはその人の問題で終わりますが、ソフトウェア開発組織が遠回りすることは、その組織に属している現在のエンジニアや将来その組織に入ってくる若い人達が遠回りをして、結果的に技術的な負債を積み上げたり、非効率なデバッグを行ったりすることになると思います。

その意味で、今回のようにグループで勉強会を行ってもらえるというのは、その勉強会に参加している人達が属している組織に対して何らかのよい影響を与えるのではないかと思います。

API設計の基礎(8) [API設計の基礎]

2009年に書き始めて、しばらく書かない期間があったのですが、とりあえず最初の版としたいと思います。また内容もかなり縮小されて3章から構成され37頁しかありません。
第 1 章 C/C++での実装の隠蔽
第 2 章 Java での実装の隠蔽
第 3 章 防御的プログラミング

「まえがき」からの抜粋です。
 1978 年に大学で初めてコンピュータに触れてから様々なソフトウェア開発に従事してきました。しかし、大学での 6 年間や社会人となってからも、非効率なソフトウェア開発をしてきたのが現実です。C 言語で実装を隠蔽することを覚えたのは、社会人となってから 7、8 年過ぎてからでしたし、防御的プログラミングを始めたのは何と社会人となってから 15 年も過ぎていました。
 本書では、C 言語、C++言語、Java 言語を中心として、日々のソフトウェア開発の中で意識して注意を払うべきことをまとめたものです。それらを実践するのとしないとでは、日々の開発の生産性が大きく左右されます。残念ながら、それらを教えられたり、指導されながらソフトウェア開発を行っているソフトウェアエンジニアは少ないです。
 私自身も、特に誰かに教えてもらったのではなく、自分で考えたり、書籍を通して学んだりしたしました。しかし、最初にきちんと学んでいれば、もっと良いソフトウェア作りができたと思っています。

・・・途中省略・・・

 本書は、私自身がソフトウェア開発を行いながら学んだことをまとめたものであり、その内容には偏りがあるかもしれません。しかし、本書を通して、みなさんが私と同じような遠回りをすることなくソフトウェア開発をされることの助けとなれば幸いです。



API設計の基礎(仮題)(7) [API設計の基礎]

長い期間更新していませんでしたが、更新しました。まだ、ドラフトです。



API設計の基礎(仮題)(6) [API設計の基礎]

夏に再開すると書いたのですが、その後、あまり進んでいません。相変わらず、第1章だけですが修正版をアップしました。

API設計の基礎(仮題)(5) [API設計の基礎]

延び延びになっていましたが、執筆を再開しました。まだ、第2章には着手していませんが、第1章の「1.5 公開ヘッダーファイルの配置」に加筆したのと、「1.7 補足:警告について」を追加しました。


(「API設計の基礎(仮題)(4)」)

API設計の基礎(仮題)(4) [API設計の基礎]

第1章を書き終えた段階で、執筆作業が止まっていましたが、今年は何とか残りの章も執筆したいと思っています。とりあえず、リスト1-3にバグがあったので修正したものです。


(「API設計の基礎(仮題)(3)」「API設計の基礎(仮題)(2)」「API設計の基礎(仮題)」)

「API設計の基礎」コース [API設計の基礎]

書きかけのままになっている「API設計の基礎」は、全く更新できていません。本来書きにたかった内容をベースとして「API設計の基礎」コースを新たに社内で行います。時間が取れたら「API設計の基礎」も、徐々に更新したいと思います(でも、多分、年内は無理かな・・・)。

今回のコースを最後として、私自身が何かの教育コースを社内向けに新たに作って行うのは最後です。教えるべきことは、まだ色々とあります。しかし、自発的に継続した学習を行わない文化を形成してしまった開発組織向けに教育を行っても、焼け石に水です。

今度も継続的に行うのは、参加者の自発的な努力を促す「プログラミング言語Java」コースと朝の勉強会(読書会)だけになっていくかと思います。

(「教育と場」)

API設計の基礎(仮題)(3) [API設計の基礎]

書籍の翻訳を始めたため進んでいませんが、今までのフィードバックを反映しました。


翻訳の合間に、第2章に着手したいと思っています。

API設計の基礎(仮題)(2) [API設計の基礎]

第1章でカバーする範囲を分割することにしました。その結果、第1章は短い内容となっています。まだ、十分に読み返していませんので、誤字脱字等があるかと思います。


非常に基本的なテクニックしか書かれていませんが、何かの参考になればと思います。

内容に関するコメントは、このブログへのコメントではなく、直接私宛にメールでお願いします。
  • 件名に「API設計の基礎」という文字列を入れてください。その文字列で受信メールをフィルターしますので。
  • メールの送信に関しては、私のホームページの右下にあるボタン(「メールを送る」)を利用してください。
  • 氏名をお知らせください。匿名のメールはご遠慮ください。

API設計の基礎(仮題) [API設計の基礎]

本として出版する予定はありませんが、『API設計の基礎(仮題)』として、今までの経験をまとめたものを執筆しようと思います。最終版をどのようにして公開するかは未定です。

とりあえず、「まえがき」を書いてみました。


根気良く書き続けられるかが問題ですが・・・
API設計の基礎 ブログトップ