SlideShare a Scribd company logo
1 of 25
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
• 利用する場合は、local::libでパスを補完
イメージ図
use local::lib
use ReadLog;
├ monthly_aggregate.pl
└ ○ lib
├ ○ ReadLog
│ ├ ReadLog.pm
│ └ ○ ReadLog
│ ├ log_acc.pm
: :
利用するスクリプト以下に、
libディレクトリを作成して、利用する共通
libをその下にSubmoduleとして追加。
monthly_aggregate.pl
課題
ただ、これ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つコケると惨劇が始まる
問題
• 基本ログが残っていないので、何か起こ
ると追えない
• 1つコケるとスーパー属人化の出番
• ログがメールなので、過去の状態が当時
いた人しか分からない
質問
• バッチ処理ってどうやってますか?
Jenkins、Luigi、Airflow、Azkaban、
DigDagあたり?(もはやPerlの存在が薄いけど…)
Perlのコーディング環境
■お悩み3
Perlのコーディング環境
vim使って普段コーディングしていますが、
便利なプラグイン&これは入れとけってや
つ無いですか?
モダンにPerlで開発し続けるには
■お悩み4
モダンにPerlを書いていく為に
モダンにPerlを書ける人がメンバにいない。。
今後、学んでいくにはどこを参考にしたら
よいのか?
解決策?
• CAPNにあるコードを参考にする?
• その場合、何が良い?調べ方は?
• オススメの本は?この辺?
第2版って出ないのかなぁ…
さいごに
こんな俺得イベント回にして頂いた
@magnolia_k_ さん、
そして、アドバイス頂いた
全ての皆さん、
本当にありがとうございます。

More Related Content

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

チャットボットの自然言語処理
チャットボットの自然言語処理チャットボットの自然言語処理
チャットボットの自然言語処理Yoshitaka Seo
 
Bot Framework 最新情報 2018
Bot Framework 最新情報 2018Bot Framework 最新情報 2018
Bot Framework 最新情報 2018Yoshitaka Seo
 
Bot Builder V4 SDK + QnA Maker / LUIS
Bot Builder V4 SDK  + QnA Maker / LUISBot Builder V4 SDK  + QnA Maker / LUIS
Bot Builder V4 SDK + QnA Maker / LUISYoshitaka Seo
 
MicroPythonで作る人工生命っぽい何か
MicroPythonで作る人工生命っぽい何かMicroPythonで作る人工生命っぽい何か
MicroPythonで作る人工生命っぽい何かMakoto Koike
 
クラウド・コンピューティングの普及に伴うMSPの現状と課題
クラウド・コンピューティングの普及に伴うMSPの現状と課題クラウド・コンピューティングの普及に伴うMSPの現状と課題
クラウド・コンピューティングの普及に伴うMSPの現状と課題Masahito Zembutsu
 
kintoneハンズオン♪
kintoneハンズオン♪kintoneハンズオン♪
kintoneハンズオン♪Sakae Saito
 
HoloLens 2でSQLiteを使ってみよう
HoloLens 2でSQLiteを使ってみようHoloLens 2でSQLiteを使ってみよう
HoloLens 2でSQLiteを使ってみようShingo Mori
 
進撃の受託開発
進撃の受託開発進撃の受託開発
進撃の受託開発Koichi ITO
 
ハンズオンセッションを担当して得られた学び
ハンズオンセッションを担当して得られた学びハンズオンセッションを担当して得られた学び
ハンズオンセッションを担当して得られた学びkinuasa
 
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of VeinTokoroten Nakayama
 
JTF2016 The strategy and Sun Tzu
JTF2016 The strategy and Sun TzuJTF2016 The strategy and Sun Tzu
JTF2016 The strategy and Sun Tzuirix_jp
 
構造化データをツールで簡単に分析
構造化データをツールで簡単に分析構造化データをツールで簡単に分析
構造化データをツールで簡単に分析Yoshitaka Seo
 
kintone で AIによる画像解析の活用を試してみた
kintone で AIによる画像解析の活用を試してみたkintone で AIによる画像解析の活用を試してみた
kintone で AIによる画像解析の活用を試してみたCybozucommunity
 
データファースト開発
データファースト開発データファースト開発
データファースト開発Katsunori Kanda
 
Power BI の可能性?見(魅)せてやるよ!!!その本気ってやつをな
Power BI の可能性?見(魅)せてやるよ!!!その本気ってやつをなPower BI の可能性?見(魅)せてやるよ!!!その本気ってやつをな
Power BI の可能性?見(魅)せてやるよ!!!その本気ってやつをなYugo Shimizu
 
モバイルアプリの状態遷移を攻略したい!
モバイルアプリの状態遷移を攻略したい!モバイルアプリの状態遷移を攻略したい!
モバイルアプリの状態遷移を攻略したい!Tatsuji Kuroyanagi
 
Teams + Power Platform でチームメンバーの状況報告を圧倒的効率化!
Teams + Power Platform でチームメンバーの状況報告を圧倒的効率化!Teams + Power Platform でチームメンバーの状況報告を圧倒的効率化!
Teams + Power Platform でチームメンバーの状況報告を圧倒的効率化!Teruchika Yamada
 

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

チャットボットの自然言語処理
チャットボットの自然言語処理チャットボットの自然言語処理
チャットボットの自然言語処理
 
Bot Framework 最新情報 2018
Bot Framework 最新情報 2018Bot Framework 最新情報 2018
Bot Framework 最新情報 2018
 
QnA Maker 逆入門
QnA Maker 逆入門QnA Maker 逆入門
QnA Maker 逆入門
 
Bot Builder V4 SDK + QnA Maker / LUIS
Bot Builder V4 SDK  + QnA Maker / LUISBot Builder V4 SDK  + QnA Maker / LUIS
Bot Builder V4 SDK + QnA Maker / LUIS
 
MicroPythonで作る人工生命っぽい何か
MicroPythonで作る人工生命っぽい何かMicroPythonで作る人工生命っぽい何か
MicroPythonで作る人工生命っぽい何か
 
クラウド・コンピューティングの普及に伴うMSPの現状と課題
クラウド・コンピューティングの普及に伴うMSPの現状と課題クラウド・コンピューティングの普及に伴うMSPの現状と課題
クラウド・コンピューティングの普及に伴うMSPの現状と課題
 
kintoneハンズオン♪
kintoneハンズオン♪kintoneハンズオン♪
kintoneハンズオン♪
 
HoloLens 2でSQLiteを使ってみよう
HoloLens 2でSQLiteを使ってみようHoloLens 2でSQLiteを使ってみよう
HoloLens 2でSQLiteを使ってみよう
 
進撃の受託開発
進撃の受託開発進撃の受託開発
進撃の受託開発
 
ハンズオンセッションを担当して得られた学び
ハンズオンセッションを担当して得られた学びハンズオンセッションを担当して得られた学び
ハンズオンセッションを担当して得られた学び
 
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
 
JTF2016 The strategy and Sun Tzu
JTF2016 The strategy and Sun TzuJTF2016 The strategy and Sun Tzu
JTF2016 The strategy and Sun Tzu
 
構造化データをツールで簡単に分析
構造化データをツールで簡単に分析構造化データをツールで簡単に分析
構造化データをツールで簡単に分析
 
Yapc::Asia 2013
Yapc::Asia 2013Yapc::Asia 2013
Yapc::Asia 2013
 
Agile Testing Night #4 LT
Agile Testing Night #4 LTAgile Testing Night #4 LT
Agile Testing Night #4 LT
 
kintone で AIによる画像解析の活用を試してみた
kintone で AIによる画像解析の活用を試してみたkintone で AIによる画像解析の活用を試してみた
kintone で AIによる画像解析の活用を試してみた
 
データファースト開発
データファースト開発データファースト開発
データファースト開発
 
Power BI の可能性?見(魅)せてやるよ!!!その本気ってやつをな
Power BI の可能性?見(魅)せてやるよ!!!その本気ってやつをなPower BI の可能性?見(魅)せてやるよ!!!その本気ってやつをな
Power BI の可能性?見(魅)せてやるよ!!!その本気ってやつをな
 
モバイルアプリの状態遷移を攻略したい!
モバイルアプリの状態遷移を攻略したい!モバイルアプリの状態遷移を攻略したい!
モバイルアプリの状態遷移を攻略したい!
 
Teams + Power Platform でチームメンバーの状況報告を圧倒的効率化!
Teams + Power Platform でチームメンバーの状況報告を圧倒的効率化!Teams + Power Platform でチームメンバーの状況報告を圧倒的効率化!
Teams + Power Platform でチームメンバーの状況報告を圧倒的効率化!
 

More from YASUKAZU NAGATOMI

コンテナ化から始めてKubernetesクラスタ管理にRancherを使うまで〜前編〜
コンテナ化から始めてKubernetesクラスタ管理にRancherを使うまで〜前編〜コンテナ化から始めてKubernetesクラスタ管理にRancherを使うまで〜前編〜
コンテナ化から始めてKubernetesクラスタ管理にRancherを使うまで〜前編〜YASUKAZU NAGATOMI
 
Cloud Native をやっていくにはどう学んでいくかをみんなで考えてみる
Cloud Native をやっていくにはどう学んでいくかをみんなで考えてみるCloud Native をやっていくにはどう学んでいくかをみんなで考えてみる
Cloud Native をやっていくにはどう学んでいくかをみんなで考えてみるYASUKAZU NAGATOMI
 
コンテナイメージの脆弱性スキャンについて
コンテナイメージの脆弱性スキャンについてコンテナイメージの脆弱性スキャンについて
コンテナイメージの脆弱性スキャンについてYASUKAZU NAGATOMI
 
オンプレ Rancher Server × ML基盤 をはじめます
オンプレ Rancher Server × ML基盤 をはじめますオンプレ Rancher Server × ML基盤 をはじめます
オンプレ Rancher Server × ML基盤 をはじめますYASUKAZU NAGATOMI
 
Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.
Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.
Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.YASUKAZU NAGATOMI
 
オンプレでPrivate Registry使ったDockerイメージの運用について
オンプレでPrivate Registry使ったDockerイメージの運用についてオンプレでPrivate Registry使ったDockerイメージの運用について
オンプレでPrivate Registry使ったDockerイメージの運用についてYASUKAZU NAGATOMI
 
ざっくり始めるCloud Native開発
ざっくり始めるCloud Native開発ざっくり始めるCloud Native開発
ざっくり始めるCloud Native開発YASUKAZU NAGATOMI
 
Webアプリ開発向け ゆるふわDocker使いが Cloud Naive開発に必要なetc.
Webアプリ開発向け ゆるふわDocker使いが Cloud Naive開発に必要なetc.Webアプリ開発向け ゆるふわDocker使いが Cloud Naive開発に必要なetc.
Webアプリ開発向け ゆるふわDocker使いが Cloud Naive開発に必要なetc.YASUKAZU NAGATOMI
 
データ分析基盤として Rancher・k8s で始まるのか調査してみた
データ分析基盤として Rancher・k8s で始まるのか調査してみたデータ分析基盤として Rancher・k8s で始まるのか調査してみた
データ分析基盤として Rancher・k8s で始まるのか調査してみたYASUKAZU NAGATOMI
 
続Rancherで始めるRedmine生活~Redmineのプライベートカタログを作ってみた~
続Rancherで始めるRedmine生活~Redmineのプライベートカタログを作ってみた~続Rancherで始めるRedmine生活~Redmineのプライベートカタログを作ってみた~
続Rancherで始めるRedmine生活~Redmineのプライベートカタログを作ってみた~YASUKAZU NAGATOMI
 
Rancherで始めるRedmine生活 ~ Redmineのプライベートカタログを作ってみた~
Rancherで始めるRedmine生活 ~ Redmineのプライベートカタログを作ってみた~Rancherで始めるRedmine生活 ~ Redmineのプライベートカタログを作ってみた~
Rancherで始めるRedmine生活 ~ Redmineのプライベートカタログを作ってみた~YASUKAZU NAGATOMI
 
redashのプラベートカタログ作成してつまづいたアレやコレや
redashのプラベートカタログ作成してつまづいたアレやコレやredashのプラベートカタログ作成してつまづいたアレやコレや
redashのプラベートカタログ作成してつまづいたアレやコレやYASUKAZU NAGATOMI
 
プロジェクトマネジメントと開発を両立したい!
プロジェクトマネジメントと開発を両立したい!プロジェクトマネジメントと開発を両立したい!
プロジェクトマネジメントと開発を両立したい!YASUKAZU NAGATOMI
 
PM Beginners #3:メンバの考えていること、共有できてます?
PM Beginners #3:メンバの考えていること、共有できてます?PM Beginners #3:メンバの考えていること、共有できてます?
PM Beginners #3:メンバの考えていること、共有できてます?YASUKAZU NAGATOMI
 
技術的負債だらけのチームで技術マネージメントしてみた Kichijoji.pm7[talk2]
技術的負債だらけのチームで技術マネージメントしてみた Kichijoji.pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた Kichijoji.pm7[talk2]
技術的負債だらけのチームで技術マネージメントしてみた Kichijoji.pm7[talk2]YASUKAZU NAGATOMI
 

More from YASUKAZU NAGATOMI (16)

コンテナ化から始めてKubernetesクラスタ管理にRancherを使うまで〜前編〜
コンテナ化から始めてKubernetesクラスタ管理にRancherを使うまで〜前編〜コンテナ化から始めてKubernetesクラスタ管理にRancherを使うまで〜前編〜
コンテナ化から始めてKubernetesクラスタ管理にRancherを使うまで〜前編〜
 
RancherとGitOps的な話
RancherとGitOps的な話RancherとGitOps的な話
RancherとGitOps的な話
 
Cloud Native をやっていくにはどう学んでいくかをみんなで考えてみる
Cloud Native をやっていくにはどう学んでいくかをみんなで考えてみるCloud Native をやっていくにはどう学んでいくかをみんなで考えてみる
Cloud Native をやっていくにはどう学んでいくかをみんなで考えてみる
 
コンテナイメージの脆弱性スキャンについて
コンテナイメージの脆弱性スキャンについてコンテナイメージの脆弱性スキャンについて
コンテナイメージの脆弱性スキャンについて
 
オンプレ Rancher Server × ML基盤 をはじめます
オンプレ Rancher Server × ML基盤 をはじめますオンプレ Rancher Server × ML基盤 をはじめます
オンプレ Rancher Server × ML基盤 をはじめます
 
Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.
Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.
Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.
 
オンプレでPrivate Registry使ったDockerイメージの運用について
オンプレでPrivate Registry使ったDockerイメージの運用についてオンプレでPrivate Registry使ったDockerイメージの運用について
オンプレでPrivate Registry使ったDockerイメージの運用について
 
ざっくり始めるCloud Native開発
ざっくり始めるCloud Native開発ざっくり始めるCloud Native開発
ざっくり始めるCloud Native開発
 
Webアプリ開発向け ゆるふわDocker使いが Cloud Naive開発に必要なetc.
Webアプリ開発向け ゆるふわDocker使いが Cloud Naive開発に必要なetc.Webアプリ開発向け ゆるふわDocker使いが Cloud Naive開発に必要なetc.
Webアプリ開発向け ゆるふわDocker使いが Cloud Naive開発に必要なetc.
 
データ分析基盤として Rancher・k8s で始まるのか調査してみた
データ分析基盤として Rancher・k8s で始まるのか調査してみたデータ分析基盤として Rancher・k8s で始まるのか調査してみた
データ分析基盤として Rancher・k8s で始まるのか調査してみた
 
続Rancherで始めるRedmine生活~Redmineのプライベートカタログを作ってみた~
続Rancherで始めるRedmine生活~Redmineのプライベートカタログを作ってみた~続Rancherで始めるRedmine生活~Redmineのプライベートカタログを作ってみた~
続Rancherで始めるRedmine生活~Redmineのプライベートカタログを作ってみた~
 
Rancherで始めるRedmine生活 ~ Redmineのプライベートカタログを作ってみた~
Rancherで始めるRedmine生活 ~ Redmineのプライベートカタログを作ってみた~Rancherで始めるRedmine生活 ~ Redmineのプライベートカタログを作ってみた~
Rancherで始めるRedmine生活 ~ Redmineのプライベートカタログを作ってみた~
 
redashのプラベートカタログ作成してつまづいたアレやコレや
redashのプラベートカタログ作成してつまづいたアレやコレやredashのプラベートカタログ作成してつまづいたアレやコレや
redashのプラベートカタログ作成してつまづいたアレやコレや
 
プロジェクトマネジメントと開発を両立したい!
プロジェクトマネジメントと開発を両立したい!プロジェクトマネジメントと開発を両立したい!
プロジェクトマネジメントと開発を両立したい!
 
PM Beginners #3:メンバの考えていること、共有できてます?
PM Beginners #3:メンバの考えていること、共有できてます?PM Beginners #3:メンバの考えていること、共有できてます?
PM Beginners #3:メンバの考えていること、共有できてます?
 
技術的負債だらけのチームで技術マネージメントしてみた Kichijoji.pm7[talk2]
技術的負債だらけのチームで技術マネージメントしてみた Kichijoji.pm7[talk2]技術的負債だらけのチームで技術マネージメントしてみた Kichijoji.pm7[talk2]
技術的負債だらけのチームで技術マネージメントしてみた Kichijoji.pm7[talk2]
 

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