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.

バッドプラクティス in Perlベストプラクティス

1,753 views

Published on

Published in: Software
  • Be the first to comment

バッドプラクティス in Perlベストプラクティス

  1. 1. バッドプラクティス in Perlベストプラクティス エンジニア勉強会 2014/05/16 古山 祐樹 @addsict エンジニア勉強会 2014/05/16
  2. 2. 今日の話 http://www.oreilly.co.jp/books/4873113008/ エンジニア勉強会 2014/05/16
  3. 3. おことわり 今日話す内容はこの本を読んでいて、 個人的に気になった部分です。 異論・反論は大いに結構ですので声をあげてください。 エンジニア勉強会 2014/05/16
  4. 4. ベストプラクティス系の本の読み方 • 世の中のコードと比較して読む – 実際にこのやり方は世の中のPerl Mongerは使っているの? – CPANモジュールを読むいいチャンス • 疑って読む – Perlの言語仕様も変化しているかも? • Perlベストプラクティスの初版は2006年(Perl v5.8時代) – 本当にベストな方法?遅いのでは?読みにくいのでは? エンジニア勉強会 2014/05/16
  5. 5. 5.12 変数 「スライスのキーやインデックスの数が多い場合はファクタリングする」 エンジニア勉強会 2014/05/16
  6. 6. 疑って読んでみよう • 5.12のベストプラクティス内で何を推奨しているか – ハッシュのkeys関数とvalues関数が 常に同じ順序でハッシュエントリを操作することを利用する • ホントに同じ順序? エンジニア勉強会 2014/05/16
  7. 7. YES ≦ perl 5.16 NO ≧ perl 5.18 エンジニア勉強会 2014/05/16
  8. 8. $ perldoc perl5180delta エンジニア勉強会 2014/05/16
  9. 9. 12.2 正規表現 「常に/mフラグを使用する」 エンジニア勉強会 2014/05/16
  10. 10. 本当に読みやすい? • 前提 – 正規表現のメタ文字 ^ と $ の取り扱い • 12.2で述べていること – ^ と $ はそれぞれ「文字列全体の先頭」、「文字列全体の末尾」を 表すなんてコードを保守する人・読む人は知らないだろう – それならば常に/mフラグを付けて、^ と $ に「自然」な動きをさせよ う エンジニア勉強会 2014/05/16
  11. 11. 読み手に誤った情報を与えない • /mフラグを付けた場合、読み手に 「入力される文字列が必ずマルチライン文字列である」 と勘違いさせる可能性がある • 不必要な情報(正しくない情報)を与える可能性があるも のを常に使用すべきだとは思わない Perlベストプラクティス本には、「常にxxを使用する」という 過激なプラクティスが多いので慎重に検討しましょう… エンジニア勉強会 2014/05/16
  12. 12. 5.5 「あまりよく知られていない句読点変数には、use Englishを使用する」 9.9 「マルチコンテキストでの戻り値にはContextual::Returnを使用する」 エンジニア勉強会 2014/05/16
  13. 13. 読み手を驚かせない • use English; 知っていますか? – cf.) Perlの一文字変数の攻略 http://hachiojipm.github.io/entry/2013-09-16-perlonechar.html • シンプルにやろう – 一見便利そう・可読性が上がりそうに見えるモジュールが 他の人からどう見えるか考えよう – シンプルなモジュールでシンプルに組み立てよう エンジニア勉強会 2014/05/16
  14. 14. まとめ • Perlベストプラクティスはいい本 • だけど古い情報もいくらかある – 手を動かしつつ疑ってみよう • 「常にxxxを使用する」系のベストプラクティスは慎重に 検討し、自分なりに咀嚼する エンジニア勉強会 2014/05/16

×