Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

初心者向けPHPソースコード診断

2,542 views

Published on

Published in: Engineering
  • Be the first to comment

初心者向けPHPソースコード診断

  1. 1. 初心者向けPHPソースコード診 断 2014/10/11 by kitoku_magic
  2. 2. 自己紹介  IT業界歴6年強のフリーのエンジニア  器用貧乏化しているスキルセットが最近の課題  ドMな人間しか出来ない様なムズゲー (TFF、FE新紋の高難易度)が好み  ビジネスにおいて、「継続可能な戦略」という ものについて最近考えることが多い(継続が難 しい)
  3. 3. 本内容の対象者 ・スキルが中級以上のPHPプログラ マー以外 ・具体例:初級PHPプログラ マー、PHPを使ってるシステムの利 害関係者一同 ・中級以上のPHPプログラマーの皆様 には、逆にツッコミとか意見とかをい ただきたいです。
  4. 4. 本題 システムの「質」、どうやって判断し ます? プログラムが全てではないけど、今回 の対象は、比較的簡単に質を計れる PHPプログラムのソースコード診断
  5. 5. プログラムをどうやって読む? 読むんじゃなくて、正規表現で抽出してみましょ うか
  6. 6. 具体例1  global変数、$GLOBALS、publicな変数 条件:global +$|$GLOBALS|public +$ たとえ話「あれ?Aさんの家の消火をしようと したのに、Bさんの家も消火しちゃった」 値の変更を、検知出来る仕組み(一例:setter) が大切
  7. 7. 具体例2 ・比較演算子の「==」 条件:[^!=]==[^=]|!=[^=]|<> たとえ話「あれ?パスワードに” 10e00000” って 設定しているのに、” 1e1”って入れたらログイ ン出来ちゃったよ」 「==」じゃなくて「===」と書けば解決
  8. 8. 具体例3 ・閉じタグ(?>) 条件:?> たとえ話「あれ?こんな文字、何処に書いたか なぁ」 書く事によるデメリットはあっても、メリット がそれを上回るとは思えないので、書かないこ と
  9. 9. 具体例4 ・empty関数 条件:empty *(.+) PHPのマニュアル http://php.net/manual/ja/function.empty.php 参 照。 何となくチェック出来るのは確かだが、TRUE になるパターンが多いので、「取り扱い注意」
  10. 10. 具体例5 ・array_push関数 条件:array_push *(.+,.+) $arr = array(); $arr[] = '1'; 関数使わない方が速いし・・・関数使うのに拘 る必然性を感じない
  11. 11. その他 ・ifやfor文などを、括弧で括っていない(止め よう) ・三項演算子(ネストすると危ないとか何と か) ・インクリメントとデクリメント(知らないな ら単一文で) ・・・沢山あると思います
  12. 12. 好みはある ・「if(」 VS 「if (」 (半角スペースの有無) ・「//コメント」 VS 「// コメント」 (半角 スペースの有無) ・「static public 」 VS 「public static 」 ・・・沢山あると思います 実害(バグとか)があれば別だが・・・どっち でも良いのでは?
  13. 13. バグは発生する だって、人間だもの by 相田みつを でも、バグが発生する確率を下げるプログラム の書き方の方が良いですよね? 前述の様な事前に防げるバグは、事前に防ぐべ し 危なそうなコード書いているエンジニアには注 意
  14. 14. 連絡先 Twitter: @kitoku_magic
  15. 15. ありがとうございまし た。

×