
私は何年もソフトウェアを書いてきました。最近、私はオープンソース技術に取り組めば取り組むほど、私が書くコードが良くなることに気づきました。これは私に疑問を抱かせました:そこに何らかの相関関係や因果関係があるのでしょうか?
コードを読むことであなたはより良くなる
私はプログラミングキャリアの初期に、読むコードが多ければ多いほど、私のコードは良くなることを理解していました。私は、他人のコードをメンテナンスしなければならないとき、シンプルでクリーンなコードは、たとえコメントがあっても、ほとんど常に派手で複雑なコードより良いことを知っていました。しかし一方で、複雑なコードを理解するのに十分な時間を費やすと、新しいテクニックを学ぶことができました。いずれにせよ、私は向上できました。
これにより、コードレビューがない場所でコードレビューを求め続けるようになりました。正式に「コードレビュー」を実行する十分な時間がない場合、私は自分でリポジトリを閲覧してコードを読みます。もちろん、当時は小規模チームの会社リソースに制限されていました。
構文を超えて
任意のプログラミング言語の構文に対処しなければならないとき、その言語を最大限に活用する方法を学ぶ最も些細な瞬間です。言語の構文は非常に静的であり、間違えればコンパイラが文句を言います。より深いレッスンは、どの言語がどのような問題を解決するのに最も適しているか(「適切な道具で適切な仕事を」)、そしてその言語で効率的で保守可能なコードを書く方法に関係しています。
新しい言語を学ぶ方法はたくさんあります:コース、チュートリアル、メンター、本など。私は通常、これらのオプションを組み合わせて新しい言語を学びます。非構文要素に関しては、これらの方法は非常に似ていることが多いことに気づきました。
他人の実際にデプロイされたコードを読むことで、より多くを得られます。従来の構造化学習だけでなく、パターンと実践方法も学ぶ必要があります。言語で「正しい」とされる方法は、常に最良の結果をもたらすとは限りません。エッジケース、一度きりのトランザクション、予期しない統合を経験します。これらの問題の解決策を見つけます。良いものも悪いものもありますが、真剣に考えれば、これが「推奨プラクティス」が生まれる場所です。今日のパターンは明日のアンチパターンです。
「常にコメントする」、「カンマを最後に置く」、「xスペースでインデントする」など、自分の意見があるかもしれません。もちろん、あなたは正しいです。私もこれらやコーディングの他の側面について自分の感情を持っています。
他人のコードを読んでいるとき、彼らが間違っているのを見ると怒ることがあります。しかし、コード読書量が増えるにつれて、他人のコードでは一般的だが自分のコードでは遭遇したことのない状況があり、私のアプローチがそれほど頑固である必要がないことがわかり始めました。私はいくつかの見解を変えただけでなく、より柔軟になりました。
オープンソースはどこにでもある
オープンソース運動の発展に伴い、読んで学べるコードの量も大幅に増えました。Gitlab、GitHub、BitBucketなどのサイトは、完全に機能するアプリケーションを取得でき、コードを読むだけでなく、いじることもできます。学びたいもののほとんどはオープンソースコードで入手できます。
以前、新しいプログラミング言語を学ぶとき、ディレクトリ構造や命名規則などの単純なことに焦点を当てていました。しかし今では、異なるオープンソースプロジェクトを探し、一般的なアプローチを組み合わせ始めることができます。以前のようなタイプのものを強調することはほとんどありません。
利用可能なコードは非常に多いですが、品質はまちまちです。学びたいとき、どれが良くてどれが悪いかがよくわかりません。コードを読み続けてください。ゆっくりと区別する方法を学びます。「悪い」コードを読むことで、なぜそれが「悪い」のかを理解できます。重要なのは、正しいと思えるものを試すことを恐れず、間違った道を進んだときに間違いを認め、問題を修正し、前に進むことです。
悪いコードは悪い、そうでしょうか?
「悪いコードは良いコードより多く、より明確だ」と言う人もいます。sub-redditは悪いコードに捧げられています。
これらの年月で、私は多くの良いコードと悪いコードを書きました。以前書いたコードを見ると、最初の考えは「どうしてこんなゴミコードを書いたのか」ということです。これは実際には私がまだ学習中であることを意味します。以前のコードを見て、それが素晴らしく見えるなら、私は向上していないことを意味します。
では、悪いコードからどうやって学べるのでしょうか?
悪いコードを読めば読むほど、悪いコードを見つけるのが上手になる
学習して例を探しているとき、動作しない大量のコードを見つけて使用します。あなたの状況に適合しないからといって、それが悪いコードだというわけではないことを覚えておいてください。それを動作させる方法を学ぶことで、あなたはより良くなれます。
どうやってそれが悪いコードだとわかりますか?
人々は批判が好きです。コメントを読んでください。「WTF」がたくさん見えたら、悪いコードを見ているかもしれません。なぜ良くないのかを指摘してみてください。「このコードはひどい」というコメントだけを残さないでください。悪いコードのすべての要件を知っているふりをしないでください。そう書かれた正当な理由が常にあります。なぜ悪いコードなのかわかるなら、建設的なコメントを残してください。あるいは…
良いコードにする
コードを良くするプルリクエストを出してください。構文を修正し、より良い方法を使用し、コメントを追加するか、インデントを変更する:これらはすべてコードを改善する素晴らしい方法です。なぜコードを変更することを推奨するのか説明を加えてください。
私は他人が学ぶのを助けるとき、より多くを学べることに気づきました。新しいトピックを理解したと思うなら、誰かを見つけて説明しようとします。これはより深く理解し、覚え、悪いコードを書いたかどうかを素早く発見させてくれます。
還元
オープンソースは参加するときに最良の結果を得られることを覚えておいてください。コード変更はほとんどのプロジェクトで歓迎されますが、貢献する方法はたくさんあります。
オープンソースコードをテストしてバグレポートを提出する。ドキュメントセットの完成を助ける。チュートリアルとハウツーの例を書く。会話に参加する。あるいは単に広めるのを助ける。すべてのことが変化をもたらし、より多くの人が参加すればするほど良いです!
リソース
始めるのに役立つリンクがいくつかあります。私が使ったものもあれば、まだ深く掘り下げていないものもあります。役立つものを見つけた場合、またはこの記事で修正が必要な場所がある場合は、躊躇せずに共有してください。
- Open Source Society University
- Free Code Camp
- opensource.com
- Getting Started With GitLab
- GitHub Guides
- moodle.org
転載请注明:デベロッパーリレーションズ »