プログラミングの習慣をよくすることが重要です


最近、クエリーモジュールの性能を調整しています.このモジュールのフロントエンドはあまりにも友好的ではありません.一度にすべてのデータをフロントに持っていくのです.現在使用されているかどうかにかかわらず、遅延ロードが欠けています.しかし、このような問題は大きくないはずです.結局、転送されたデータは多くなく、調整も容易ではありません.続いてバックグラウンドを见て、バックグラウンドのコードは更に友好的ではありませんて、Actionの方法は比较的に简洁で、ActionからServiceまで、星のホテルからごみの山のそばの感じまで、人に1种の适応しない感じをさせて、1つの情报の取得の方法、业务のがなくて、责任を持ってデータを出してくれればいいのに、どうして中にこんなに多くの论理がありますか?さらに分析すると、この情報の取得は主従表の情報の取得に関わることが分かった.まず主従表のデータを取得し、遍歴し、再びサブ表のデータを取得し、2つの字表があり、これは完全にforサイクルの中でデータベースを接続する典型的な逆教材である.
 
      問題が見つかりました.どのように調整すればいいですか?性能調整の目的は十分であって、最良ではないが、調整実現といえば、ORMの一対多などで、目的を実現することができ、仕事量が大きく、しかも影響が大きくないことを考慮して、この方法を考慮せずに、この問題を分析し続ける.
 
      データベースモデルを解析したところ、2つとも表から簡単で、2つのフィールドしかなく、1つはIDで、1つはNameで、フロントに表示されると、「name 1,name 2...nameN.」という形で表示されることが分かったので、前のforループネストクエリがありました.このような分析を経て、私は発見して、これは設計の問題で、性能の角度から出発して、このようにするのは確かによくありません.次の2つの方法があります.
 
1、    , ID、Name        , (ID1、ID2。。。) (Name1,Name2。。。)   ,        ,      ,      。 

2、                 ,   (ID1、ID2。。。) (Name1,Name2。。。)   ,          。     ,       ,               。 

  
      2つの状況を分析した後、私は第1の処理方法を採用して、すぐに調整して、コード量は半分少なくて、簡潔に見えて、性能の方面もとても長いです.
 
      この問題は大きな影響を及ぼしており、一部のお客様はモジュールのクエリー速度が遅いため、「もうシステムを使わない」などと言っています.振り返ってみると、この問題は設計時に、よく考えてみると、このような問題の発生を避けることができます.もしこの問題が卒業したばかりの人が書いたなら、まだ許すことができますが、そうではありません.
 
      本文は主に日常の安全から良好な習慣の重要性を説明したい.良い習慣の育成は、最初から注意しなければならない.プログラマーが持つべき良い習慣を身につけるように要求し、システムの使用、性能などの面から設計、開発を考えることが多い.私が持っている実習生は、私は彼らに良いプログラミング習慣を身につけるように要求しています.彼らが書いたコードもよくチェックしています.悪いことがあれば、以上提出してください.パッケージ名の大文字のような小さな問題でも、リソースを開けて閉じないような大きな問題でも、よくありません.自分のせいで、後の人のメンテナンスやアップグレードに迷惑をかけてはいけないので、プログラミングの習慣をよくすることが大切です.