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
420
ぼくがPerlで開発を行う時に工夫していること
Gotanda.pm #17
ybrliiu
April 16, 2018
Tweet
Share
More Decks by ybrliiu
See All by ybrliiu
これまでと、これからのPerlコミュニティ
ybrliiu
0
93
AstroNvim を使おう!
ybrliiu
0
2.8k
Perlでも関数の型をチェックしたい
ybrliiu
0
2.1k
Perl5.32の新機能
ybrliiu
0
120
Vue.jsで作ったサイトをバニラJSで書き直す悲しいお話
ybrliiu
1
850
Perlにおける動的なモジュールロードのメリットとデメリット
ybrliiu
0
670
黒魔術で独自定義のenum型制約を満たす値のリ ストを取得する話
ybrliiu
0
300
Perlにおけるクラスの実装パターン.pdf
ybrliiu
0
1.3k
Presentation.pdf
ybrliiu
0
230
Other Decks in Programming
See All in Programming
[技育CAMPアカデミア]アイディアを形に!【超入門】スマホアプリ開発〜リリースまでの流れをご紹介
teamlab
PRO
0
350
Front-end application development, Symfony-style(s)
dunglas
2
1.9k
二郎系ラーメンのコールで学ぶ AST 解析
memory1994
PRO
7
1.7k
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
39
18k
デザインシステムで Tailwind CSSとCSS in JSに分散投資をしたら良かった話
fsubal
18
4.8k
エンターテイメント業界で利用されるAWS
demuyan
0
200
甘い香りに誘われてVanilla Extractを1年間運用してみた
miyahkun
1
110
educure_カリキュラム生操作マニュアル.pdf
linew_official
0
480
Changed Rules: Architectures with Lightweight Stores
manfredsteyer
PRO
0
230
From Spring Boot 2 to Spring Boot 3 with Java 22 and Jakarta EE
ivargrimstad
0
920
Git Rebase
bkuhlmann
11
1.6k
Rails と人魚の話/rails-and-mermaid
sanfrecce_osaka
0
100
Featured
See All Featured
Become a Pro
speakerdeck
PRO
10
4.5k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
186
16k
Designing Experiences People Love
moore
136
23k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.9k
What the flash - Photography Introduction
edds
64
11k
Infographics Made Easy
chrislema
237
18k
Designing for humans not robots
tammielis
247
25k
How to Ace a Technical Interview
jacobian
272
22k
Building Effective Engineering Teams - LeadDev
addyosmani
27
1.8k
What's in a price? How to price your products and services
michaelherold
237
11k
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
Facilitating Awesome Meetings
lara
41
5.6k
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