Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ぼくがPerlで開発を行う時に工夫していること
Search
ybrliiu
April 16, 2018
Programming
0
540
ぼくがPerlで開発を行う時に工夫していること
Gotanda.pm #17
ybrliiu
April 16, 2018
Tweet
Share
More Decks by ybrliiu
See All by ybrliiu
これまでと、これからのPerlコミュニティ
ybrliiu
0
150
AstroNvim を使おう!
ybrliiu
0
4.5k
Perlでも関数の型をチェックしたい
ybrliiu
0
3.1k
Perl5.32の新機能
ybrliiu
0
160
Vue.jsで作ったサイトをバニラJSで書き直す悲しいお話
ybrliiu
1
1.1k
Perlにおける動的なモジュールロードのメリットとデメリット
ybrliiu
0
840
黒魔術で独自定義のenum型制約を満たす値のリ ストを取得する話
ybrliiu
0
410
Perlにおけるクラスの実装パターン.pdf
ybrliiu
0
1.6k
Presentation.pdf
ybrliiu
0
260
Other Decks in Programming
See All in Programming
状態遷移図を書こう / Sequence Chart vs State Diagram
orgachem
PRO
3
290
副作用と戦う PHP リファクタリング ─ ドメインイベントでビジネスロジックを解きほぐす
kajitack
3
480
コーディングエージェント概観(2025/07)
itsuki_t88
0
440
Android 16KBページサイズ対応をはじめからていねいに
mine2424
0
740
No Install CMS戦略 〜 5年先を見据えたフロントエンド開発を考える / no_install_cms
rdlabo
0
370
中級グラフィックス入門~効率的なメッシュレット描画~
projectasura
3
1.7k
オンコール⼊⾨〜ページャーが鳴る前に、あなたが備えられること〜 / Before The Pager Rings
yktakaha4
2
1.1k
はじめてのWeb API体験 ー 飲食店検索アプリを作ろうー
akinko_0915
0
170
Jakarta EE Meets AI
ivargrimstad
0
380
知って得する@cloudflare_vite-pluginのあれこれ
chimame
1
120
Git Sync を超える!OSS で実現する CDK Pull 型デプロイ / Deploying CDK with PipeCD in Pull-style
tkikuc
4
470
The Evolution of Enterprise Java with Jakarta EE 11 and Beyond
ivargrimstad
0
530
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
184
22k
A Tale of Four Properties
chriscoyier
160
23k
Git: the NoSQL Database
bkeepers
PRO
431
65k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Designing Experiences People Love
moore
142
24k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Faster Mobile Websites
deanohume
308
31k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Rails Girls Zürich Keynote
gr2m
95
14k
Being A Developer After 40
akosma
90
590k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Transcript
ぼくがPerlで開発を行うときに工 夫していること by liiu Gotanda.pm #17 1 / 12
自己紹介 liiu / @_ybrliiu MobileFactory 18新卒 (希少な)Perl使いです プログラミング / 歴史
/ (F|T)PS 学生時代にCGIゲーム運営してたりしていました 2 / 12
アジェンダ 僕が個人でPerlを使うときに工夫していることをいくつか お話します 引数の受け取り方 未定義値の扱い方 よく使うプラグマなどを一度に有効にする 3 / 12
引数の受け取り方 できるだけサブルーチンの最初の行で引数を明示 する shiftはなるべく使わない sub hoge { my ($foo, $bar,
$baz) = @_; ... } sub method { my ($self, $arg1) = shift; } 4 / 12
signatures使いたい experimental早く外れてほしい sub hoge($foo, $bar, $baz = 'default string') {
... } 5 / 12
未定義値の取り扱い 未定義値を返す可能性のある関数やメソッドには maybe_ 未定義値を持つ可能性のある変数にもmaybe_と いう接頭辞を必ずつけるようにしています MooseのMaybe型も活用 6 / 12
こんなのも作ってました https://github.com/ybrliiu/p5-Scalish 7 / 12
使用例 use Scalish qw( option ); subtest 'match' => sub
{ my $option = option 'something'; my $ret = $option->match( Some => sub { 200 }, None => sub { 404 }, ); is $ret, 200; my $none = option undef; my $ret2 = $none->match( Some => sub { 200 }, None => sub { 404 }, ); is $ret2, 404; }; 8 / 12
よく使うプラグマなどを一気に有 効にする package NewApp::Exporter { use strict; use warnings; use
utf8; use feature qw( :5.26 signatures ); sub import { $_->import for qw( strict warnings utf8 ); feature->import(qw[ :5.26 signatures ]); warnings->unimport('experimental::signatures'); } } 9 / 12
使用例 use Moose; use Mojo::Base; と同じようなことをしてい ます package NewApp::Service::DoSomething {
# enable strict, warnings, utf8, feature(':5.26'), and signatures # disenable warnings 'experimental::signatures'; use NewApp::Exporter; sub do_something($self) { ... } } 10 / 12
メリット たくさん記述したりスニペット登録の必要がな いので楽 DRY べんり!!! デメリット 初めて見る人にはぱっと見て何をしているか わからない 11 /
12
12 / 12