セクション
1543 ページ目
Posts
ユーザー登録フォームの入力チェックを、Perlのif文だけで書いてみる。名前とメールアドレスから始める【if文】
形式を足すたびにif/elseが伸びるPerlのデータエクスポーターを、Mooで育ててStrategyパターンにたどり着く全10回【目次】
形式ごとのクラスを差し替えて使う設計には、Strategyという名前がある。作ったクラスを3つの役割に当てはめる【Strategyパターン】
部品はそろったのに、まだYAMLで出せない。YamlExporterを足し、全部を1本のエクスポーターにまとめる【統合】
出力はクラスに分けたのに、どのクラスをnewするかのif/elseがメインに残っている。形式名から選ぶexporter_forを作る【Factory的な選択】
エクスポーターでない値を入れても、export_dataを呼ぶまでエラーにならない。isaでExporterRoleかを確かめ、入れた時点で止める【isa】
同じデータをCSVとJSONの両方で出したいのに、作ったあとでエクスポーターを替えられない。exporterをrwにして実行中に切り替える【実行時の切り替え】
メイン処理がエクスポーターを直接呼んでいて、同じ出力を別の場所で使うとコードを写すことになる。処理を任せるDataExporterを作る【委譲】
どのエクスポーターもexportを持っているのは、たまたまだ。Moo::Roleのrequiresで約束にする【ロール】
4形式の出力処理が1つのif/elseに詰まっている。形式ごとにexportを持つCsvExporterとJsonExporterに分ける【責務分離】
形式を足すたびにelsifが伸び、CSVを直すだけでも全形式の処理に触れる。if/elseの肥大化を確かめる【条件分岐の悩み】
CSVとJSONで書き出すPerlのデータエクスポーターを、一から作る。まずはif/elseで形式を切り替える【if/else】
Undoが1回しか効かないPerlのテキストエディタを、Mooで育ててCommandパターンにたどり着く全10回【目次】
操作をオブジェクトにして履歴に積む設計には、Commandという名前がある。作ったクラスを5つの役割に当てはめる【Commandパターン】
部品はそろったのに、まだエディタとして触れない。i・d・u・rを受け付ける対話型のCLIエディタに仕上げる【統合】
1
…
34
35
36
…
103