コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

『エンジニア勉強会(弁護士ドットコム×みんなのウェディング)ライフイベントメディアの成長を支える技術』に行ってきたよレポ

エンジニア勉強会(弁護士ドットコム×みんなのウェディング)ライフイベントメディアの成長を支える技術 に行ってきたのでざっくり感想レポです。

各発表の感想

※資料スライドは見つけたら貼ります。

「爆速開発のために独自フレームワークからRails に移行した話」

speakerdeck.com

高速で価値を届ける為にRoRを選択して、そこへ走った話。 やっぱRailsってレールがしかれてるからみんなで突っ走る分にはやりやすいっすよねーと思いながら見てました。

「CloudSignでのGo言語でのサービス開発」

新規サービスのCloudSign(クラウドサイン)をGo言語で開発したお話。

電子署名や堅牢さを求められるサービスということと 社内にGoを扱える人が居たからGoを採用という経緯や利点をお話されていました。

自分自体Goの事情に疎いのもあったので「同時にいっぱい横にならばせる処理に強い」 とかいう話は聞いたことがありましたが 「静的型付なので型チェックで堅牢」「WEB向けの機能が充実」「C/C++のファイルと簡単に連携できる」等 堅さやスクリプト言語じゃ実装が複雑そうな機能を扱うときは使い勝手良いのかも、と思いながら見てました。

「みんなのウェディングのデータ分析基盤の作り方。」

www.slideshare.net

データ分析機能をRedshitとかで構成されたお話。 技術のトップランナーではないので、ベストプラクティスを使い最速で走り抜けるほうに舵を切る というような旨の事をおっしゃっていて 確かによい知見を使ってサービスを成長させるほうが大事だよなーと思います。

やっぱり分析基盤が整っていると、データ駆動で動けるので羨ましいなーとないものねだりなところも感じつつ、こういう取り組みをしてみたいなと思わせる発表でした。

※今いる職場はなんとなくでGA使ってるぐらいの温度感なので基盤の必要性から解く必要がありそうでつらい

「Yahoo砲にも耐えるインフラ設計」

弁護士ドットコムさんはYahoo!に記事が載ることがあり、その時の知見に関してのお話。

初期の何にも対策してない状態から、現在の形になるまでの遷移をお話していて 「午後6時になるとアクセスがドカンと増えるので、Yahooのトップを見ながら構える」という 涙なしには語ることができなさそうな運用時代の話もされてました。

現在はVarnishアプリケーションサーバよりも手前に配置して 大量のリクエストをさばくことを実現しているらしいです。

「サービスを支える監視運用の工夫」

www.slideshare.net

VPSベンダーに任せっきりだったところから、ちゃんとした監視体制まで持っていった話。

Slackに通知を流してアプリケーション開発者含めてみんなに見てもらえる仕組みを取り入れたりするのは とてもいいなーと思いました。 サーバーのパフォーマンス監視だけではなく、SSL証明書の期限監視とかもするのはなるほどなーと思って聞いていました。

「スケールする会社を支える開発組織のマネジメント」

会社の規模によって表面化する問題や内容が違うというのはよく聴く話なんですが それを事例とフェーズを交えて凄いわかりやすく説明されていました。 また、起きた問題とそれに対して実際にどうアプローチされたかを説明されてました。

※スライド資料が出ると思ってそこまで細かくメモってなかったです。。

「解決しなくてもいい問題は解決しないということも選択する」 「事例を知っているなど、引き出しが多いと対策などの選択肢の幅が広がる」など 普段何気なくわかってはいるが、言語化して改めて聞いて色々と刻まれた感じでした。

「職種を超えたスキル育成でキャリアをつくる」

www.slideshare.net

様々なスキルセットを併せると色々といいよ、というお話。

お互いにSQLやらRailsの知識があるとチーム内で共通認識が取れている事柄が増えて コミュニケーションが活発になり、結果としてスピード感も上がる!っていうのは良い話だし お互い思いやりや助け合いが生まれやすくなりそうと感じました。

自分自身が赤魔道士スキルセットのキャラなので色々と思いを馳せる部分も多かったです。

全体を通しての感想

みんなのウェディングさんの会場のセッティングや進行もよくて なおかつ今回の発表が「Webアプリ」「バックエンド/インフラ」「組織」と バランスよくテーマが分かれてどのトピックも発見が多くあったので とても楽しませて頂きました。また同じような会があればぜひ拝聴したいなと思いました。

Google Analytics Measurement Protocol を使おう

Unityでモバイル向けアプリゲーム開発とかしていると ネイティブのプラグインの恩恵をなかなか受けづらくあります。 その一つである「Google Analytics」 動線の動向などを調べるのに結構使われたりします。

iOSAndroid向けにSDKはあるもののわざわざネイティブプラグイン挟むのめんどくさい… そんな人のためにあるのが「Google Analytics Measurement Protocol」です。

Google Analytics Measurement Protocol って?

Webページ向けのJS版、各スマホアプリ向けのSDK、と揃っているのですが 他の部分に関してもサポートするための機能、それがGoogle Analytics Measurement Protocolです。

これは普通にHTTP通信でトラッキング機能を提供するもので APIにPOSTやGETする要領でトラッキングをすることができます。

実際の実装方法

ここらへんはドキュメントにも書いてありますが下記のアドレスに各種パラメータをくっつけて送信するだけです。

http://www.google-analytics.com/collect

基本的にはPOSTが推奨されていますので、POSTパラメータで送るのがベストです。 ただGETでも送れるのでクエリーストリングでパラメータを付与して送ることも出来ます。

どういう情報を送るべきか? みたいな部分はまた別のエントリで書こうと思いますが 基本的なことはドキュメントに書いてあるのでこちらを参照のこと

これを使うと、わざわざAndroidiOSプラグインを使わなくても、遷移のトラッキングができるのでとても便利です。

また時間のあるときに具体的な利用例を出したいと思います。

カジュアルゲー「リア充爆発しろ」の無料ランキング1位のすごさ

突如彗星のように現れたカジュアルゲームアプリ「リア充爆発しろ」
リリースして間もなくいきなりネタにされ始めました

リツイート数が半端ない。 またしょこたんもツイートしたりしてました。

そしてLINEを抜いてAppStoreの無料ランキング1位に

AppStoreの無料ランキングはアプリのDL数を見て
その数値を3時間程度の周期ごとにランキングに反映されるとされています。
※明言できないのはApple側が正式に仕組みを明かしていないため
そのため、俗にブースト施策という形で、短い時間に大量にDLを促すような広告を打ちます。
相場はマチマチですが1回DLさせるのに20~100円とかかかったりします。
(参考:ブースト広告費も大きく回収、1,000万円稼いだ放置系アプリ「小学生あるある」の裏側。

このアプリもブースト使ってるのかな、とか思ったら、使っていない様子でした。

なのでおそらく純粋な口コミのみでDL数を稼いだということになります。すごい。
で、実際どれくらいDLされていたのかも明かしてくれました。

25万DL、これを実際にブーストで賄ったら1DLが50円計算だと考えて
費用換算してみると…

50 円 × 250,000 DL = 12,500,000 円 

1250万円というべらぼうな額に。
もちろんブーストでやると25万DLとかやろうと思っても出来ないので
口コミがなせる技というのもあります。口コミ凄い。そらみんなステマとかに金かけるわけだわという感じに。

アプリって世に出してもなかなか目に触れてもらえないのでブーストという手法に頼ったりするのですが、ちゃんとと思ってもらえる層にヒットすれば、DL数って自然と伸びるんだなという好例だった気がします。

なお、このアプリは表現の影響でリジェクトされてしまいました。推移が見たかったのに残念。

pixivエンジニア勉強会『pixivエンジニアが教えるプログラミング入門』出版記念特別編 行ってきたよレポ

pixivエンジニア勉強会『pixivエンジニアが教えるプログラミング入門』出版記念特別編 に行ってきました。

内容は発売された書籍に関してのいろいろな経緯等のお話でした。 詳しくは下記スライド

speakerdeck.com

もともとプログラミングを教えるアルバイトをしていたということで、しゃべりもスラスラ、実践している内容も自身で感じた改善ポイントからできているので、凄い聞いてて楽しいセッションでした。若いのにデキる子はホント畏怖の念すら覚えます。

研修資料としては「これから仕事を一緒にしていくための研修資料」という位置づけが前面に出ていたので実践的かつ、導入しやすさを追求されていたんだろうなぁというのが凄い感じ取れました。社員の知識水準を保つってなかなかできるものではないので、試みとしても考え方としても参考になりました。

あと、勉強会とは全然関係ないですが、Pixivさんの執務スペースの雰囲気を見れたのがすごいよかったです。技術屋さんのポテンシャルを引き出しやすいように色々工夫されてるなーって感じました。

仕事でサーバーサイドから離れて久しいのでサインをもらった本を片手にお勉強しようと思いました。

CodeIQ感謝祭行ってきたよレポ

CodeIQ感謝祭に行ってきました。

主にキャリアチェンジ、っていうところがメインテーマであったので いろいろな話が聞けてとてもよかったです。

なかでも響いた言葉を噛み砕いてピックアップ

  • 失敗から得られたものは多い
  • 「自分が好きなもの」と「自分が得意なもの」はイコールじゃないかもしれない 得意なことっていうのは「自分の労力の割に周りの人がすごいありがたがってくれたり、慶んでくれたりすること」
  • ツールや環境が改善すれば、プロダクトもよくなると思ってしまう人が多い、問題の根は別にあったりする。
  • 理不尽などの自分のキャパギリギリのことを乗り越えることで成長できる
  • 自分からいろいろなものに手を伸ばすべき

割と最後のはよく言う話ですけど、好きなモノと得意なモノは違うかもしれないってのは なるほどなぁと感心してしまいました。

もっと視野を広げていかなければなーと思う夜でした。

「UnityのためのC#勉強会」に行ってきましたレポ

UnityのためのC#勉強会に行ってきましたので、その感想レポートです。

スライドごとの概要とか感想

Unityでもう少しC#LINQ

発表スライドはこちら

http://www.slideshare.net/moririring/unityclinqwww.slideshare.net

わかりやすいLINQのお話。 「シンプルに見やすく書きたいならLINQ」というような趣旨の発表でした。

スライドとしてはLINQに関しての説明と LINQで簡単に書かれてるけど、もっと噛み砕いたコードで書くと 実体はどんな感じで動いているの? という解説でした。デモ含みでやっていたのでわかりやすかったです。

LINQで実装されていることはC#の機能の集大成」 とおっしゃられていましたが、ライブコーディングでやっていく過程を見る限り まったくもってその通りでした。

処理落ちしないように1フレでやる処理散らしの目的で IEnumerable等は何気なく使ってはいるが ちゃんと突っ込んだ挙動まではわかっていなかったので 勉強しないとなーと思いました。

UniRxとかReactivePropertyとか

Reactive extention のお話。

発表スライドはこちら

speakerdeck.com

従来のLINQの内容がLINQ to Objectの話でしたが LINQ to Eventsの話がReactive Extensitonという話。

まだ日本語の資料のスライドはあまりないらしいのですが わかりやすいものをピックアップされていました、とてもありがたい。

スライドの発表中にも前日に公開された資料のほうがすごいという話 確かにライブコーディング中に話されていたないようがこちらに凝縮されてました。

また、実際にこの機能はどういう振る舞いをするんだっけ という時には英語サイトですが図解もされているのでこちらを見たほうがいいという話もされていました。

イベントも非同期処理もRxで事足りるどころか 文法の基礎構成さえわかれば綺麗になるし 可読性アップで至りにつくせりだなというところ。 また、Rxという概念は今後盛り上がっていく+他の言語でも使えるので 損は少ない、というのも学習する上では魅力的な材料ではありました。

またUniRXに関しては皆様言われてますが オレオレライブラリではない、思想に基づいたライブラリかつ UnityOfficialじゃない!とかで拒否反応を示していた方は 使ってみたほうが良いのではないかと思いました。 おそらく、登壇者の方のRxへの熱量を鑑みるに 全然安心できるライブラリなんじゃないかなと思いました。

また、初めての業務プログラムがRuby on Railsである私としては MVCモデルが根付いているので、Presenterという概念があまりありませんでした。 その点も実りが大きかったです。

OrangeCube 自社フレームワーク

OrangeCubeさんのフレームワークの実装事例をもとに 「こういう問題にたいしてこういう解決をしていったよ」 というお話。

発表スライドはこちら

www.slideshare.net

今回の勉強会の中で最大のボリュームでしたが 最大の実りのあるお話でした。 スライドの話も(前の2つの話もあったので)割りとついていけて また、ライブコーディングも実際の現場のやり方を垣間見れたので とても勉強になりました。

個人的にとても感銘をうけたのは ゲームロジックが主体でビューを表示し、チャネル管理するというところ (スライドでいうとここらへん) この部分は自分自身にも着想がなく これを取り入れるといろんなことができるなーと 視界が広がった感じがしました。

スライドで紹介されたすべての事例が 今までの自分の着想とは全然ちがうベクトルかつ 一つの方向性として確立されているやる方だったので 何度もいってくどいぐらい勉強になりました。

全体を通しての感想

VisualStudioの凄さ

よく、UnityVSいいよ!みたいな記事は目にしたのですが 会社で支給されるWindowsマシンが古い子なので 開発は基本的にMacでやっている私としては あまり関係ない話ぐらいに思ってたんですが 今日の発表を見る限り、機能が強力すぎて 開発工数を減らすだけのポテンシャルを持ってるなと感じました。 今後C#案件やるときはお願いしてみようかなと思いました。。 あと実はUnityってASP.NET畑の人のほうが凄いもの作れるんじゃ?とか思っちゃいました。

自身のC#の引き出しの狭さ

最近、Swiftの言語仕様を調べてて 「関数型引数」やら「メソッド拡張」やらそういう機能があるとは知っていたのですが C#にもあるんじゃん!とか改めて驚きましたし それをどういう風に使うべきかが今日の勉強会でわかって すごく、自身の過去のソースをリファクタしたくなりました。 独学でやると言語の使い方の視野や引き出しが狭くなりので 気をつけなくちゃいけないなーと思いました。

Rxの凄さ

今回の勉強会はRx勉強会の側面もあったのではないかというぐらい Rxの便利さ、そして仕様実例が学べたのもすごい大きかったです。 今度イベントを扱うような実装のときは AndroidでもRxちっくなことをしようかなーと突き動かされたぐらいでした。


めちゃくちゃためになりました、ホント。

あとサーバーサイドC#もありなのかなーとか思いました。 ロジックが一貫してC#で書けるっていうのも強みの一つなのかも、っていう観点から。 PHPC#の混在は負荷分散の観点からしても避けたいですしw

懇親会出れなくて残念だったので、ぜひまた次回また機会があれば今度は懇親会も参加したいです。

※もしおかしいところとかあればコメントいただけると幸いです。。