スキップしてメイン コンテンツに移動

Saurus Legacy

レガシーコード改善ガイド (Object Oriented SELECTION)『レガシーコード改善ガイド』を読んだ、と言っていいものかどうか。ざっと全体は眺めたつもりだけれど、章を行ったり来たりしながら読んだので、飛ばしたところがないとどうも断言し辛い。

どうしてそんな読み方をしたのか、というと、本書の構成は線形じゃないから。第2部「ソフトウェアの変更」と第3部「依存関係を排除する手法」の各章の間にクロスリファレンスが張り巡らされていて、最初から順番に読んでいくと、説明なしにどんどん新しい用語が使われていく。とてもじゃないけれど、理解できない。

だから、第1部だけはざっと読んで概要を掴んだら、第2部「ソフトウェア」の変更の章タイトルを入り口に必要な範囲を読むのがいいと思う。実際、「序文」の「本書の使い方」もそう勧めている。各章タイトルがFAQのFAになっているから、自分が置かれている状況に近い章が、大抵は見つかるはず。

入り口となる第2部「ソフトウェア」の章タイトルは、次の通り。なかなかユニークなタイトルが並んでいると思う。
  1. 時間がないのに変更しなければなりません
  2. いつまで経っても変更作業が終わりません
  3. どうやって機能を追加すればよいのでしょうか?
  4. このクラスをテストハーネスに入れることができません
  5. このメソッドをテストハーネスで動かすことができません
  6. 変更する必要がありますが、どのメソッドをテストすればよいのでしょうか?
  7. 1カ所にたくさんの変更が必要ですが、関係するすべてのクラスの依存関係を排除すべきでしょうか?
  8. 変更する必要がありますが、どんなテストを書けばよいのかわかりません
  9. ライブラリへの依存で身動きが取れません
  10. 私のアプリケーションはAPI呼び出しだらけです
  11. 変更できるほど十分に私はコードを理解していません
  12. 私のアプリケーションには構造がありません
  13. 自分のテストコードが邪魔になっています
  14. 私のオブジェクトはオブジェクト指向ではありませんが、どうすれば安全に変更できるでしょうか?
  15. このクラスは大きすぎて、もうこれ以上大きくしたくありません
  16. 同じコードをいたるところで変更しています
  17. モンスターメソッドを変更する必要がありますが、テストを書くことができません
  18. どうすれば何も壊していないことを確認できるでしょうか?
  19. もうウンザリです。何も改善できません
章タイトルがユニークになるのは、そもそもこの本が取り扱っているテーマがユニークだからだ。そのテーマを一言で表すと、「ユニットテストがないコードを、いかにして保守するか?」だと思う。この本では、そのための大枠の手順として次の5ステップを示し、章タイトルに示す状況でそれをどう進めていくか解説している。
  1. 変更点を洗い出す
  2. テストを書く場所を見つける
  3. 依存関係を排除する
  4. テストを書く
  5. 変更とリファクタリングを行う
正直に言って、読みやすくはない。でも、2004年にこの本の原著が出版されてから9年、レガシーコードはいっかな減りそうにない。むしろ増えているんじゃないか、という気さえする。

というわけで、類書もないし手元に置いておこうと思う。

このブログの人気の投稿

神のいぬ間の選択 - マギ(37)[完]

『マギ(37)』を読んだ。これにて完結。 この巻だけに関して言えば悪くなかった。最終章に入ってからここに至るまでが、自分にはついていけなくて悪い意味で超展開だったのだけれど。 完結巻ということで、どんな話だったっけかざっと振り返ってみた。 1~2巻 アラジン、アリババ、モルジアナが出合って、迷宮 (ダンジョン) 攻略。アリババがジン・アモンに選ばれる。そのあとバラバラに。 3~8巻 3人が合流してバルバッド編。アル・サーメンの存在が明るみに出る。合流するまでにアラジンと煌帝国の白瑛が出合う (3巻)。紅玉、ジュダルの登場もこの時期。 9~12巻 一行はシンドリアへ。そこでアラジンがマギとして、アリババに力を貸す宣言をする (9巻)。白龍登場。アラジン、アリババ、モルジアナといっしょにザガンの迷宮へ。迷宮攻略後、再びアル・サーメンと対峙。撃退後、アラジンはマグノシュタットを、モルジアナは故郷を目指す。アリババは悩み中。白龍も帰国。紅覇、紅名、紅炎の顔見せ (12巻)。 13~15巻 シンドバッドが紅玉との模擬戦でゼパルの能力を使う(13巻)。アリババはレームへ行くことへ。一緒に出発するも、解散する前に海賊に襲われる。ここで白龍の目的が母・玉艶の殺害と判明。レームのアリババ、ユナンの元を訪れたモルジアナ、煌帝国に帰国した白龍のエピソードを挟み、マグノシュタット編開始。 16~20巻 マグノシュタット編。端折ると、世界統一を目指す煌帝国が攻めてきたが、マグノシュタットの反撃手段が、アル・サーメンに仕組まれていたためイル・イラーを降臨させかねない事態に。両国が協力、アラジンも駆けつけ、シンドバッドも介入。一緒にモルジアナとも再会。最終的に、アラジンがソロモンの知恵を使い、イル・イラー降臨の依り代となっていたマグノシュタット学長たちのルフを還して、事態が収束する。 21~24巻 アリババがバルバッドの状況を見て煌帝国・紅炎に、紅玉にゼパルを仕込んでいることを知りシンドバッドに相容れないところがあると知る。そしてアルマトラン編突入。紅炎が協力の見返りに、アラジンからアルマトランの秘密を聞き出す形で始まる。結果的には、ダビデが意図的に息子ソロモンに負ける。ソロモンが世界の法則を変えた代わりに人間性を失う。ソロモンの妻であり、マギの一人でもあるシバが采配を奮う...

私は今、感想を書き終えた - あなたは今、この文章を読んでいる。

『あなたは今、この文章を読んでいる。:パラフィクションの誕生』を読んだ。この本はSFマガジンに16回に渡り連載された「パラフィクション論序説」が単行本化されたもの。 二部構成となっており、第1部「メタフィクションを越えて?」では「過去三十年ほどの時代的な変化と干渉し合い浸透し合うにつれて、どうもあまり望ましいとは言い難い「作者/読者」としての心性が醸造されてきたのではないかと思われる」問題が扱われる。第2部「パラフィクションに向かって」では、その「望ましからざる「心性」」を乗り越えようとしている「メタフィクション」から「パラフィクション」という概念の抽出が試みられる。 プロローグにはそんなことが書かれているのだけれど、その問題が具体的には何なのかも、「パラフィクション」がどんなものでその問題をどう解決するのかも、いまいちクリアにならなかった。 ざっくり整理してみよう。 まず発展の歴史。最初は「虚構」から「現実」に引き戻す「批判的メタフィクション」だった。次に「現実」に「虚構」を持ち込む「関与的メタファクション」へ派生した。さらに「虚構」化した「現実」を再度「虚構」として提示する「受容的メタフィクション」へと変遷した。これがこの本の歴史観。 次にこの変化を通して醸造されてきた(作者にとって)望ましくない「作者/読者」としての心性。作者にとっては、「メタは「作者性」への反省、批判、解体を企図しているかに見えて、その実、やればやるほど「作者」の機能と専制を確認することになっしまう」ことを問題視している[1]。読者にとっては、「虚構」化された「現実」の受容が、現状への批判意識の抑圧につながりかねないことを問題視しているようだ。 それで、「パラフィクション」は「軸足を、思い切って「作者」から「読者」へと引き渡す」ことのようだ。ただし、読みの多様性などにフォーカスして、「読者」の名の下に「作者性」を奪取するという話ではないとのこと。作者のいう「パラフィクション」的な作品として円城塔の『Self-Reference ENGINE』が取り上げられる[2]。 まず思ったことは「これ問題か?」という疑問。そういう本しかなくなる=言論統制が図られたらと思うと背筋が凍るが、これはメタフィクション小説についての話だ。次の「パラフィクション」についてはよくわからない...

北へ - ゴールデンカムイ 16

『ゴールデンカムイ 15』、『〃 16』を読んだ。16巻を読み始めてから、15巻を買ったものの読んでいなかったことに気がつく。Kindle版の予約注文ではままあること。 15巻は「スチェンカ・ナ・スチェンク」、「バーニャ(ロシア式蒸し風呂)」と男臭いことこのうえなし。軽くWebで調べてみたところ、スチェンカ・ナ・スチェンク (Стенка на стенку) はロシアの祭事マースレニツァで行われる行事のようだ[1]。それなりになじみ深いものらしく、この行事をタイトルに据えたフォークメタルStenka Na StenkuのMVが見つかった。 16巻では杉元一行は巡業中のサーカスに参加することになる。杉元と鯉登の維持の張り合いが、見ていて微笑ましい。鯉登は目的を見失っているようだが、杉元もスチェンカで我を失っていたので、どっこいどっこいか。なお、サーカス/大道芸を通じた日露のつながりは、実際にもこのような形だったようだ[2]。 個々のエピソードから視線を上げて、全体の構図を眺めてみると、各勢力がすっかり入り乱れている。アシㇼパは尾形、キロランケ、白石とともにアチャの足跡を辿り、そのあとを鶴見のもとで家永の治療を受けた杉元が鯉登、月島を追っている。今更だけれど、杉元やアシㇼパは、第七師団と完全に利害が衝突していると考えていないはずだった。一方で、土方一味も入墨人皮を継続。むしろ彼らの方が第七師団との対立が深刻だろう。さらに北上するキロランケはまた別の目的で動いているようだけれど、なんで尾形も一緒なんだっけ? 『進撃の巨人』に引き続き、これもそろそろ読み返す時期か。 [1] 5つの暴力的な伝統:スラヴ戦士のようにマースレニツァを祝おう - ロシア・ビヨンド [2] ボリショイサーカスの源流は、ロシアに渡った幕末日本の大道芸人たちにあった 脈々と息づく「クールジャパン」 | ハフポスト