お久しぶりです、okabe-mです。
KLabでは毎月ALMという社内勉強会を開催しています。
 
ALMとは
ALMとはAll Layer Meetingの略で、職種・役職・発表内容を問わない勉強会・発表会です。
内容的に高度なものである必要はありませんが、発表者自身が工夫した箇所があることを求められます。
また、発表者にはプレゼン練習、聴衆には質問する能力を養う機会を提供する目的もあります。
開催は東京六本木の本社で行われますが、TV会議システム、インターネットを通じて国内外の拠点に配信を行っています。
 
3月度は株式会社グラニ様との合同で勉強会を開催しました。
 
弊社と株式会社グラニ様でそれぞれ発表を2人ずつ発表して頂きました。
さっそく、レポートに移りましょう。
 
Github:eで仕様書を書こう(KLab株式会社 加藤沢男)

DSC03340

・ゲームにおける仕様とは絶対に変更されるものである
・仕様書の最適なフォーマットを探しており、GoogleDocsが最強だと思ってたけど、問題あり
    ・grep不可能
    ・履歴が1セル単位で保存されるので、実質変更履歴を追いかけるのは不可能
    ・共有方法が人間に依存する
・それだったらGithub:eのmarkdownで作ろう
    ・リテラシー問題
    ・どうやって書くのか
    ・ブランチをいじって意味不明なことになったら?
    ・デザイナーさん見れなくね?
・上記問題は、洗脳により解決。(パワなんとかとも呼べる
    ・こうすることで皆が幸せになれるという価値観の植え付けにより成功
    ・デザイナーさんが見れないのはmarkdownの内容をhtmlで吐き出すようなものを作成した
・運用方法
    ・企画者がbranchを切って、仕様作成
    ・pull requestを出して実装者やリーダーがレビューしてmasterにマージする
・企画者が Pull Request を出して、開発者が内容を理解したらマージ。
・今後もエンジニア側の詳細設計のようなものも仕様書で管理したい
・そのままの勢いで企画者がコードを書こう
 
質疑応答
Q.表とか絵とか難しいのはどうしてるのか
A.表もmarkdownでかけるので、markdownで。絵はDocsに貼ってリンクにしてる
 
Q.現場からの反発はなかったのか?
A.そんなになかった。新しい人が多かったので、こういうものだよという洗脳により解決
 
仕様書が変わるのは仕方ないことですが、実装者も変更した仕様の内容をpull requestで確認し納得した上で開発するという
コミュニケーションは素晴らしく、最終的には企画もコードを書いてくれるというオチまでついてくる発表でした。
 
これで全員がコードを書くことができるようになり、更に開発者も増えて最高ですね!
 
WindowsPhone友の会近況報告(KLab株式会社 山田雅人、砂戸歩美 、岡田祥一)

DSC03347

・勤怠くんという社内独自フォーマットのアプリがiPhoneとAndroidにあるので、それをWindowsPhone版で作って出してみた
    勤怠くん - 予期せぬ遅刻・病欠!勤怠連絡の定型文メールを職場に素早くメール送信
    iOS版がこちら:勤怠くん
    WindowsPhone版はこちら:勤怠くん
・無事リリース!!世界中で39ダウンロード獲得!!!
・サイドローディングについて
    ・アプリを公式のストア以外からインストールすること
・証明書を使ってアプリに署名、署名済みのアプリを実機インストールが基本
    ・端末のロック解除
    ・一般のストア用証明書を使う
    ・エンタープライズ証明書を使う
・他の会社と比べると
    ・Android
        ・制限なし、好き放題
    ・iOS
        ・署名されたアプリ以外不可
        ・有料ユーザーのみ実機インストール可能
    ・WindowsPhone
        ・署名されたアプリ以外不可
        ・無料ユーザーは1台だけ実機インストール可能
    ・Windows版はiOSとAndroidの間ぐらい
・EmLauncherは対応できるのか?
    ・現時点では無理
     ・EmLauncherについての説明はこちら
 
・MacでWindowsPhoneの開発環境のお話
・VirtualBox
 ・端末だめ
・VmwareFusion
    ・OKだったけど、お金の関係で断念
・結局、Windowsデスクトップもらって、Macからリモートで接続して解決
・まとめリモートデスクトップで、Windows8を使おう
 
・Windowsストアの話
・開発者登録に必要なもの
    ・Microsoftのアカウント
    ・クレジットカード
    ・1847円
    ・これさえあれば解決!!
・二度落ちた
・アプリの審査に落ちた場合は、DeveloperCenterに落ちた理由が書いてある
    ・テーマカラーを変えたら見えない
    ・特定の操作でアプリが落ちる
    ・審査に落ちた部分が事細かにコメントを書いてくれる

質疑応答   
Q.2回目の申請落ちてからOKくるまではどれぐらいですか?
A.3日ぐらいですね
 
Q.いつWindowsPhone版の真戦国バスターは出るんでしょうか?
A.多分ムリです
 
Q.サポートは全部英語ですか?
A.中途半端です。
    リジェクトしましたメールとかは日本語。
    だが、レポートとかは英語。
 
まだ国内ではあまり普及していませんが、環境が整いつつあるので、
何かがきっかけに一気に盛り上がりそうですね。
今後に期待したいところです!
 
さて、ここからは株式会社グラニさんの発表になります。
C#でやってることで有名なので、発表内容も主にC#の話がメインになります。
 
vimとLAMP環境でフロントエンド開発(株式会社 グラニ @mayuki さん)

・vimとは、Visual studio In Microsoft windowsの略
・LAMPとは、LINQ+ASP.NET+MySQL+PowerShellの略
・本題は、FrontEndとC#のお話
・アプリケーションについて
    ・Windows Server 2012 + ASP.NET MVC5.1
    ・C# 5.0
    ・LESS
    ・TypeScript
・フロントエンド開発
    ・Razorテンプレート
        ・C#のコードがかけるテンプレート
        ・Sass
        ・Javascriptは書かずに、TypeScriptで書く
・開発環境
    ・液晶が4枚ぐらい
    ・VisualStdio2013
    ・Sassy Studio
    ・Prepros
    ・InternetExplorer 11
・Non - 黒い画面!
    ・みんなGUI大好き
    ・導入の容易さ
・C#を使ったサーバーでのフロント開発について
    ・ガラケー対応
        ・ユーザーがそれなりにいるので捨てにくい
        ・マークアップやスタイルは超レガシー
    ・なので、自作でライブラリを作った
        ・CSSを読み込み、style属性に展開する処理などを挟んでいる
        ・ガラケー向けのマークアップもclassを付けて、スタイルはSass(+CSS Selector Level 3)である程度モダンに書けるようにした
        ・速さ is 正義
・まとめ
    ・サーバー側にも手を入れられると夢が広がる
    ・モダンなガラケー対応をしよう
    ・C#なら速度を出しやすい    

質疑応答
Q.C#だと、サーバーはWindowsになっちゃう?
A.まぁそうなっちゃいます
 
Q.運用ですぐにこういうシェルで作って自動化したいとかってあるけど、Windowsだとその辺はどうでしょう?
A.Windows PowerShellというのがあるので大丈夫!PowerShellマニアがいるので、大丈夫!
 
vimってなんの略か調べたこともなかったけど、Visual studio In Microsoft windowsの略だったんですね(えっ
ついにフロントエンドの開発もC#を書く時代になったようです。
確かにgruntなどCUIで動かすツールにこだわりだすとしんどいところがあるので、GUIに全部任せると導入が楽そうですね。
個人的には、液晶4枚がすごく羨ましいです。。。


C#による総合的なゲーム開発(株式会社 グラニ @neuecc さん)   

DSC03356

・株式会社グラニ取締役会 CTO
・「最先端のC#技術を使ったゲーム開発」
・Time To First Byte
 ・KLabが出してるアルカディアは472msだった
 ・グラニが出してるモンスターハンターは74ms
・C#5.0で言語構文レベルでサポートされる非同期処理
    ・DB/Redisアクセス等は常に可視化している
    ・発行した全SQLのExplainも常にかけて見られるようにする
    ・Glimpseというライブラリを使ってます
・言語としての強さ
    ・言語そのもの
    ・フレームワーク
    ・IDEとかの環境
    ・コミュニティ
・性能優先にするのか VS 設計優先にするのか?
    ・C#の恩恵を得て、性能と設計を両立する
・UnityをC#大統一理論
    ・サーバーもクライアントもC#
    ・Unityとの共存も可能
 
Q.Windowsで開発されてるとのことですが、バージョン管理はgitですか?
A.Gitで、SourceTreeとVisual StudioのGit拡張を併用している
 
Q.非同期アクセスは魅力的なんですが、逆に遅くなる場合があると思うんですが、その辺の住み分けはどう考えてるんでしょうか?
A.遅くなる場合はあるとは思いますが、同期にするか判断に悩むぐらいなら、非同期に倒すことにしている
  デバッグが大変だが、VisualStdioでなんとかする
 
Q.Unity とサーバーサイドでざっくり何割くらい同一コード使えてますか?
A.まだ検証段階だが、印象としてほとんど共有はできない
プレーンなクラスだけは共有するレベルだが、それでも十分有用
 
速さが正義だとおっしゃるCTOの河合さん。
Web開発にあまり馴染みがないC#ですが、これだけ爆速で動かせるのであれば、もっと普及してもいいですね
 
最近、グラニがC#にこだわる理由という連載も始まったようで、興味があればこちらもどうぞ。
第1回 神獄のヴァルハラゲートの裏側をCTOが語り尽くす!

発表内容の紹介は以上ですが、これ以降は懇親会中のLTにて
・Windows PowerShellのお話
・10万行のc++をJavascriptに変換するお話
などなどいろいろ飛び交い、大変有意義な勉強会となりました。
DSC03368

 
こういった勉強会は毎月やってますので、ぜひ次回のレポートも楽しみに!