- "Railway Oriented Programming"(ROP)に関する記事で、ソフトウェア開発における関数型のエラー処理手法を扱う
- 鉄道の比喩に基づくROPは、理解しやすく面白い
- GitHubで、ROP方式を使って通常のC#とF#を比較するプロジェクトを作成
- ROPを極端に使うことへの警告として、"Against Railway-Oriented Programming"というタイトルの記事でこれを詳しく説明
- NDC London 2014、NDC Oslo 2014、Functional Programming eXchange 2014 など、さまざまなカンファレンスでこのテーマを発表
- ROPへのアプローチは、HaskellのEitherモナドとKleisli合成に関連しているが、モナドのチュートリアルを目指したものではない
- 具体的な例から始めて抽象的な概念へ移ることの重要性を強調
- ユーザー定義エラー型の一覧の使用、モナディック関数と非モナディック関数のパイプラインへの統合、例外からエラーケースへのマッピング、モナディック関数の並列結合などの技法を含むROPアプローチ
- 一貫したスタイルを強制し、保守しやすい汎用ROPテンプレートの提供を目指す
- NuGetと連携する、すぐに使えるF#ライブラリを求める人にはChessieプロジェクトを推奨
- ROP手法を使ったサンプルWebサービスの作成と、FizzBuzzへのROPアプローチの適用
- EitherとKleisli合成の詳細を知りたい人向けに、モナドに関するさまざまな投稿やチュートリアルを含む追加読書を提案
2件のコメント
欠陥のないプログラムを作るための Railway-Oriented Programming
Hacker Newsの意見
withキーワードの使用を、ROPの実用的な実装として強調している。これは関数の順次実行を可能にし、いずれかの関数が期待される出力と一致しない場合には早期リターンを可能にする。