Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
2016/6/22 Kichijojipm-mini #010
@yassan168(やっさん)
うちの残念な開発環境を
正常な状態にするには?
(もうやめて!やっさんのライフは0よ!)
Who Are You?
• @yassan168(やっさん)
• お家は京都。絶賛単身赴任中(2年目)
• プリクラなどやってる会社に勤務
– ~2015/03:プリ機のソフト開発(VC++)
– 2015/04~:プリ機などのデータ分析
今日話すこと
4/22に吉祥寺.pm7で話した
「技術的負債だらけのチームで技術マネージメントしてみた」
の技術に関するお悩み相談。
やっていること
全国から集められる
筐体からのログデータ
画像取得サイトからのログ
下図のログ(オールCSV!)を使って
プリ機の利用状況を可視化したり、
商品性の分析を行っています
チーム共用モジュールの開発と
それを利用した開発について
■お悩み1
チーム内の共通libの管理の現状
共通lib(特定のログの取得/集計処理など、会社独自の
CPANに上げられないような処理群)
を特定のパス(/path/to/lib/Hoge/hoge.pl ) に
配置して、
全メンバがこれをrequire...
なので、ライブラリの変更ミスが
全員の死亡フラグに繋がる!
死なばもろとも! は辛い…
現状の解決案?
まずは、useして使えるように
libの構成を変更。
• lib/Hoge/hoge.pl を 下記のように変更
lib/Hoge/hoge.pm
lib/Hoge/Hoge/fuga.pm、piyo.pm
• 利用する場合は、...
イメージ図
use local::lib
use ReadLog;
├ monthly_aggregate.pl
└ ○ lib
├ ○ ReadLog
│ ├ ReadLog.pm
│ └ ○ ReadLog
│ ├ log_acc.pm
:...
課題
ただ、これ1個だけならまだしも、
複数個あるとめんどくさい。
また、まだまともにGitを使えないメンバに、
Submoduleを使ってもらうには敷居が高い。
質問
• 共通libはどうやって開発するもの?
Carton&Minillaとか使ってますか?
• チーム内共通libの管理はどうしてます?
OrePAN?
• 共通libを利用したスクリプトはどうやっ
て書いてます?
Webアプリ開発問題
■お悩み3
Webアプリは何使って開発してます?
現状、 テンプレートすら使っていない
温かみのあるCGIにて、
• 集計データの可視化
• チーム内のTool
を作成しています。
課題
年を追うごとに要求度が上がってしまい、
現状では機能アップが辛い。。。
• WAFを使うとして何を使う?
→素のPlackから自前WAF作れるほど
メンバの技術力もガッツも無い
• Plackサーバはどれを選べば…?
• デプロイってどう...
質問
• Amon2でいいのかな。。
• MVCなお手本って無いだろうか。
Amon2にあった tokuhirom/Sakaki とか?
• Plackサーバは、Starman、Starlet辺り?
また、デーモン化ってどうしている?
• デプ...
バッチ処理
■お悩み3
定期処理の現状
• cronで、daily_hoge.pl を実行
ログをメールで飛ばすので可能な限り短
く(中には捨てているものも。。)
• 処理順(hoge.pl→fuga.pl→piyo.pl)があるものや
違うサーバでの処理の待ち合わせ...
問題
• 基本ログが残っていないので、何か起こ
ると追えない
• 1つコケるとスーパー属人化の出番
• ログがメールなので、過去の状態が当時
いた人しか分からない
質問
• バッチ処理ってどうやってますか?
Jenkins、Luigi、Airflow、Azkaban、
DigDagあたり?(もはやPerlの存在が薄いけど…)
Perlのコーディング環境
■お悩み3
Perlのコーディング環境
vim使って普段コーディングしていますが、
便利なプラグイン&これは入れとけってや
つ無いですか?
モダンにPerlで開発し続けるには
■お悩み4
モダンにPerlを書いていく為に
モダンにPerlを書ける人がメンバにいない。。
今後、学んでいくにはどこを参考にしたら
よいのか?
解決策?
• CAPNにあるコードを参考にする?
• その場合、何が良い?調べ方は?
• オススメの本は?この辺?
第2版って出ないのかなぁ…
さいごに
こんな俺得イベント回にして頂いた
@magnolia_k_ さん、
そして、アドバイス頂いた
全ての皆さん、
本当にありがとうございます。
Upcoming SlideShare
Loading in …5
×

Kichijoji-mini #010:うちの残念な開発環境を正常な状態にするには?

326 views

Published on

Kichijojipm-mini #010 で話したスライド。
これをベースにあれこれ話を展開。

#kichijojipm
https://kichijojipm.connpass.com/event/33194/

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Kichijoji-mini #010:うちの残念な開発環境を正常な状態にするには?

  1. 1. 2016/6/22 Kichijojipm-mini #010 @yassan168(やっさん) うちの残念な開発環境を 正常な状態にするには? (もうやめて!やっさんのライフは0よ!)
  2. 2. Who Are You? • @yassan168(やっさん) • お家は京都。絶賛単身赴任中(2年目) • プリクラなどやってる会社に勤務 – ~2015/03:プリ機のソフト開発(VC++) – 2015/04~:プリ機などのデータ分析
  3. 3. 今日話すこと 4/22に吉祥寺.pm7で話した 「技術的負債だらけのチームで技術マネージメントしてみた」 の技術に関するお悩み相談。
  4. 4. やっていること 全国から集められる 筐体からのログデータ 画像取得サイトからのログ 下図のログ(オールCSV!)を使って プリ機の利用状況を可視化したり、 商品性の分析を行っています
  5. 5. チーム共用モジュールの開発と それを利用した開発について ■お悩み1
  6. 6. チーム内の共通libの管理の現状 共通lib(特定のログの取得/集計処理など、会社独自の CPANに上げられないような処理群) を特定のパス(/path/to/lib/Hoge/hoge.pl ) に 配置して、 全メンバがこれをrequireして使う。
  7. 7. なので、ライブラリの変更ミスが 全員の死亡フラグに繋がる! 死なばもろとも! は辛い…
  8. 8. 現状の解決案? まずは、useして使えるように libの構成を変更。 • lib/Hoge/hoge.pl を 下記のように変更 lib/Hoge/hoge.pm lib/Hoge/Hoge/fuga.pm、piyo.pm • 利用する場合は、local::libでパスを補完
  9. 9. イメージ図 use local::lib use ReadLog; ├ monthly_aggregate.pl └ ○ lib ├ ○ ReadLog │ ├ ReadLog.pm │ └ ○ ReadLog │ ├ log_acc.pm : : 利用するスクリプト以下に、 libディレクトリを作成して、利用する共通 libをその下にSubmoduleとして追加。 monthly_aggregate.pl
  10. 10. 課題 ただ、これ1個だけならまだしも、 複数個あるとめんどくさい。 また、まだまともにGitを使えないメンバに、 Submoduleを使ってもらうには敷居が高い。
  11. 11. 質問 • 共通libはどうやって開発するもの? Carton&Minillaとか使ってますか? • チーム内共通libの管理はどうしてます? OrePAN? • 共通libを利用したスクリプトはどうやっ て書いてます?
  12. 12. Webアプリ開発問題 ■お悩み3
  13. 13. Webアプリは何使って開発してます? 現状、 テンプレートすら使っていない 温かみのあるCGIにて、 • 集計データの可視化 • チーム内のTool を作成しています。
  14. 14. 課題 年を追うごとに要求度が上がってしまい、 現状では機能アップが辛い。。。 • WAFを使うとして何を使う? →素のPlackから自前WAF作れるほど メンバの技術力もガッツも無い • Plackサーバはどれを選べば…? • デプロイってどうやるのか?
  15. 15. 質問 • Amon2でいいのかな。。 • MVCなお手本って無いだろうか。 Amon2にあった tokuhirom/Sakaki とか? • Plackサーバは、Starman、Starlet辺り? また、デーモン化ってどうしている? • デプロイってみんなどうやってる?
  16. 16. バッチ処理 ■お悩み3
  17. 17. 定期処理の現状 • cronで、daily_hoge.pl を実行 ログをメールで飛ばすので可能な限り短 く(中には捨てているものも。。) • 処理順(hoge.pl→fuga.pl→piyo.pl)があるものや 違うサーバでの処理の待ち合わせもあり、 1つコケると惨劇が始まる
  18. 18. 問題 • 基本ログが残っていないので、何か起こ ると追えない • 1つコケるとスーパー属人化の出番 • ログがメールなので、過去の状態が当時 いた人しか分からない
  19. 19. 質問 • バッチ処理ってどうやってますか? Jenkins、Luigi、Airflow、Azkaban、 DigDagあたり?(もはやPerlの存在が薄いけど…)
  20. 20. Perlのコーディング環境 ■お悩み3
  21. 21. Perlのコーディング環境 vim使って普段コーディングしていますが、 便利なプラグイン&これは入れとけってや つ無いですか?
  22. 22. モダンにPerlで開発し続けるには ■お悩み4
  23. 23. モダンにPerlを書いていく為に モダンにPerlを書ける人がメンバにいない。。 今後、学んでいくにはどこを参考にしたら よいのか?
  24. 24. 解決策? • CAPNにあるコードを参考にする? • その場合、何が良い?調べ方は? • オススメの本は?この辺? 第2版って出ないのかなぁ…
  25. 25. さいごに こんな俺得イベント回にして頂いた @magnolia_k_ さん、 そして、アドバイス頂いた 全ての皆さん、 本当にありがとうございます。

×