プログラミングを台無しにする10の方法

10way

最近、汚くて臭い請負業者(彼の知識とスキルは彼がプロジェクトを完了するまで彼に触れないほど良いと主張した)から、私はWebアプリケーションを得ました。 残念ながら、私たちは彼の言葉を受け入れました。 一見したところ、Webアプリケーションのほとんどの機能は正常に機能していました。 しかし、クライアントが実際の状況でアプリケーションを使用し始めるとすぐに、 春は誰がジャンクし始めたのかを示しました 。 請負業者は支払い後に消滅しました(死後の評判!)そして、私はクライアントが苦しんでいたものを直そうと試みました。

私が遭遇したエラーのいくつかを説明することにしました。 これらはすべての優れたプログラマーが長い間避けることができたはずの間違いです...しかし、明らかに、一部の人々はそれらを思い出す必要があります。





#10-設定ファイルに設定を保存しない



スケーラブルなアプリケーションを作成すると、データベース接続パラメーターやSMTPサーバーアドレスなどの情報がアプリケーション全体で使用されます。 さらなるサポートからアプリケーションを確実に保護するには、これらの設定が必要になるたびにオーバーライドしてください。 それらを構成ファイル(Web.configまたはその他)に入れるのではなく、プロジェクト全体に分散してください。 後でアプリケーションを入手した人は、SMTPサーバーの名前を変更するためだけに、数千行のコードを迷ってくれたことに感謝します。 次のプログラマが15か所のうち14か所でサーバー名を見つけると、コードの後ろの最後の15か所でアプリケーションが正しく動作しなくなります。 わかりにくい行からパラメーターの名前を作成すると便利な場合があります。 新しい開発者と不満のある顧客との積極的なパートナーシップは、彼らの関係を強化するのに役立ちます。 そうでない場合、誰がこの親しい友情の前提条件を作成しますか?



#9-[any]メモリに変数を保存しない



データベースの利点の1つは、情報を保存し、必要なときにいつでもアクセスできることです。 アプリケーションが単純に悪化することのないように、少なくとも小さな情報が必要になるたびにデータベースにアクセスしてください。 この情報が必要になる頻度が高いほど、より多くの新しいデータベース接続を作成できます。 システムのユーザーに関する一般情報-これに最適です。 ある変数に値を割り当てて、現在のリクエスト全体で使用することにより、「isAdmin」などのユーザー情報を保存しようとしないでください。 ユーザーについて何かを知る必要があるたびにデータベースに接続します。 最終的に、クライアントはこのデータベースの代金を支払ったので、最大限に活用する必要があります!



#8-トリッキーなプラグインを使用する



クライアントが非標準の要件を持っている場合、たとえば、WYSIWYGエディターが実行できないテーブル形式(colspanは難しい)の場合、作業を行うソースコードなしで、サポートされていないまれなプラグインがインターネットで見つかるはずです。 同じことを自分で書くには、ほぼ1時間かかります。 必要なことではなく、何かをするプラグインを探すのに3時間を費やす方が良いでしょう。 カルマへの+1。必要な機能を実行しないが、必要ではないが削除できない15 MB以上の機能を提供するプラグインを見つけることができる場合。 このプラグインのドキュメントが知らない言語で書かれている場合、カルマに+2。



#7-機能を削除しない



大規模なアプリケーションの開発中に、作業した機能が不要になる場合があります。 このアプリケーションで作業を続ける人のために行き止まりと迷宮を残すために、この不要な機能を削除しないでください。 このコードの小さなチャンク、または数百行のコメントをランダムにコメントアウトすることもできますが、削除しないでください。 彼らがあなたのコードのもつれを解き、それが全く必要でないことを発見したとき、このアプリケーションの将来のチームの快適な伝達の何時間も想像してください! コードが必要なように見えるが、実際には必要ないようにできる場合、後継者はこのコードを自分で削除することを恐れます...楽しいでしょう! 繰り返しますが、プロジェクトでバージョン管理と複数のサーバーを使用している場合は、サーバーとバージョン管理システムごとにファイルのバージョンが異なることを確認してください(ソースとバイナリの両方)。 だから誰がどのバージョンが生産中であるかを知らないでしょう、そして誰が生産サーバーでロシアンルーレットをプレイしたがらないのでしょうか?



#6-パフォーマンスで地獄へ



通常、大規模なアプリケーションは、大量のデータを処理するために使用されます。 もちろん、開発中に20ほどのテストレコードを作成します。 25のレコード、または1000のレコードがある場合に何が起こるかを心配する必要はほとんどありません。 明らかに、データをページ分割すると、すべてが正常に機能し、パフォーマンスは常に優れたものになります。 したがって、アプリケーションがコンパイルされている場合は、お気軽にお客様に提供してください!



#5-コアロジック/機能をループにプッシュする



#6で述べたように、大量のデータを処理します。 そして必然的に、データをサイクルで実行することが必要になります。 アプリケーションの保守を本当に難しくするためには、ループ内に基本的な機能やロジックを組み込む必要があります。 たとえば、データベースを照会する代わりに、すべてのデータをメモリにスローし、ループでデータ配列を調べ、1つのフィールドを除くすべてのデータを取得し、ループでそれを調べます...その後、次のループで、すべてを再度取​​得する必要がありますデータベースからのデータですが、今回は別の追加フィールドが含まれています。 これにより、5人の同時作業ユーザーからアプリケーションが除外されることが保証されます(Re:#6)。 マテリアルを修正します。データの取得>サイクルの作成>データの取得>データの操作。 この作業により完全な白痴を達成できると確信しているので、このトリッキーなデバイスを何度でも使用することをためらわないでください。



#4-何も文書化しない



ドキュメンテーションがバカ向けであることは誰もが知っています。 私が言いたいのは、あなたはコードを読むことができる、またはできないということです。 (まさに、1回の会話で私に言われたことです)確かに、次のプログラマはコードを読むことができます。 コメントをまったく書かないと、面白くなります-何、なぜ、なぜ? 推測させてください。 あなたは忍者のように神秘的です。 誰もあなたがしようとしていたことについてすべてを知る必要はありません。 なぜなら、あなたが何かをするつもりであると書いたのに、結局それをしないでください...まあ...それは単に不便だからです。



#3-非論理的な変数名を使用する



アプリケーションで作業するために多くの変数が必要な場合は、十分な文字が含まれる映画またはテレビ番組を選択する必要があります。変数として名前を使用します。 ロードオブザリング、スターウォーズ、ファミリーガイは素晴らしい選択肢です。 変数を使って友達を作ることもできます。 その後、それらを殺す必要はありません! カメレオン変数を作成できます。そして、新しい機能のために変数が必要になるたびに、それらを無効にして新しいものを割り当てることができます。 彼らはあなたの目の前で成長し、発達します! 繰り返しますが、GreenpeaceとGreen Partyをサポートしてください-最小限の変数を使用してください!



#2-すべてのミスをキャッチ-そして何もしない



現在、ほとんどの言語/プラットフォームには組み込みのエラー処理メカニズムがあります。 プログラムがクラッシュした場合、標準エラーストリームに十分な詳細情報が残されます。 しかし、そのままにしておくことはできません! try / catchで機能の小さな部分をすべてラップすることから始めます。 そして、内部... catch "/ / There is complete complete crap。"のようなコメントを挿入します。



#1-機能の重複



クライアントから2ページが必要であると言われた場合:管理者用-各製品の反対側にボタンのある製品のリストが削除されるページと、平均的なユーザー用の-削除ボタンのないリストは、2つの個別のページを作成する必要があります。 実際、ユーザーグループごとに個別のページを作成できる場合、これはさらに優れています。 ユーザーごとに個別のページを作成することは100%成功です。 これは、アプリケーション内の慎重に設計されたPandoraのボックスを改善しようと必然的に困惑する熟練した専門家の大群に対する最後の防衛線であるため、問題に焦点を合わせて真剣に考えてください。



これは決して完全なリストではありません。 このプロジェクトでのみ、さらに10個の堆積物に名前を付けることができました。 今回は10を残します。さらにポイントを追加したい人はいますか?



All Articles