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