> 結城浩の日記 > 2007年1月 | 検索 |
プロフィール | 日記一覧 | 日記ダイジェスト | Twitter | RSS |
|
編集部から連絡があり、 発売中の『Java言語で学ぶリファクタリング入門』の売れ行きは、たいへん好調のようです。 とてもうれしいです。 ご購入くださった読者の方々に御礼を申し上げます。 また、この本を作る上で関わってくださった無数の人々にも心から感謝!
家内はまだ微熱が続いていますけれど、 気分も悪くなく、体調は良いようです。 みなさまのお祈りに感謝し、 癒し主なる神さまをほめたたえます。
本を書いています[HJ]。
第1章(se)をレビューアさんに送付。第2章(re)に進む。
まずは、第2章(re)に書きたいことを思いつくままファイルに書いていく。
奥さん微熱。お祈り、お祈り。
おはようございます。
今日もみなさんの上に神さまからの祝福が豊かにありますように♪
本を書いています[HJ]。
第9章(pa)です。 何度も読み直して、校正しているうちに、 《「こう直そうかな?」と書きかけて「あ、でもやっぱり違うな」と思い直す》 という状況に陥る。 そうなったら、そろそろ潮時。
と、いうことで。 第9章はいちおう完成ということにする。 わーい。
さて、次は第2章(re)に戻ろうかと思っていたが、 それよりも前に、イントロと第1章(se)を整えて、 レビューアさんに送る方を優先しようと考えている。 そこで、今日からは第1章(se)に戻る。
第1章(se)を読み直す。 …面白いなあ(主観的意見)。 でもところどころに「ここに加筆」とか「図が必要」 とか「ここ何とかする」というメモがあってがっくりくる。 しっかりしてよ > 昔の私。
本を書いています[HJ]。
第9章(pa)です。
比較的順調に進む。
編集部から『Java言語で学ぶリファクタリング入門』が送られてきました。 きれいな表紙に上品なデザインだなあと、にまにましながら読み始めました。
…思わず読みふけってしまいましたよ。
これ、読みやすくて分かりやすい良書ですね! しかもなかなか考えさせられます。 「第0章 リファクタリングとは」を読むだけでも、 思うところがありました(自分で書いておいて何ですけれど)。
第1章〜第15章の具体的なリファクタリングもさることながら、 付録Aの「リファクタリング一覧」も味わい深いです。 (この付録Aは、ファウラー先生の名著『リファクタリング』に書かれている すべてのリファクタリングを超要約+圧縮して紹介しているものです)
『Java言語で学ぶリファクタリング入門』は、おすすめですよ。
※もちろん、本には相性というものがありますから、 「万人におすすめ」とまでは言いませんけれど、 書店で見かけた際には、ぜひチェックしてみてください。
ええと、読んでいてあまりにも楽しかったので、
何のひねりもオチもなく、手放しでほめてしまいました。 (^_^;
本を書いています[HJ]。
第9章(pa)です。
(D)の問題点は無事に解決した。 気がついてみれば、非常に当たり前の話であった。 これで技術的問題はクリアになったはず。 あとは文章を整えて、無駄な枝を刈って、図を検討することにしよう。 このペースだと来週は第二章に入れるかな…。 あ、でも来週はいろいろ忙しいか。
結城浩の最新刊 『Java言語で学ぶリファクタリング入門』 のサンプルプログラムをWebからダウンロードできるようにしました。
ところで、今月下旬刊行予定になっている本書ですが、
編集部からの連絡によると、
「都内の書店では、最速、金曜日に店頭に並ぶ可能性があります」
とのことです。
もしも店頭で見かけることがありましたら、
お手にとってごらんいただけれると嬉しいです (^_^)
。
無料プレゼントの当選者さんにはすでに連絡は行っておりますが、 今月末までには配送を行う予定です。もう少しお待ちください。
本書もまた、 すばらしいレビューアさんたちのご協力を得ることができました。 本書の「はじめに」では、レビューアさんの許可を得て、 レビューアさんたちの名前を書かせていただきました。 あらためて感謝します。
余談ですが、本書は、一昨年天に召されたおばあちゃんに捧げています。 おばあちゃんがよく私に話してくれていたメッセージも「はじめに」に書きました。
本書に関わるすべての人に、神さまの祝福がありますようにお祈りします。
本を書いています[HJ]。
第9章(pa)です。
うー。
(A)(D)(C)にして整えつつあるものの。 (D)の問題点を見つけてしまった。 それから(C)の長さも気になってきた。 うーん。全体を読み返しすぎて、 わからなくなってきてるなあ。
本当にはじめっから書き直しちゃおうっかなあ…。
悩みどころだ。
こういうときは…。
いったん眠って考えよう。
* * *
うたたね後。もう一度この章のアウトラインを作り直した。 やっぱり、全体的に詰め込みすぎ。題材の一部を捨てることにした。 そうすると、何とか(A)(D)(C)で流れてくれると思う。 やっぱり(C)は長いけれど大事なんだと思う。 だから(C)の長さを読者の負担にさせないために、捨てることが必要なんだ。
ただし、さっき見つけた(D)の問題点は何とか解決しなければならない。
* * *
とりあえず、節の順序を、新たなアウトラインに従って入れ替えた。 それから捨てる題材の節をばっさりと削る。 おお、数ページ減った。
本を書いています[HJ]。
第9章(pa)です。
ぬー。
…(B)の題材を、(D)に総取り替えするという荒技を思いついちまったぜ。
* * *
バージョン管理はしているものの、さすがにちょっと恐いので、 いったん現状の(B)を別ファイルに保存する。 そして、がしがしと(D)を書いてみる。
…二時間ほどの大手術敢行…
うんっ!いけるかもっ! (B)よりも少し短くなって、より分かりやすい題材、 しかも、他の章との新たな呼応関係までできてしまいました。 すごいっ、感謝。 これで(B)を完全に捨て、 冒頭から(D)導入のために書き直すことになる。
でも、また数日後に全部ひっくり返したりして…。
いいもん、それでもいいもんっ。 そしたら、またやり直すだけなんだもんっ。
というわけで、題材(A)(B)(C)問題は、(A)(D)(C)にする方向で進む。
じっくり書いてみてから、また検討しよう。 ああ楽しい。
* * *
(と、書いておいてなんだけれど、 著者の試行錯誤は、 読者が感じる読みやすさや面白さとは実は関係がない——と私は思っている)
本を書いています[HJ]。
第9章(pa)です。
いちおう(B)もねじ伏せた。 これで(A)(B)(C)の題材が揃った。 で、振り返ってみると、(C)が難しくて長いのはしょうがないとして、 (B)はぜんぜん駄目。中途半端に難しすぎるし、不自然だし。 5日くらい前に「(B)は確かに面白い話題であることがはっきりした。 まだ文章には落としていないけれど、理解したのでそれは大丈夫」 などと言っている私に、説教してやりたいくらいだよ。 いや、確かに面白い話題なんだけれど、面倒くさすぎ。 スピード感がないじゃん。それだったら、(B)はもっとずっと単純化してしまい、 (C)のほうにページ数を当てたほうがよいよ。 そう考えてくると、 (B)のおまけとして準備していた別の話題(B')を代打にするのもよいかも。
まてよ。 ということだと、第9章冒頭から書き直しか? きゃあ。
……まあ、しょうがないか。
* * *
うにー……。
* * *
いや、そう単純に(B)は消せないな。 (B)は(C)を導入する準備も兼ねているんだった。 うにゃあ……。
本を書いています[HJ]。
第9章(pa)です。
いつもそうなんだけれど、 しつこくしつこく同じテーマについて、 題材について考え、文章を練っていると、 頭がそのテーマにかなり特化されてくる。 本屋さんにいって、関連書籍を見ると、 「あ、この著者はこの話題のこの部分についての言及を避けたね」や 「この著者すごい、こういう表現方法もあるんだ」という感想が浮かぶ。 つまり、自分の中に或る構築物ができているため、 目の前の本に書かれていることと「比較」ができるのである。 以前マルチスレッドの本を書いていたときには、 本屋さんで売られているJavaの本の「索引」を見るだけで、 マルチスレッドについてどこまで詳しく書いてあるか、 言い当てることができた。 こういう状態になっていると、 どんな参考書を読んでも非常に理解が深まる(当たり前)。
でも。
その深いところを追求した状態の頭で書き上げてしまった本は、 入門者や初心者には「?」な本になってしまう。 そのあたりのバランスがとても難しい。 当然ながら、深いところには面白い話題がごろごろしている。 でもいきなりそれを提示はできない。 かといって、順を追って説明していっては長い本になる。 どうしたらいいんだろう、どこまで書けばいいんだろう……そのトレードオフの結果が、一冊の本となる。
私の本は多くの場合、ゆっくりゆっくりはじまる。 途中からちょい加速して「おっ」と思ってもらい、 最終章では思いっきりアクセルを踏む。 そういうバランスで書いているつもりだ(実際に読者がそう感じるかどうかは、人によって違うと思うけれど)。
父の話。
私の父は、もう退職したけれど、熟練した理科の教師で、
非常に巧みな授業を行った——と父は言ってた(^_^)
。でも間違いないと思う。
教室には、いろんな理解レベルの生徒がいる。 お父さんの授業は、すべての生徒に満足してもらう授業だ。 あまり理解していない生徒に合わせてしまうと、よくできる生徒が退屈する。 よくできる生徒にあわせて授業すると、ついていけない生徒も出てくる。 お父さんの授業は、よくできる子も退屈せず、あまり理解していない子も目を輝かせる授業だ。
本を書いていると、この話を思い出す。
午後からは原稿を読む。 今日も今日とて第9章(pa)…。 読み返すたびに(C)の形が整っていく。 それは良いのだが、(B)が置いてけぼりになっている。 図も悩みどころだなあ。
本を書いています[HJ]。
第9章(pa)ですねえ。
手書きしていた(C)をファイルに反映。 プリントアウトして読み直し。 まだ荒いけれど、(C)は一通りファイルに入った。 あとは(B)のまとめだ。
本を書いています[HJ]。
第9章(pa)なのですよ。
(C)の最後はどうしても納得がいかなかったけれど、 紙に手書きで何回か書いて何とか理解。 でも、やっぱり長すぎるかなあ。 (B)のまとめはまだ残っている。
だいぶ時間はかかったけれど、 何度も何度も読んでいるせいで、かなり形になってきた。 今度は、余分なところを削りながら読むのを何回かやる必要があるだろう。
それから、図はどうしようか。後回しかにゃ。 来週からは第2章(re)に入りたいにゃ。
本を書いています[HJ]。
第9章(pa)なのですよ。
もういちど全部プリントアウトして頭から読み直し、朱を入れた。 そしてそれをファイルに反映。 今回は特に、ファイル末尾にメモしておいた内容を適切な場所に移動することと、 不要な部分をカットすることに注力。不要な部分をカットしたら、意外に短くなってくれた。 (B)のまとめはまだ残っている。何とかいけるかな。 (C)はロジックが揺れている部分を整えて、もうすぐまとめに入るところ。 うーん、結局のところ、がんばれば(A)(B)(C)を入れられるかも…というところ。
プリントアウトして読み直すのは、とても大事な作業である。
本を書いています[HJ]。
第9章(pa)です。
(A)(B)(C)のことはいったん忘れて、最初からきちんと説明するつもりで、普通に文章を書いていきました。 すると、どんどん長くなりました。 (A)は破綻せずにOKでした。 でも、(B)に入る以前でもう半分以上来てる。
まあでも悪いことばかりではありませんでした。 (B)に入る前に一箇所、(C)に入る前に一箇所、 踊り場のように一休みしたほうがよいということに気づき、 先日トーンを明るくした話題がちょうど二つ、 そこに入ることに気づきました。 絶妙! 感謝!
やっぱり、頭からじっくり書くというのが、納得する進み方だな (といっても「ちゃんと最後まで行ける」という気持ちになれることが重要なので、 アウトラインのメモ書きを残しておくのは必要なんだけれどね)。
分量のことはとりあえず忘れて、頭からじっくり書こう。
本を書いています[HJ]。
第9章(pa)だってばよ(←あんたはナルトか)。
紙にプリントした原稿を読み、気になるところにメモし、ファイルに反映する日々は続く。 トーンが暗いところはだいぶ直った。 ばっさり削ってからぐっとイメージをふくらませることで、 だいぶポジティブな感触になった。これはすごくよい。 文章には自分の体調も影響するのかもしれない。
(A)(B)(C)問題はまだ続いている。 (B)はまとまったと思っていたけれど、山場の次に落とし穴あり。 何だかぐしゃぐしゃになってしまいました。 図まで描いたのになあ。うにゃあ。 気分を直して(C)に取り組もうかにゃあ。 読み返しているうちに、 (A)もまずいような気がしてきた…。
すごい長期間書いているように勘違いしてたけど、 第9章(pa)を書き始めたのは1月7日からか。大したことないな。 もう一度ゼロからやりなおしてもいいってくらいの気力はあるぜ(やりなおさないけど)。 よし、がんばっていこう。
何だかRSSリーダーの調子が悪い。仕事がはかどるはかどる。しばらく直さないでおこうかな。
本を書いています[HJ]。
第9章(pa)はまだまだ続く。 久しぶりに手書きで文章を書いていた。 三つの話題(A)(B)(C)でいえば、(B)の部分だ。 そして、その内容をファイルに移した。 ついでに、バインダに綴じ込んでいたメモ (思いつきを書き留めている小さな紙)をファイルに反映させた。
(B)の山場は越した。あとはまとめるだけ、かな。 たぶん、(B)に関しては、明日か明後日くらいにはまとまるだろう。
この本[HJ]は面白い本になりますよ〜(ライティング・ハイ)。 書きながら、一人でどきどきしちゃってます。
書きたいことがあふれるほどあって、 でも、何とかぎりぎりに絞り込んで作り上げていくというのは、 たいへんだけれど、良いことかもしれない。
本を書いています[HJ]。
第9章(pa)なのである。三つの話題(A)(B)(C)をどうするかという問題をまだ考えている。 (B)は面白い話題だけれど、準備が大変。 どのくらい大変か、実際に準備してみる。
…大変だった。 でも、大変なのは私だ。私が理解するのに時間がかかっただけであって、 理解したいまとなっては、適切に短く(しかも魅力的に)提示することができそうだ。 ああ、やっぱり「理解は説明に先立つ」のだなあ、と思う。 ということで、(B)は確かに面白い話題であることがはっきりした。 まだ文章には落としていないけれど、理解したのでそれは大丈夫。
でだ。
困ったことに、(B)はけっこう魅力的。(C)がなくてもいいか?と思うくらい。 でも(C)を出すために第8章(ba)を書いたんだよな。 第8章を捨てるというのはありえない。 第8章は残しておき、(C)は出さないというのはありかな? …まあ、ありか。 あるいは呼応は示唆するけれど、途中のプロセスを示すところをはしょるか。
うーむ。
ともかく、(B)を理解したので、まずは(B)を文章にがしっと落としてしまうことにしよう。 (C)をどうするかはその後で考えることにする。
* * *
それから、全体を読み直してみて、 トーンが暗い…というか読むモチベーションが少し下がり気味。 発想を変えて、明るいトーンにすべきだと思う。 最後の〆の部分は明るいトーンになっているから、 それにあわせて途中を整えるべきだと思う。
* * *
この後、第9章(pa)が終わったら、第2章(re)の素案を作る。 全体の基礎情報を示すために使うという案を試す。 そこまで行ったところで、待ちわびているはずの レビューアさんたちに送り始めることにしよう。 いや、送るのは図版も整えてからにするか? うーん……。 (案1)第9章が終わったところで送り始める。 (案2)第2章まで終わってから送り始める。 (案3)第9章、第2章、および図版が終わってから送り始める。
図版については、編集部との相談を行う必要があるのだった。 だから、まあ、案2かな。2月頭…は無理っぽいな。 2月中頃になるかな。
* * *
そういえば、今年の年間聖句。
心を尽くして主に拠り頼め。 自分の悟りにたよるな。 あなたの行く所どこにおいても、主を認めよ。 そうすれば、主はあなたの道をまっすぐにされる。 (箴言3:5−3:6)
「自分の悟りにたよるな」っていいなあ。 自分ではなく、神さまに頼ろう。祈りつつ進め!
本を書いています[HJ]。
また今日も第9章(pa)です。 いまの問題は、三つの話題(A)(B)(C)をどう適切に提示するか。 (A)は短いし、すぐ書けるので特に問題はない。 (B)は面白い話題だけれど、他の章との呼応はない。 その上にその話題を出すための準備が大変なので、長くなってしまう。 (C)は難しいけれど、他の章との呼応がよいので、 最終章の最終課題にふさわしい重みがある。 でも、(B)がないと厚みに欠ける…のかな? 厚みに欠けるというか、(A)から(C)へジャンプするのが不自然と感じるんだよなあ。
いまのところのアイディアは、 (B)でアプリオリに材料を与えてしまうこと。 そうすれば(B)の大変な準備をはしょることができる。 つまり、(B)の自然さを犠牲にして(C)の自然さを優先させるということだ。 うーん。すべては(C)の重要性に寄るなあ。
もうひとつのアイディアは、 もっと(B)でアプリオリに材料を与えるのではなく、 アプリオリに結果を与えてしまうこと。 そして細かい議論は付録に譲る。
問題は、…それ以前に…まだまだ長すぎるってことなんだよなあっ!
メタな思考は以上でおしまい。
あとは、文章にダイブして、実際に考えよう。
* * *
数回読み返した。
(A)(B)(C)が三つ揃うことが非常に重要であることを発見してしまい、頭を抱える。 省略は不可か…。じゃやっぱり「はしょり方」が重要なんだな。 頭からもう一度読み返して、自然な流れを検討しよう。
構造化されていて、個々の節が部品のようになっていると一見読みやすそうに感じる。 でも、実はかえって読みにくいんじゃないかな。 つまり、もっと緊密な意味のネットワークの中に置いたほうが納得度が高いのか。 かといって、ぎちぎちに詰め込んでは面白くない…。
X-MENでマグニートーが空中を歩くシーンがある。 空中で次の一歩を進めると、そこに足場が出来る(うろ覚え)。 次に進む方向にきちんと足場があるから落ちない。 でも絶妙なバランスのうちにあるから面白い。 そういう感じの、安心できるスリル、絶対安全な危機一髪みたいな文章が書ければいいのに。
もう何を言っているか、自分でもよくわかりません。
本を書いています[HJ]。
当然ながら、今日も第9章(pa)です。 まったく飽きません。 何度でも、何度でも繰り返します。
大きなジャンプをするまえに、 もう一度最初からじっくり読み返しています。 読むときにはPDFで読みます、 気になったところが見つかったら、 テキストファイルを開きます。 最初の数節を読み返して、ちょこちょこ修正しています。
先を急ぎたいのもやまやまなんですが、 今日はじっくり読みます。 集中・集中・集中。 これらの節に関してはもう出版してもよい、 というくらいの気持ちで読みます。 そうしているうちに、だんだんこの章で言うべきことも (不思議に)わかってくるように思います。
「この章で書くんだろうなと頭で思っていたこと」と、 「この章で書くべきだと手を動かした結果わかってきたこと」の間にはずいぶん差がある。 そしてほとんどの場合、手を動かした結果わかったことのほうが正しい。
リアライズされたものの強さ。
『Java言語で学ぶリファクタリング入門』無料プレゼントの〆切は今日です。多数のご応募ありがとうございます。 現在131名。応募予定の方はお忘れなきようにお願いします。
ε( v ゜ω゜) < 表紙来ましたあ♪
みなさんからの応募メールに書かれているメッセージを読んでいます。 一行のメッセージもあり、また長文のメッセージもあり…。 みなさんのお気持ちが伝わってきます。 本当にありがとうございます。 学生さん、会社員の人、学校の先生…。 職業も、年齢もさまざまな方が結城の本を読んでくださっているのだなあとしみじみとしております。
後輩に勧めてくださっている方、 仲間の勉強会で結城の本を利用してくださっている方、 結城のJavaの本を通して学び取ったことを他の言語のプログラミングに生かしている方、 近くの図書館に熱心に推薦してくださっている方、 類似の本を何冊も読んだ中で結城の本が最もモチベーションが保てたという方、 わかりやすい文章のサンプルとして参考にしているという方、 本のプログラムを手で写して時間をかけて勉強しているという方、 結城の本で入門してから原典と呼ばれる本に当たっているという方、 …いろんな方からの、いろんなメッセージで幸せいっぱいです。 読んでいるうちに、何だか、涙が出てきてしまいました。
まだまだ未熟な私ですけれど、 みなさんの期待に応えるように努力していきますね。 さらに、期待通りの本だけでなく、 どんどん新しいことにもチャレンジしていきたいと思っています。
今後とも、結城浩の活動を応援してくださいね!
本を書いています[HJ]。
飽きもせず第9章(pa)です。 まんなかの三分の一を書こうとしています。 どう考えても分量が多すぎ、 詰め込みすぎであるという結論になりつつあります。
うう。
最後のまとめは出来つつあるからそれは良い。 中盤で三つくらいの題材を準備しており、 私の頭の中ではそのくらいの量がないと面白くないと思っていたのだけれど、 いつものようにそれは甘かった。 毎回なぜか盛り込み過ぎになるんだよなあ。 中盤で用意していた三つのうち、 一番長くて難しいものは納屋に仕舞っておくことにしよう。 で、残りの二つの順番を考えて、磨き上げることにしよう。 そうすると、ていねいな解説ができるんじゃないかな。
じゃ、とりあえずはその方針で > 自分。
* * *
思い出した! それは駄目なんだった! 一番長いのは、ちゃんと他の章と呼応するように考えたんじゃないか。 8章なんて、この題材を出したいがために、わざわざ書いたんじゃないか。 忘れたのか>自分。忘れてたよ。ごめん。
…どうしよう。
冒頭の導入部分をもう少し削ってシンプルにし、さらっとまとめる。 そして中盤で改めてこの題材を提示する。 その手で行くか。導入部からずるずると連続的にやろうとするから、 三つも題材が要る。だから途中をジャンプしよう。 導入部をシンプルにすれば、きっとジャンプしても不自然じゃないはず。 その後で中盤の問題(難しめ)をきっちり書くことができれば、満足度も高くなる、かな?
…うん、そうしようか。で、中盤の問題は難しめの話題だから、 最後のまとめでも、もう一度おさらいをする。 そして、この問題は他の章とも呼応しているから、その「おさらい」は 本書全体のおさらいにもなっている。 流れとしては正しいが。はてさて。
『Java言語で学ぶリファクタリング入門』無料プレゼントの〆切は明日です。多数のご応募ありがとうございます。 現在101名。応募予定の方はお忘れなきようにお願いします。
応募メールに書かれているみなさんからのお便りは、 楽しく読ませていただいております。うれしいなあ。
非常にたくさんの人が、
まるで約束したかのように「外れても買います」と
書いてくださっているのには、何とも感動です。
あ、「外れたら買いません」と書いた方も何人かいらっしゃいましたが、
あたるかどうかには当然無関係ですから大丈夫です (^_^)b
。
あなたの思うとおり書いてくださってありがとうございます。
みなさんからのお便りには「今度はこういう本も書いてほしい」という要望も書かれておりました。 これまた、とっても嬉しい話です。 とても多かったのが「Ruby本」の要望ですね。 書いてみたい気持ちはありますが、まだ計画には入っていません…ごめんなさい。 まあ、 るびこさんにがんばってもらいましょうね♪
本を書いています[HJ]。
今日も第9章(pa)です。 頭からプリントアウトして前三分の一くらいを何度も読み返している。
それとは別に、ある一節をピックアップして紙にメモする。 そのメモをファイルに反映させる。 そして、もう一度白い紙にゼロから書き直す。 書き直したものをもう一度ファイルに反映させてから、 さっきの内容と比較してみる。
…って、やっているこんな作業を文章で読んでもわけわかんないですよね。 私にもわけわかんないです。 何となく、同じ内容を何度も書いてみて、 ほんとうに自分が理解しているかどうかを確かめてみたがっているみたいなんです。 私の手が。
で、それとは別に、まったく異なる節をピックアップして、 今度はエディタでいきなりパタパタ書き始めちゃいましたよ。 大丈夫か、私の手。
PDFにして読み返して、 自分で書いた文章に感動しちゃったりして。 大丈夫か、私の心。
でも、どんな作業をしていても、 第9章の原稿はひとつのファイルに集約されていく。
そこに書かれている言葉が本になる。
そこに書かれていない言葉は本にならない。
その潔さが良いよね。
ばんばん書き、ばんばん削れ。私の手。
午前中は礼拝。午後からはゆったりと原稿読み。
[HJ]の第9章(pa)を今日も読む。 あまり理屈を考えないで、本能のおもむくまま、 ざくざくと文章を書いていく。 自分の手が言葉を紡ぐ様子を観察する。 つじつま合わせはあとでいくらでもできるんだよ、と自分に言い聞かせて、 手にどんどん文章を書かせる。書いているうちに頭が活性化し、 自分が驚くほど面白い内容が顔を出す。
心で波打つランダムの海から、飛び出して来い。私の文章。
朝方、ぼんやりと本[HJ]のことを考えていて、ひらめいた。
「第2章を完全にカットして、そこにあるメモを第3章や第4章に分散」というアイディアはやめる。 そして、第2章(re)を全体の基礎情報を示すために使うというのはどうだろう。 イントロとしての第1章(se)との調整が必要だし、 第5章(te)を少し組み直す必要が生じるけれど、 それは許容範囲なのではないかな。 第2章は短くてもよいし…。 それに第9章までで必要な情報もだいぶ見えているから、 基礎情報として何を示すべきかもわかっている。 全部示す必要はなくて、 読み進めるのに不都合がない分だけ示せばよい。 細かいところは各章で説明する。 大事なのは読者の「読めるかなあ」という不安感を取り除くこと。 うん、結構よいアイディアかも。 第2章用のファイルにメモしておこう。
「現在の私」から、第2章を書こうとする「未来の私」への手紙として。
本を書いています[HJ]。
今日も今日とて第9章(pa)である。 はじめから順番に書いてみる。 疲れたら小見出しを目次のように一覧にしてプリントアウトして構成を考える。 自分が本当にその内容を理解しているかどうかをチェックするため、 コンピュータや参考書をわきにおいて、白い紙を広げ、 順番に手書きで書いてみる。 毎回同じところで話が行き詰まる。 きっとそこを私は理解していないんだろう。 何度も繰り返しているうちに「いまやっているこの大きな話の流れをそのまま図に書いたほうが 分かりやすいんじゃないか」ということに気がつき、メモする。 メモもだいぶたまってしまった。ファイルに反映させねば。 …などということをやっていた一日でした。
2007年になってから、 なぜか、回文にとりつかれたようになっていました。 つい夢中になっちゃうので、このへんでやめておきます。 やめる前に、結城がやっていた「回文の作り方」を紹介します。
基本的には「括弧の対応」を使います。
(())
という二重括弧をたくさん作っておきます。
(やりかた()たかりや)
のように、ひらがなで言葉を当てはめます。
(さいご()ごいさ)
みたいに意味不明で構わない。
「師が最後の回文作。ただ沢山部位、かの語彙探し」を作ったときのログを以下に示します。 基本的に上から下に向かって考えていきました。
(さいご()ごいさ) (かいぶん()んぶいか) (くから()らかく) (くかな()なかく) (ながく()くがな) (つづく()くづつ) (つづき()きづつ) (きづく()くづき) (やりかた()たかりや) (たびたび()びたびた) (さんぶん()んぶんさ) ん(さんぶん()んぶんさ)ん (んさんぶ(ん())分散) (ん散文()ん分散) (長く()くがな) (く(長く()くがな)く) (じかん()んかじ) (じかん()んかじ) (かり(じかん()んかじ)りか) (回文()ん部位か) (最後の()の語彙さ) (最後の(回文()ん部位か)の語彙さ) (最後の回文()ん部位かの語彙さ) (ん(さくた()たくさ)ん) (最後の回文(さくた()たくさ)ん部位かの語彙さ) (最後の回文(作た(だ)たくさ)ん部位かの語彙さ) (最後の回文作、ただ沢山部位、かの語彙さ) しが(最後の回文作、ただ沢山部位、かの語彙さ)がし 師が最後の回文作。ただ沢山部位、かの語彙探し
※タイトルは回文(しがさいごのかいぶんさくただたくさんぶいかのごいさがし)
『Java言語で学ぶリファクタリング入門』責了のお祝いと、次の本[HJ]の相談を兼ねた打ち合わせ。 無事に『Java言語で学ぶリファクタリング入門』は出る流れとなりました。ぱちぱち。 それに加えて、新企画[HJ]もすばらしい本になりそう。 自由度が高い分チャレンジングだけれど、何か面白いことがおきそうです。 今年も元気いっぱい、面白い本を書いていこうっ!
※タイトルは回文(なしえたあとこまるなとしんかんかんしとなるまことあたえしな)。
編集部から、 『増補改訂版Java言語で学ぶデザインパターン入門』が増刷になるという連絡をいただきました。 先日は、 『改訂第2版Java言語プログラミングレッスン』の増刷の連絡も入っておりました。
応援してくださる読者のみなさま、 編集・営業の方々、それに書店さん…。 たくさんの方々に感謝します。 ほんとうにありがとうございます!
そして何より、この小さき者を支えてくださる主なる神さまに感謝いたします!
※タイトルは回文(よくいずれそおすとむかいてでざいんぼんいざでていかむとすおそれずいくよ)。
『Java言語で学ぶリファクタリング入門』の最終確認が済んだと思っていたら、 最後の最後の確認が朝、メールでやってきた。 読んでみると、確かに問題となりうる確認事項であった。 編集者の技量に舌を巻きつつ、返信。 時間的な問題もあるので、 「修正の方法まで指示したけれど、○○の部分は編集者判断でやって構わない」 という主旨の文章をつけておいた。 でも、念のため電話でも再確認。 これで本当に出版を待つばかり。 この本に関わるすべての人に、 神さまの豊かな祝福がありますように。
※タイトルは回文(さいごすぐたしかめのほうほうほのめかしたぐすごいさ)。
追記:回文は「確かめの方法ほのめかした」だけのほうがシンプルで良い。
『Java言語で学ぶリファクタリング入門』の最終確認FAXが7枚届いていた。 これが本当に最後の修正である。 修正事項を確認し、メールで編集部に返信した。
※タイトルは回文(よくかくかいとうこんねねんこうといかくかくよ)。
いま書いている本[HJ]の、企画打ち合わせの準備を進める。 自分が考えていることの概要を整理して文章にまとめ、 ポイントがどこにあるかを明確にする。 その一方で、自分が不安に感じており、迷っている部分も明確にする。 (デフォルトでの自分の考えは保ちつつも)カードをすべて場にさらけ出して、 編集者の意見を聞くための準備だ。 適切に準備ができ、豊かに実を結ぶ話し合いになることを神さまに祈る。
※タイトルは回文(よいなどんないけんかはかんけいなんどないよ)。
本を書いています[HJ]。
まだまだ第9章(pa)である。書き込んだメモを入れ替えたり、加筆したり。 全体を見過ぎると、分量が多いのにめげて手が動かなくなるので、 現在見ている節に集中して頭と手を使う。 自分の能力には限りがあるので、フォーカスを絞ることで、密度を高めるのだ。
途中ばかり書いているのも何なので、 ふと、第9章(pa)の冒頭部分を書いてみた。 以前から考えていた一行メモをふくらませたのだ。 うん、なかなか良い感じ。にこにこ。
はっ、と気づいて。 これを裏返して第9章(pa)の最後の部分を書いてみた。 すごい。しっくり収まるじゃん。 前々から最後の締めが気になっていたのだが、 割とよい。今回のアイディアで第9章(pa)の始まりと終わりがカチッとしたかな。 後は間を埋めるだけ。って、そう簡単じゃないけれど、 でも、制約はあったほうが書き進めやすいんだよな。
機嫌が良い。
※タイトルは回文(つめこみよいよいつくりものたしたのもりくついよいよみこめつ)。
読者さんから、Googleで「著書」を検索すると高い順位になるという話を聞いたのでやってみました。 2007年1月11日 06:00現在やってみると、一位が結城で、二位が齋藤孝さんのページでした。すご。 まあ、すぐに順位は変化するでしょうけれど。
※タイトルは回文(たしかにみるといちいとるみにかした)。
『Java言語で学ぶリファクタリング入門』の無料プレゼントを行っています! ぜひご応募ください。
※タイトルは回文(やさしいことばとこよいしれうれしいよことばとこいしさや)。←けっこう綺麗♪
本を書いています[HJ]。
第9章(pa)に書き込んでいるスケッチを何度も読み返しながら、ファイルのあちこちを入れ替える。 似た話題をあちこちにメモしているのでひとつにまとめる。 関連があるところや順序関係があるところを整える。 シリアライゼーションなんだから、まあ一種のトポロジカルソートをやっているとも言える。
※タイトルは回文(とこしえかみよともにもとよみかえしこと)。
弾さんが読書について書いていらしたので、 いつものように「私はどうだろう?」と考えてみました。
※タイトルは回文(つみよとしょしつもどんなしょきのきょしなんどもつしょしとよみつ)。
結城の最新刊『Java言語で学ぶリファクタリング入門』の目次を公開しました。
本を書いています[HJ]。
第9章(pa)の題材は複数個あるので、 どのように取捨選択し、どういう順番で読者に提示するかを考えている。 また、各題材を自分が本当に理解しているかどうかを確認するため、 白い紙を広げ、鉛筆で論旨を書き出してみる。 行き詰まるところにはマークをつけておく。 そこは読者も行き詰まる可能性が高いところだからだ。 また、手を動かして考えているうちに、他の章との関連が浮かんでくることもある。 それはメモとして書き込んでおく。未来の私に託す手紙のように。 で、一通り手書きが済んだら、今度はその紙を見ながらエディタを使ってファイルに入力していく。 鉛筆で書いているときと、エディタで書いているときではスピードがまったく違うため、 まったく異なる視点で見ることができる。 自分一人で作業していると、このような「複数の視点」を持つ機会がとても貴重だ。 もちろん他の人々にレビューしてもらうというのも「複数の視点」でチェックする機会になる。 で、入力が済んだら、Subversionでcommitする。 紙のほうには「入力済み」のマークを付ける。 パイプラインプロセシングといえないこともない。
※タイトルは回文(てすとばぐのしいらいtideにのるみもうよいなないようもみるのにeditいらいしのぐばとすて)。
※↑意味わかんないし。
結城が書いた最新刊『Java言語で学ぶリファクタリング入門』が、 アマゾンで予約開始になっていましたのでご紹介。
※タイトルは回文(かうよやくやようか)。
いつものように、お昼から昼寝。
午後から第9章(pa)を検討し始める。 これまでにため込んできたメモをプリントアウトして読み返す。 すごく、すごく面白い! 第8章までの内容と複雑に絡み合い、しかも新しい要素を醸し出している。 これ、すごい本になるかも(ライティング・ハイ——まだ書いてもいないけれど)。 メモを残しておくというのは大事。 メモといっても断片的なものではなく、 それなりにきちんとした文章である。 前後関係はおかしいけれど、あるトピックについては きちんと書かれているメモである。 参考書の名前やページ数も書かれている。 過去の私、Good Job!
※タイトルは回文(わたしとんちきそうようそきちんとしたわ)。
本を書いています[HJ]。
まだまだ、飽きもせず第8章(ba)。 けっこう時間をかけて読み直し、プリントアウトして朱を入れ、 ファイルに反映して、また読み直し…を続けている。 読み返していて、どきどきするほど面白くて、ついつい読みふけってしまう。 論理展開のもたついている部分はまだまだあるけれど、 長さとのトレードオフを考えつつある。 まだ盛り込みすぎではあるけれど、 いったんこれで第8章は終わりにしようかな。
※タイトルは回文(かくかたしあかいれいかあしたかくか)。
本を書いています[HJ]。
今日もまた、飽きもせず第8章(ba)。 欠けていた数節に手をつけた。だいぶ形になったと思う。 でもまたまた長くなってきた。現在は盛り込み過ぎの状態。 ここから分量を一割減らせばすごくテンポも良く、すっきりすると思う。 もうすぐ第8章から手を離せそうだ。その後は、第9章(pa)に入る予定。
※タイトルは回文(なういもじはずせもりこみすぎとのいすっきりきっすいのとぎすみこりもせずはじもいうな)。
(以下、終了しました。多数のご参加をありがとうございました)
週末ですので、Lingrでチャットをしようかと思っています。
まったりおしゃべりでもよいのですが、 テーマを決めたほうが話しやすいかもしれないので、 お題を決めてみました(って先日と同じですけれど)。
お題:新春チャット: Free Talk on Writing 2007, Part 2 日時:2007年1月5日 22:30〜24:30頃
要するに、日記やブログを書いたり、メールを書いたり、 論文を書いたり、原稿を書いたり、 本を書いたり …… 何かを「書く」ことについて、自由におしゃべりしましょう! ——ということです。
みんなで楽しく「書き物」についてのおしゃべりをしましょう。 ROMも歓迎です。
毎年恒例、公開鍵を更新しました。
※タイトルは回文(こうかいかぎこうかんえんかうこぎかいかうこ)。
「公開鍵」が何を意味しているかは、
以下の本を読むと、大変良く理解できます (^_^)
。
公開鍵の更新では、去年の自分の日記が役立ちました。
日経ソフトウエアの連載記事の校正を返す。 今回のテーマは「YAMLとJSON」です。
※タイトルは回文(やむるくてきすとすきてくるむや)。
本を書いています[HJ]。
まだまだ第8章(ba)です。 先日の大手術は無事済んだようで、細かく直している状態。
無理矢理でも作業を進めると、 けっこう進むものだな。
でもこの章全体でいいたいことがだんだん分かってきた。
欠けている数節にはなかなか手がつかないけれど、 がんばって進もう。
※タイトルは回文(かくのむりやりむのくか)。
家内が「これ面白そうよ」と言ったので、 上野にある国立科学博物館のシアター360に家族で行くことになった。
2005年の「愛・地球博」で人気だったシアターだそうで、 球状のドームの中に入って全方位に映し出される映像を見るというもの。
はじめは、ふーん、と思っていたのだけれど、 実際に映像(8分ほどの番組)を見て、大変驚いた。 全方位に映像が映し出されるので、 非常に自然な形で「別世界」にトリップしている感覚がするのだ。 ふわっと浮き上がったり、高速で移動したり、 海の中から一気に宇宙空間へジャンプしたり…とても楽しい。 混んでいなかったので「も一回見ようか」と並んで、結局二回見た。
しかも安い。 常設展の入館料のみ(一般500円、高校生以下無料)で見ることができる。
本を書いています[HJ]。
今日もまた第8章(ba)です。 今日は気分を変えて図を描く練習をしてみました。 二時間で図を一枚作ったのだけれど、 なかなか思うとおりに出来ない。 まあ一応暫定ということにしておく。
一枚の図に全部を詰め込むと描く方は楽なのだが、 読むほうは「解読」が必要になる。 逆に一枚の図では「たった一つのこと」しか言わないようにすると、 読みやすいけれど、今度は描くのが大変。 それにページ数が多くなってしまう。 難しいなあ。
※タイトルは回文(さくがえとさくずくとつながるがなつとくずくさとえがくさ)。
『Java言語で学ぶリファクタリング入門』の編集も大詰め。 すでに私の手は離れていて、がんばっているのは編集部と組版をなさっている方々。 FAXで何点か確認事項がやってきたので、回答する。
※タイトルは回文(かいがちまちままちまちがいか)。
あ、早い。 『Java言語で学ぶリファクタリング入門』がcbook24.comにもう出ている。 ISBNが長くなってる。 アマゾンはまだみたい。
本を書いています[HJ]。
今日もまた第8章(ba)をいじっています。 長すぎる問題の対策(つまりこの章でもっとも言いたいことを見つける作業)を考えているうちに、 この章のテーマの一つを削除するという大技を思いつきました。 確かにそれ【おっと!ここでブレーカが落ちた。びっくりっ!】は効果があるけれど、 かなりの大手術だなあ。これは今日の夜中に試みる課題としよう。
それはそれとして、欠けている数節をざっくり書いてみた。 まだアウトライン程度。 ここに肉付けをして、他の節とシームレスにつながるように工夫するのも今日明日の仕事かな。
朱を入れていると、完成度が上がってきた様子を以下のようにして知ることができる。 まず「あ、ここ直そう」と思って朱を入れる。 でもしばらく読んでみると「やっぱり戻そう」と思って朱の上に《ママ》(そのまま、直さないの意)と書く。 このような「直そうと思ったけれど、やっぱりやめる」というのが増えてきたら、完成度が上がってきた証拠。 つまりは、局所的な最適化がなされている状態なのですね。
ローカルオプティマルな状態からさらに一歩飛躍するには、 さっきの「大手術」のような大きな修正が必要かもしれない。 でもその途中には「完成度が下がった状態」を通過することになるけれど。
※タイトルは回文(かきていさいさいてきか)。
* * *
うん、まずは大手術を敢行。 意外に簡単に済んだ。ばっさり切った傷跡はまたちまちまと読んでいけばきれいになるだろうと思う。 予想通り、削ったことで言いたいことがくっきりとしたように思う。 スティーブンキングは正しいなあ、と独り言。
次は欠けている数節に肉付けするか…いや、けっこう疲れているから、プリントアウトだけにするか。
* * *
結局、肉付けするのはやめて、以前書きかけていた[HJ]の企画書を更新した。 いろいろと、思うところを練り直し。
2007年1月(つまり今月)の下旬に、 結城浩の最新刊『Java言語で学ぶリファクタリング入門』が刊行されます。
リファクタリングは、 デザインパターンやエクストリームプログラミングに並んで、 ソフトウェア開発の重要な技法として注目されています。
きれいなソースは読むのが楽で、修正するのが楽で、デバッグするのが楽です。 これに対して、きたないソースはすべてが大変です。 ではどうすれば「きれいなソース」になるのでしょう。 きたないソースをどうすれば(新たなバグを出さずに)きれいなソースにできるのでしょう。 それに対する試みの1つが「リファクタリング」です。
本書『Java言語で学ぶリファクタリング入門』では、 Java言語を使って、リファクタリングの本質をていねいに解説します。
…ということで、恒例になりましたが、
応援してくださる皆さんへの感謝を込めて、
本書の「無料プレゼント」を予定しています。
現在のところ、応募期間として2007年1月11日〜17日を予定しています。(2007年1月10日〜16日になりました)
実際の応募要項などはその頃発表します。
どうぞ、ご期待くださいね!
追記: 『Java言語で学ぶリファクタリング入門』無料プレゼント実施中です
本を書いています[HJ]。
ライティング・ハイが静まったところで、 ここまで書いてきた文章をすべてLaTeX (jsbook)で組版して読んでみた。
今後の流れとしては…
本を書いています[HJ]。
第8章(ba)の最後まで朱を入れたのをファイルに反映して、 もう一度テキスト→LaTeX→PDFでプリントアウトして、 読み直して最後まで朱を入れたのをファイルに反映して、 もう一度テキスト→LaTeX→PDFでプリントアウトして、 赤ペンを持ちながらまた読んでいる途中。
だんだん品質が上がっていくのが分かって楽しいが、 だんだん長くなっていくのが悲しい (レトリカルに書いているだけで、本当は悲しくない)。
困ったことに(これもレトリカルに以下略)、 今年二冊目になるはずの[HJ]が、 一冊目のはずの[NB]よりもはかどっている。
このような長門結城的ペースで淡々と書き進めていたら、 あっという間に脱稿しそうだが、なぜそうならないのだろうか (レトリカルな疑問)。
[HJ]はむちゃくちゃ楽しい本になりそうだ (ライティング・ハイ)。
※タイトルは回文(れとりかるなくなるかりとれ)。
(以下、終了しました。多数のご参加をありがとうございました)
新年ですので(?)、IRCで新年チャットをしようかと思っています。
まったりおしゃべりでもよいのですが、 テーマを決めたほうが話しやすいかもしれないということで、 試しにお題を決めてみました。
お題:新春IRC: Free Talk on Writing 2007 日時:2007年1月1日 22:00〜24:00頃 IRCチャンネル:#hyuki_freetalk
要するに、日記やブログを書いたり、メールを書いたり、 論文を書いたり、原稿を書いたり、 本を書いたり …… 何かを「書く」ことについて、自由におしゃべりしましょう! ——ということです。
お仕事風味満載のお題ですが、 結城が関心ある話題ということでご容赦ください。
といっても、新年のお休みですから、おとそ気分で来てくださってかまいません。 出入り自由。 楽しく「書き物」についてのおしゃべりをしましょう。 ROMも歓迎。
そうそう、すみませんが、エンコーディングはShift_JISでやります(Shift_JISな人がいつも多いため)。
エンコーディングはiso-2022-jpらしい(LimeChatのデフォルトで)
ちなみに、結城はIRCのクライアントとしてWindowsの LimeChatを使っています。
あけましておめでとうございます。 今年も、よろしくお願いいたします。
私たちを愛してくださるイエス・キリストの愛が、 今年も豊かにありますように。
あなたのご意見・感想をお送りください。 あなたの一言が大きなはげみとなりますので、どんなことでもどうぞ。