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
860
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
HUIT新歓2024「競技プログラミング、やってみませんか?」
slephy2784
1
250
Ruby GitHub Packages
bkuhlmann
0
620
デザインシステムで Tailwind CSSとCSS in JSに分散投資をしたら良かった話
fsubal
18
4.9k
TYPO3 v13 – The road to LTS: What's new and new APIs
luisasofie_xoxo
0
180
Folding Cheat Sheet #3
philipschwarz
PRO
0
120
サイコロで理解する統計的仮説検定の考え方
tatamiya
1
220
Ruby Pattern Matching
bkuhlmann
0
920
PostmanでAPIの動作確認が楽になった話
h455h1
0
140
はてなにおける CSS Modules、及び CSS Modules に足りないもの / CSS Modules in Hatena, and CSS Modules missing parts
mizdra
5
710
GraphQLサーバの構成要素を整理する #ハッカー鮨 #tsukijigraphql / graphql server technology selection
izumin5210
4
530
VSCodeでのDatabricks開発もお勧めしたい/I would also recommend Databricks development with VSCode.
kazumain
0
240
What We Can Learn From OSS
inouehi
0
410
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.9k
Designing with Data
zakiwarfel
95
4.8k
KATA
mclloyd
14
12k
Adopting Sorbet at Scale
ufuk
67
8.6k
StorybookのUI Testing Handbookを読んだ
zakiyama
11
4.6k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
GraphQLの誤解/rethinking-graphql
sonatard
50
9.2k
4 Signs Your Business is Dying
shpigford
175
21k
WebSockets: Embracing the real-time Web
robhawkes
59
7k
The Cost Of JavaScript in 2023
addyosmani
14
3.8k
A designer walks into a library…
pauljervisheath
199
23k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
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