for文の重要性 あなたは理解してますか?

記事
IT・テクノロジー
とある会社に入社しました。
本来フリーランスで働いていたのですが、フリーランスとほぼ同条件の給与額での交渉ができたので、入社しました。
しかし入ってみたら、その会社のシステムの殆どがダメでした。
まずはいきなり初日に相談された案件がありました。
私にとっては簡単な事だったのですが、
WEBサイトの管理システムのとある重要な「詳細一覧の画面が表示するのに遅すぎて20分位待つ」
という内容でした。
コードを見る前から解りましたが、コードの内容通りでした。
その会社にはエンジニアがきちんといて、それを作ったエンジニアも在籍しているのに、6か月も放置だったらしいので、そのエンジニアはコードを理解されていなかったと判断しています。
その内容は for文です。 for文は結構慣れてない人が書くと、しくじりやすいです。
処理に時間がかかっている場合はほぼfor文のミスと考えれば良いと思います。
画面が表示されず、timeover的な画面に行くなら、ほぼ無限ループが入っていますが、それは大体みんな回避できます。無限ループは当然納品できるレベルのコードではないので、きちんと直します。
良く放置されるfor文ですが、中で100万回とか1000万回とかループしているケースです。
for文がどれだけ回数回しているのか確認するのは簡単なんです。結構確認しない人多いです。
下記ソースは適当ですので、for文が複雑になった時に起こるという前提で見てください。
for ( i == i++){
なんか一連の処理をしていきます。
count = i; ←この文章追加します!
}
print count ; で、for文がいくつ回っているかを確認しましょう。これ絶対!
基本抽出したい文字列が見つかり次第、次へ進ませましょう。
for文のループ中に無駄な処理はどんどん省くようコードを最適にし、
100万回回っていたのを1000回位のループにまで削減し、秒で表示されるように修正しました。
それも入社後初日、30分の作業で今まで6カ月間の無駄な画面表示時間が直りました。
結構最近ではデータ抽出はSQL任せになっていて、不意にfor文が必要になった時対応できない人が多いと思われます。
また、SQL文で抽出するのも下手なエンジニアもいます。
SQLで大量抽出し、その後、for文やperlだとforeachなどあるんですが、
こういう所で無駄にリソース使っているエンジニアが多い可能性があります。
最近携帯ゲームや、WEBサイトを見ててもおっせーな!と思う事が良くあります。
貧弱なサーバーで負荷がかかってる可能性もあり得なくもないですが、大体がコードだと思われます。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら