若い開発者として、私は高品質のアプリケーションを開発するために考えるべきことについていくつかのアドバイスを得ることが有益だと思います。私の大学のコースでは、ほとんどの教師が入力の検証を強調し、一部はセキュリティの懸念について話しましたが、たとえばロギングのような他の特定のことの重要性について誰もカバーしていませんでした。
経験の浅い開発者が犯しがちな間違いのうち、経験豊富な開発者の不満につながるものは何ですか。
新しい開発者が忘れている主なことは、現実の世界では彼らはしばしばチームの一員として働いているということです。これは自分自身を示しています。
それは、彼らのコードが単独でスクラッチすることができないと言っているわけではありませんが、彼らはもはや分離して働いていません。
ほとんどすべてのプラットフォームで、次のことに対処する必要があります。
私の経験では、ほとんどすべての経験の浅い開発者が心に留めておくことができないことの1つは、あなたが(ほとんど常に)商用環境で作業しているということです。あなたのコードは良いものでなければなりませんが、完璧ではありません。最も重要なことは完璧ではなく、コードが出荷されるということです。
別の言い方をすれば、会社が破綻してから3か月後に完璧なコードを提供することは、誰にとっても良いことではありません。
私の意見では、これは現実の世界での開発が大学で教えられている開発と異なる最も重要な方法の1つです。
本当に幅広い質問。詳細に答えるのは...複数の本です。
ここにあなたが始めるための一般的なシステム定義チェックリストがあります-
最大の違いはコーディング技術にあると思います。誰もがわずかに異なるアプローチを持っていますが、経験の浅い開発者は次のようなコードを生成する傾向があります。
開発マシンとターゲットマシンのシステムをクリーンに分離することで、「まあ、それは自分のマシンで機能する」という状況にならないようにします。
そして、どれだけ早く開発マシンを再構築できますか?
それはおそらくデザインだと思います。つまり、それを行う前に、何をするかについて考えるアプローチです。
あまりにも多くの経験の浅いコーダー(最初に始めたときを思い出してください)は、飛び込んで何かを始めたいと思います。このアプローチは、その方法で計画した場合に機能します(結局のところ、各ビットをテストできます)が、ほとんどの未経験のプログラマーは、作成している部分にのみ焦点を当てています。したがって、すべての追加機能はハッキングされる傾向があります上に。そして、そのように進化したコードを見てきました!
次は組織です。多くの場合、彼らは自分が書いたコードに集中しすぎて、その方法や必要なことを思い出せません。したがって、必要な依存関係をバンドルまたは文書化するのを忘れています。彼らはまた、物事が落ちる場所に置く傾向があります、私は先週の後輩が3つのwsdlを含むルートディレクトリで彼のコードをチェックインしたと批判しなければなりませんでした。サブディレクトリandルートディレクトリ。コードは、あなたが考え得るどの標準にもフォーマットされておらず、存在するが呼び出されない関数がいくつかありました。
明らかに彼はそれを機能させましたが、整頓されていなかったので、インストールとメンテナンスが面倒だったでしょう。
私の最大の問題は、柔軟性を計画することを忘れないことです。クラスでは、ほとんどの場合、要件は最初に示され、変更されることはありません。ソフトウェアでは、それはしばしば反対です。あいまいな要件のセットを取得し、それらは頻繁に(毎日でも)変更されます。これを支援するためにできる最善のことは、柔軟にコーディングすることです。疎結合、複数の状況で確実に使用できる小さな関数、ハードコーディングをできるだけ避けることです。
そのうちに、a)変更される可能性が最も高いもの、逆に変更されない可能性が高いもの、およびb)変更要求を予測して計画する方法について学習します。
あなたが最悪のものを尋ねたので、私の答えは次のとおりです: