来春プログラミングするのは私です。人にお勧めしたいことも含みつつ、書いてみることにします。
(自分のために書いているので、やってないことも含みますがご了承ください。)
Coq
http://coq.inria.fr/
定理証明支援器として知られるCoqです。
特定の値に対して行われるテストとは異なり、数学的証明に基づいてプログラムの正しさを検証することができ、入力できる(型により制限された範囲の)すべての値に対して正しいということができます。論理関係等の勉強にもなるので結構面白いです。
ただ全自動ではなく、Coqが補助しつつ証明を進めることになります。
Coqで書いた関数をHaskell、OCaml、Scheme、Ruby、Scalaのコードに変換できるので、証明した関数を用いて普段のプログラミングに活用することもできます。これに関連して「Types and Programming Languages」という本にも興味があります。さすがに後回しになると思いますが…
参考ページ&書籍
プログラミングCoq - http://www.iij-ii.co.jp/lab/techdoc/coqt/
Coq Tutorial - http://www.slideshare.net/tmiya/coq-tutorial
- 作者: Yves Bertot,Pierre Castéran,G. Huet,C. Paulin-Mohring
- 出版社/メーカー: Springer
- 発売日: 2004/05/14
- メディア: ハードカバー
- 購入: 3人 クリック: 28回
- この商品を含むブログ (8件) を見る
Types and Programming Languages (MIT Press)
- 作者: Benjamin C. Pierce
- 出版社/メーカー: The MIT Press
- 発売日: 2002/01/04
- メディア: ハードカバー
- 購入: 5人 クリック: 86回
- この商品を含むブログ (53件) を見る
Alloy
http://alloy.mit.edu/alloy/
Coq等の証明は厳密性が高い分、コストも高いのが難点になるのでもう少し厳密性を排しつつ、効果的にソフトウェアの欠陥がないことを数学的に検証する"軽量な形式手法"を用いて検証するのがAlloyです(であってるはず)。
まだ始めてないので夏になる前にはやってみたいところです。
参考ページ&書籍
- 作者: Daniel Jackson,中島震,今井健男,酒井政裕,遠藤侑介,片岡欣夫
- 出版社/メーカー: オーム社
- 発売日: 2011/07/15
- メディア: 単行本(ソフトカバー)
- 購入: 8人 クリック: 274回
- この商品を含むブログ (35件) を見る
OCaml
http://caml.inria.fr/
オブジェクト指向+関数型のプログラミング言語です。
ネイティブコードも吐き出せ、C言語などとの連携も取れます。使いこなせるようになりたいですが、なかなか難しいです。
問題としてはWindows環境との相性の悪さが結構あります。なのでWindows環境ではなかなかお勧めできない言語です(WindowsではOCamlと同じMLの方言であるF#と言う言語がいいですね)。
あと日本だけでなく海外でもそこまで多くの実践系の書籍がないことが初心者以上になることを難しくしている気がしますが、今年中に「Real World OCaml」という本が出るらしいです。楽しみですね。
参考ページ&書籍
OCaml.jp - http://ocaml.jp/
ocaml-nagoya - http://www.itpl.co.jp/ocaml-nagoya/
プログラミング in OCaml ~関数型プログラミングの基礎からGUI構築まで~
- 作者: 五十嵐淳
- 出版社/メーカー: 技術評論社
- 発売日: 2007/11/29
- メディア: 単行本(ソフトカバー)
- 購入: 11人 クリック: 169回
- この商品を含むブログ (51件) を見る
継続的デリバリー
本もらったので、読んでみようと思ってます。
実際にビジネス、ユーザを巻き込んだ形での素早く安全なデリバリー(≠リリース)ができるならそれが一番いいので、それをいかに回すかちゃんと勉強しようと思ってます。
参考ページ&書籍
継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化
- 作者: David Farley,Jez Humble,和智右桂,高木正弘
- 出版社/メーカー: KADOKAWA/アスキー・メディアワークス
- 発売日: 2012/03/14
- メディア: 大型本
- 購入: 24人 クリック: 567回
- この商品を含むブログ (53件) を見る
アジャイルな見積りと計画づくり
これは完全に本のタイトルなんですが、見積りや計画づくりと言ったことは難しいのでちゃんと勉強してみようと思ってます。本を読んでいると意外と基本的な用語もちゃんと知らないときがあったりして、そのあたりの勉強もしつつ読み進めてます。
参考ページ&書籍
アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~
- 作者: Mike Cohn,マイクコーン,安井力,角谷信太郎
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2009/01/29
- メディア: 単行本(ソフトカバー)
- 購入: 74人 クリック: 764回
- この商品を含むブログ (226件) を見る
TDD
TDDです。
テストしやすいことが参照透過性にもつながると思うので、TDDをしつつ少しでもプログラミング中にテストを常に意識しつつ書いていくようにしようと思ってます。
去年まではソフトウェアテストそのものの知識の不足があって、なかなかTDDが上手く出来ていなかったと思います。これからはソフトウェアテストの技法や知識を生かしつつTDDをやっていきたいと思ってます。
ソフトウェア設計
ソフトウェア設計と一口に言っても色々あると思うのですが、全般的にやってみたいことが多いです。ユースケース駆動開発の本は読みなおしたいですね。
あと今は「インターフェース指向設計」と言う本があるらしいのでちょっと読んでみたいかなと思ってます。
参考書籍
ユースケース駆動開発実践ガイド (OOP Foundations)
- 作者: ダグ・ローゼンバーグ,Doug Rosenberg,三河淳一,船木健児,佐藤竜一
- 出版社/メーカー: 翔泳社
- 発売日: 2007/10/17
- メディア: 大型本
- 購入: 11人 クリック: 105回
- この商品を含むブログ (33件) を見る
インターフェイス指向設計 ―アジャイル手法によるオブジェクト指向設計の実践
- 作者: Ken Pugh,角谷信太郎(監訳),児島修
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/05/24
- メディア: 大型本
- 購入: 16人 クリック: 357回
- この商品を含むブログ (67件) を見る
全部やるのは難しいので一歩ずつ前進していこうと思います。