スティーブンキング「コードの書き方」

「なに? Stephen King「コードの書き方」?! そのような本はありません! 彼はまったくプログラマーでもありません!」

はい、そうです。 それにもかかわらず、彼はそのような内容の本を持っています。 彼はそれについて彼女に書いたとは思わなかったが。 結果は書かれていますが。 おそらく、彼はそれについて知らないでしょう。 ここで何を議論していますか? 私が最近読んだ素晴らしい本「本の書き方」について(英語-「執筆中」)。



キングは初心者の作家のための経験豊富な作家としてそれを書いた。 しかし、その結果、彼は素晴らしい文学の書き方だけでなく、プログラムコードを含むすべての書き方も教えてくれる本を手に入れました。 過去数年にわたって現代のソフトウェア業界の20の基本的なアイコンブック(これらすべての「リファクタリング」、「パターン」、「クリーンで完璧なコード」など)を読んだ後、キングの本はかなりそれらの間の場所であり、最後の場所ではありません。 次に、いくつかの例(および結果としてネタバレ)があるので、最も正しいことは、記事を読み続けるのではなく、 自体を読みに行くことです。 その後、戻って自分の調査結果と比較できます。 本に時間がない場合は、抜粋と結論があります。



仕事、仕事と再び仕事



クリエイターの天才は少数です。 王自身は彼らに関係していません。 彼は幼い頃から(就学前の頃から)短編小説、文章、下書きを書き始め、それらをさまざまな人々に見せ、雑誌や出版社に送った方法について語っています。 そして、彼が10年半の間どのようにサッカーをしていたか。 そして今、彼自身は、彼がその時、下手に書いたことを認めています。 この数十年半、彼は改善する必要がありました。 最終的に数千万で販売されているものを書く。 品質は長年の日々の仕事の結果であるという考えは、プログラマにとって非常に重要です。 さて、あなたは今、あらゆる種類の「23歳の先輩」がそこで流行している。 そのうちのいくつかは本当に自然の才能でしょう。 しかし、私たちのほとんどが作業の最初の5年間にコードで記述したものは、Shift + Del操作にのみ適しています。 この時間が研究、インターンシップ、または「ジュニア開発者」の地位に費やされるのは良いことです。 しかし、時には誇りや状況のために、人々は実稼働コードを非常に真剣に書きます。 その後、彼ら自身と雇用主が支払うもの。 奇跡はありません。 ロシアのおとぎ話では、ストーブの上に33年間座ってから、突然ヒーローになったり、金魚を捕まえたりするのがお洒落です。 景品への渇望と奇跡への信仰-これらの状況は多くの人に内在しています。 スティーブン・キングは奇跡はないという事実について語っています(ここにパラドックスはありますが、彼の本のほとんどはそうではありません!)。 世界的な名声の時まで、彼自身はあまり知られていない雑誌の小銭を中断し、教師として勉強し、彼のために働いて、洗濯室でお金を稼いだ。 そしてこの間ずっと、彼は書いて、書いて、書いた。



閉じたドアと開いたドア



キングは、彼は常に少なくとも2つの草稿を書いていると言います。1つは「閉じたドアの後ろ」、もう1つは「ドアが開いた状態」です。 これにより、彼はこれを理解します。作品の最初のバージョンは、著者の頭と魂によって決定されるべきです。 彼はミューズが彼に言うことを書くために、創造し、空想する機会を提供する必要があります。 しかし、結果は次のようになります-どのような場合でも、すぐにそれを読者に与えるべきではありません。 これらはすべて、「ドアが開いた状態で」書き換える必要があります。 つまり 彼の妻、親しい友人、信頼できる編集者または評論家に話をしてください。 原則として、これらの人々は多くの失策、仕事の愚かさを見つけ、理解できないものを指摘し、よく知られている事実と矛盾するでしょう。 これらのコメントの多くはケースにあります。 そして、これらのコメントを考慮してテキストを書き換える必要があります。 このアイデアがITの世界でよく知られている事実とどの程度調和しているかをご覧ください。

  1. プログラマーは、平和、沈黙、気晴らしの欠如を確保する必要があります。
  2. コードは、実稼働に送信される前にレビューまたはテストに合格する必要があります。 さて、コードが複数の開発者によって所有されている場合。


それはどのように見えるか-素晴らしい文学とプログラミングを書くのはどう違うのか。 そして、あなたが見る-プロセスの本質は同じです。

スティーブンが話すもう1つのルールは、2番目のドラフトバージョンが最初のドラフトバージョンよりも必ず短くなければならないことです(少なくとも10%)。 繰り返しますが、システムの機能を損なうことなくコードを削除するのが最良のリファクタリングであることは誰もが知っています。 存在しないコードを保存、読み取り、保守、テストする必要はありません。エラーはありません。 これが最高のコードです。



読者にしてください



自分が好きなもの、または読者が好きなものを書くには? 一部の著者は、読者に順応することは、自分を裏切ることと、ファッションをきっかけにしか資金を調達できない「文学の寝具」になることを意味すると考えています。 キングはこの考えを断固として否定します。 彼は、創造性には観客が必要だと言います。 読者を喜ばせたくない場合は、テーブルに書き込むか、すぐに書かれたものをすべて焼いてください。 しかし、公開することに決めた場合、一般の人々について考える必要があります。 彼女にとって何が面白く、何が面白くない、何が理解可能、そして何が難しい、何が喜びを、何が退屈を引き起こすでしょうか? これらすべての考えが作家のペンを導くはずです。 そうでなければ、彼はプロではなく、アマチュアです。 それ以外の場合は、すぐに「認識されない天才」にサインアップし、大河に住むためにきれいな紙を用意しておくことができます。 プログラマーにとって、この理解不足はどのくらいの頻度です! 結局のところ、私たちは自分自身のためではなく、コンピューターのメモリ内のバイトのためではなく、エンドユーザーのために働いています。 それは私たちのプログラムで彼にとって便利で、便利で、速く、快適でなければなりません。 私たちではなく、彼の問題を解決します。 彼は私たちの雇用主です。 自分のためだけに書く場合-趣味、趣味と呼ぶことができますが、プロの仕事ではありません。



リズム



スティーブンは、どこでも本を開くと、テキストを読まなくてもその品質の程度を伝える可能性が非常に高いと言います。 単語が文をどのように形成するか、段落がどれだけ長くなるか、ダイアログ、数式、引用符などが占めるスペースをすぐに確認できます。 これはすべて、本の複雑さ、スタイル、ダイナミクスなどの理解を与えます。 2〜3ページを一目見ただけでも、この本を読むのが面白いかどうかはすでに明らかです。 コードについてもまったく同じことが言えます。 ソースを開くと、その精神がすでに感じられます。関数のサイズ、行の平均の長さ、クラスのメソッドの数、コメントの存在、テストなどをすぐに見ることができます。 そのリズムを見るためにコードを完全に読む必要はありません。2〜3ページで、プロジェクトでライブラリを使用する価値があるかどうかを理解できます。 コードの作成者に関しては、これによりユーザーが私に期待することを理解できます。 私は本当に彼の前で恥をかいたくありません。



ツールキット



どんなに優れたマスターであっても、適切なツールなしで働くことは彼にとって便利ではありません。 本のいくつかの章は、適切なライターツールを選択することに専念しています。 著者は、簡単なツール(適切なテキストエディター、辞書、リファレンスブックなど)だけでなく、キャラクターの名前付け、文学の決まり文句の回避、特定の単語の禁止、文章の正しい構成などの高レベルなツールの両方の必要性についても議論しています。 プログラマーにとっては、もちろん、ツールキットの「下位階層」は、適切なハードウェアとソフトウェア、お気に入りのIDE向けに正しく選択されたプラグイン、学習したホットキーで構成されています。 ツールの「上位」レベルはより複雑です-これらは実績のあるライブラリ(独自のライブラリと他のライブラリ)であり、正しいパターンです。これは一般に経験と蓄積された直感であり、どのソリューションが機能するか、機能しないかを示します。 このすべてのツールキットを作成することは、プログラマーの仕事の非常に重要な部分です。 それがなければ、彼は素手で火を作ろうとする穴居人のようになります。



品種からアーティファクトを抽出する



私はこの考えを王から聞いただけでなく、この傑作の作成は簡単であり、大理石の像が作成前は常に固体の石片であったように、それは常にどこかに存在したと言います。 最も難しいのは、「品種」からアーティファクトを損傷することなく抽出し、余分なゴミをキャプチャしないことです。 思考はとても美しいです。 時々、あるプログラムを見て、このアーティファクトのようにそれを見ます-すべてがその中にあります。 「ここにそのような機能があればいいのに」と思うだけです-あなたが見ているように、それはそこにあります。 そして、あなたが思ったように、それがどのように機能するかです。 そのようなプログラムの作者の考え方は、おそらく美術品の作成者の考え方と非常に似ています。 そのような真珠を抽出できることは素晴らしいスキルであり、それのために努力する価値があります。



文学エージェント



(コードまたは本)うまく書くことができるのは、戦いの半分です。 あなたの製品を消費者に持ち込み、お金を払ってくれる人を見つける必要があります。 出版界には、「文学エージェント」などの職業があります。家を出版する前に著者を代表し、料金の額を決定し、著作権の問題を解決し、一般に相互の義務を負います。 今日のITの世界では、非常に多くの種類の協力があります(直接および仲介者を介した)。 それらのいくつかは、プログラマー以外の仕事の膨大な山をプログラマーに委ね、他は純粋な創造性の余地を残しています。 私の場合、好きなことだけをするために給料の数パーセントを認める方が良いですが、誰かにとっては逆の場合もあります。 「フリーランス対通常の仕事対あなたのスタートアップ対他の何か」というテーマについて、まだ激しい議論があるのも不思議ではありません。 みんなに合ったもの、主なことはそれを探して見つけるのが面倒ではないことです。



著者はこのすべてについて書いており、私よりもはるかに面白くてカラフルな、語り口のリテーラーなので、上記のネタバレをすべて読んだとしても、元の本を読むのは理にかなっています。 興味があると思います。



All Articles