1.レッスンを書く?あんまり。
ソースコードを書くことは、本を書くこととは十分に異なります。
両方とも同じ目標を追求していますが、できるだけ明確で理解しやすいということですが、彼らは非常に異なる方法でそれを行っています。
例1:音声の数字
スピーチの数字は、小説や詩などを書くときに価値があります。文章の表現力を高めるからです。
ソースコードで矛盾表現やリトートを最後に見たのはいつですか?それらを持っているのは助けになるでしょうか、それとも後でそのようなソースコードを維持する必要がある開発者にとって非常に有害でしょうか?
例2:語彙
豊富な語彙は文学で高く評価されています。たとえば、ウィリアムシェークスピアの語彙は2万から2万5千語です。豊富な語彙は、小説や詩を読むことをより興味深いものにします。
ソースコードを書くとき、英語を上手に話せない人に読まれることを期待します。英語があなたのコードにとって非常に有害であることをどれだけ知っているかを示すこと。あなたが必要なものを正確に意味する派手な単語を知っているが、多くの人がこの単語の意味を知らないことを知っているなら、むしろ表現力の低い同義語または意味を説明する単語のセットを見つけるべきです。数千語の語彙は、多くの場合、特定のプロジェクトに十分です。
重要な側面に注意してください。Google翻訳は、非ネイティブスピーカーにとって大きな助けになる可能性がありますが、翻訳者には2つの問題があります。
一対の言語は、必ずしも単語間で1対1で一致するとは限りません。一部の単語は、他の言語でまったく翻訳されていないか、複数の単語が外国語で単一の単語に翻訳される可能性があります。たとえば、ロシア語では、雪と寒さの特定の状態を対象とする膨大な量の単語があり、フランス語またはスペイン語でそれらを翻訳することは、通常、その特異性を失うことなく不可能です。
単語には複数の意味がある場合があり、その意味は文脈から推測されます。Google翻訳は、その高品質にもかかわらず、通常、最も基本的な状況以外の意味を示すことができません。
例3:式
表現も散文を豊かにします。著者は、読者に一定の一般的な文化があることを期待し、この機会を利用してテキストをより表現力豊かにします。
前の例と同様に、このような表現は、ネイティブスピーカーではない人が読む場合、非常に問題になる可能性があります。しかし、一般的な語彙を通常翻訳できる場合、表現ははるかに問題があります。
たとえば、英語は私の第一言語ではなく、日常的には、ここでStackExchangeを含む、私が知らない表現に遭遇します。私はそれらの意味を推測しようとします、そして時々私は正しいです。しかし、時々私は間違っており、それらの表現をググリングしても助けにはなりません。
彼女/彼のコメントのユーザーは、私がプログラミングを始めたばかりのときに私が長い間苦しめた例、PHPのニードルとヘイスタックを思い出させました。私は対応するスピーチの数字を知らなかったので、ドキュメントを読むたびに、これが一体何なのか疑問に思っていました。言うまでもなく、C#sequence.Contains(element)
または優れたPythonの方element in sequence
がはるかに優れた選択肢です。少なくとも、ヘブライ語を知らない開発者もPHPに苦しむ必要がありましたが、これは別の話です。
例4:文化的な参照
文化的な参照。文学では、特定の文化の要素を取り入れることが魅力的であり、これもまた本をより豊かにし、時にはより読みやすくします。
ただし、コードは世界中の開発者向けです。したがって、イタリアの開発者にとって明らかな参照は、ロシアの開発者にとってはそれほど明白ではないかもしれません。また、すべてのインドの少年や少女が知っていることは、必ずしもアメリカのプログラマーによって知られているとは限りません。
針と干し草の山について話したのと同じユーザーは、そのような文化的参照の優れた例を示しました:聖杯。聖杯が何であるかを知らないのは誰ですか?まあ、つまり、フランス語の「Graal」、スペイン語の「Grial」、トルコ語の「KutsalKâse」ですが、それでもです。しかし、アメリカやヨーロッパの開発者は中国やインドの中世の歴史をどれだけ知っていますか?中国人とインド人のプログラマー全員が聖杯の参考文献を知らなければならないと思うのはなぜですか?
2.表現力豊かなソースコードを書くための教訓?承知しました。
開発者は、表現力豊かなソースコードの記述方法を学ぶ必要があります。
開発者はコメントの理由を説明する必要があります。
int j = i + 1; // Creating i and adding 1 to it.
それは完全に間違っているという事実は別としても悪いことです。
開発者は誰でも、基本的なリファクタリングと、それがソースコードをより表現力豊かにするのにどのように役立つかを理解できるはずです。
開発者は、20%の時間がコードの開発に費やされ、80%がコードの保守に費やされることを覚えておく必要があります。一部のプロジェクトでは、5%-95%のようです。
等
本質的に、プログラミングは技術文書に近いものです。ボルトの仕様書を作成する人は、レッスンを書く必要がありますか?あんまり。開発者にも同じことが当てはまります。誰もがすべての単語のつづりを間違えずに書くべきであり、誰もが彼女の考えを十分に明確に伝えることができるはずです。それとは別に、授業を書くことがコンピューターサイエンスやITセキュリティなどのコースよりもどのように役立つかはわかりません。
ソースコードの表現力は、他の方法で学習できます。superM はその答えの 1つに言及しました。良いコードを読むことです。他にもいくつか言及できます。