多くのCPAN Authorに育てられ、息をするようにCPANモジュールを書けるようになり、そして分かったこと
TIME rest time current/total
TopicsPlaceHolder

多くのCPAN Authorに育てられ、息をするようにCPANモジュールを書けるようになり、そして分かったこと

YAPC::Tokyo 2019

Jan 26th, 2019

Profile

songmu

Mackerel

Mackerel

【宣伝】書籍発売中

【宣伝】みんなのGo言語

【宣伝】入門 監視

【宣伝】エンジニア積極採用中です!

本編

私の話

今日話すこと

Disclaimer

私とPerl(現在)

CPANモジュールの数

MetaCPANだと68 dist

代表的なCPAN Module

私とPerl

2007年 Perlを本格的に学びだす

2008年 最初(?)の転職活動

2009年 SIer一年目

2010年 また転職活動とか

2011年 カヤック入社

2012年 YAPC初登壇

2013年 Riji書いた

2014年 はてな入社

2015年 Mackerelディレクター

2016年 「みんなのGo言語」

2017年 「Mackerel サーバ監視[実践]入門」

2018年 Mackerelプロダクトマネージャー

発信すること

発信を続けることの大事さ

アウトプット恥ずかしい話2連発

「コマンドプロンプトのdirが使えないからlsを作ったよ!」

2009年アドベントカレンダー初参加

思い出深いモジュールたち

Math::CheckDigit

Git::Repository

Archer

Redmine::Chan

Redis::hiredis

Minilla

このへんでの学び

いくつかの代表作

L

Lで学んだこと

App::RunCron

App::RunCronその後

DBIx::Schema::DSL

    create_table book => columns {
        integer 'id',   primary_key, auto_increment;
        varchar 'name', null;
        integer 'author_id', not_null;
        decimal 'price', 'size' => [4,2];
        add_index  'author_id_idx' => ['author_id'];
        belongs_to 'author';
    };

Const::Common

定数定義するやつ。参考: Const::Common探訪

package MyApp::Const;
use Const::Common (
    MYAPP_BAR => 'BAZ',
    MYAPP_HASH => {
        HOGE => 'hoge',
    },
);
1;

Plack::Middleware::Woothee

Riji

Daiku

skajiさんとの出会い

なんでCPANにモジュールを上げるのか

最初は単に上げたかったから

仕事をする上で普通に上げるようになった

上げられるものは上げてしまうように

プロジェクトコードを簡潔にするため

気づいたメリット

他のソフトウェアエンジニアとのつながり

CPANモジュールを使う理由

モジュールの採用基準とオープンソース戦略

CPANにモジュールを上げる理由

テスト駆動とオープンソース駆動

カルマモデル

https://twitter.com/kazuho/status/489338252147445762

CPAN Authorになる方法

CPANモジュールの種類を考える

自分の得意な領域はどこか? すごいことをやろうと考えなければできることは結構ある。

他の言語からの輸出入

Webサービスの非公式クライアント

メンテナンスを引き継ぐ

車輪の再発明を恐れない

良くない車輪の再発明

disられないためには

CPAN Authorは神様か?

OSSへの貢献について

OSSへの貢献とは?

別に堅苦しくないし敷居も高くない。いくつかの段階がある。

「OSSが世界を良くする」とは?

OSS界隈での協調とカルマ

OSSフリーライダー問題

現在

Mackerelプロダクトマネージャー

MackerelのOSSプロダクト

いろいろある。(主にGoとRubyですが)

MackerelのOSSプロダクト

以上

ご質問あれば