コード日進月歩

プログラミングの技術的なメモなど

CA.kt #4 に行ってきたよメモ

サイバーエージェントさん主催のKotlin勉強会、CA.ktの4回目 に行ってきたのでメモです。 今回は先日サンフランシスコであった、KotlinConfの報告会。そのため実際にKotlinConfでのセッションの説明LT系が多かったです。

各発表の感想

Kotlin Conf Keynote

感想

  • 今回のKeynoteトピックのまとめ
  • KotlinでJS変換もできるのでフロントもバックエンドも可能
  • Native対応したのAndroidだけではなくiOSも対応している
  • C#だと結構プラットフォームバラバラでマルチ感を演出しているけど、KotlinだとKotlinそのものがマルチサポートしているので強い印象

関連リンク

Kotlin Conf Overview

(多分スライドなさそう)

感想

  • KotlinKonfの気合の入れようがカンファレンス写真から感じられた
  • カンファレンスの内訳を見るとAndroid主体のものはなかった様子
  • カンファレンスのアプリがサーバまでフルKotlinなので参考になりそう

関連リンク

Spring and Kotlin

(そのうちスライドでるかも?)

感想

  • サーバーサイドKotlinの機運
  • Kotlin + SpringがWebのスタンダードの様子
  • アノテーションに頼らずラムダで色々書けるようになったのでそこらへんが可読性アップに貢献してそう
  • 書きやすさや読みやすさだとRailsPHP各種フレームワークとあんまり遜色なさそう

関連リンク

Kotlin Types

感想

  • Javaに変換されるというところで変換後のコードに思いを馳せようと思った
  • 変換後を知ることでどういう意図で作られているのか読み取れそう
  • Nothingの仕組み、なるほどなーと思いながらこれって他の言語だとどうやるんだろうかと思うなど

関連リンク

Presentations by Svetlana Isakova // Speaker Deck - 本家スライドが見当たらなかったのでとりあえず発表者の方のSpeaker Deckをリンク

Kotlin Puzzlers

(たぶんスライドなさそう)

感想

  • Puzzlerとは見た目とは裏腹な動作をするコード、みたいな意味らしく初めて知る(ただいい感じの出典がどこにもない)
  • これは言語仕様バグでは…?みたいな気持ちになる
  • そしてきれいなコードを書く大切さを身にしみる

関連リンク

Testing Kotlin

感想

  • JUnitではなく、Spekで書くとテストコード量減るよ!という話
  • JUnitだと長文になりがちなので、そこらへんがカバーできる
  • Specの文脈だから短くなるのかな?的なイメージ
  • しばらく開発が止まっていたので、使うなら11月末リリース予定の2.x系から使ったほうがよいとのこと

関連リンク

React app in Kotlin

感想

  • Kotlin/JSでもReactをサポートしているよって話
  • 実際のHTML部分はJSXではなく、通常のクラス定義とラムダ的な記述で書ける
  • 本家JSXよりもHTMLらしさはなくなるけど、閉じタグとかがなくなる分すっきり感があった
  • すべてがKotlinになる世界観ならぜひとも使ってみたい系

関連リンク

全体を通しての感想

  • このまま行くとC#よりも統一した世界観ができそう、でも下にいるのはJavaなので権利問題は大変そう
  • 言語仕様がどんどん新しいパラダイムになっていくのでちゃんと追わないとブラックボックスな概念を触ることになるので、ポンコツになる危険をすごく感じた…

AbemaTV Developer Conference 2017 行ってきたよメモ

AbemaTV技術しばりの勉強会に行ってきたのでそのときのメモ

各発表の感想

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

AbemaTVを支えるGoogle Cloud Platform

感想

  • AbemaTVさんではGCPのサービスをたくさん使っている様子
  • statelessなものAPIなどはKubentesで作ってやるのが昔はセオリーだったけどだんだんそうでもなくなってきた
  • クラウドでkubernetes使うならGKEが歴史もながいのでおすすめというのを声高らかに言っていた。Dockerもサポートしたし使う機会があれば使ってみたい

AbemaTV将棋チャンネルの配信技術 〜全国完全生中継への挑戦〜

感想

  • 衛生だと遅延するから、代替手段がSkypeだった時代があったらしい、すごい
  • LiveUというイスラエルの配信機械があり、8本の回線を使って1個の映像リソースを伝達するという仕組みで伝達の信頼性を向上させている。すごい。
  • 将棋の著名な試合って旅館とかでやるからネット環境の配備やらカメラの物理的設置やらすごい
  • なんかすごいしか書いてないけどネット生中継の限界に挑戦している舞台って感じがあった。スライド公開してほしい。

関連リンク

AbemaTVの画質定義~ラウドネスマネージメント

感想

  • 映像ソースがばらばらだし、納品をデータをしてもらうというので色々大変そうだった
  • 指標はあるが基本はユーザのためにという視聴環境を考えた設定をしているんだなという感じ
  • 画質の担保というところもあるが音声のレベル調整に関してすごい考えられている感じ
  • ユーザ視点でもDVDより綺麗だなーとか思うときあったのでこういう努力の結晶なんだろうなという。

AbemaTV モバイルアプリの開発体制と開発プロセスの話

感想

  • cmdshelfでみんながやる作業を共通化しているのはなかなかよさそうだった
  • スプリントとリリースサイクルがキレイに連動できているみたいなのですごい
  • 共有部分はばっさりリポジトリ分ける戦略いけるんだという印象
  • Protocol Bufferを使っているとさらりとあったが動画の部分だろうか…

関連リンク

デザインのBefore & After

感想

  • アプリはマテリアルデザインの思想を結構受けている感じ。
  • バイス画面拡大によるUIの設計見直しは色々ある様子だった。
  • デザインは日々変わっているので、そういう部分の変更にも強いアプリである必要があるなーと思うなど。
  • マテリアルおじさんの話を思い出す

AbemaTVにおけるモニタリング

感想

  • PrometheusもGrafanaも知らなかったので良い知見になった
  • 最後の可視化プラグインがすごいなという感じだった、GraphAPIってあそこまでコネコネできるんだねというイメージ

関連リンク

Microservices下におけるWebの負荷対策 -SSR×SPA×PWAへ向けて-

感想

  • 世の中の時流的にフロントキャッシュは普通だし、SPAとSSRが結構必須な時代が迫ってきた気がする
  • とはいえAbemaのフロントエンドエンジニアの対応領域広くないですか!?
  • 対比としてFRESH!とかアメブロを出されると、この前の事例見た限りだとここまでやるのは結構大掛かりなので、くらべられるのなんかつらい気持ちになる

AbemaTVを支えるアプリの優しさ

感想

  • 動画配信にはついて回るのはネットワークだよねという印象
  • AndroidでもTLSだし、ExoPlayerが標準なんだねって感じ。ただメモリハンドリングとか大変なんですね。
  • さっきの動画データの起こしと合わせると色々コンテンツが作られて、配信されるフローまでが見えて面白い
  • ただ権利制御どうしているんだろうって感じ。

関連リンク

MPEG-DASHによるリニア型配信

感想

  • 標準化するにあたって仕様がもりもりになったイメージがすごい
  • DRM問題の吸収をここでやっているんだなという印象
  • DRMは3強時代って変わることがそのうちくるんだろうか…

AbemaTVの裏側 - 大規模トラフィックを支える技術と負荷対策の話

感想

  • 検証環境とってきてやる感じ
  • 規模のでかいものと、小さいものと切り分けている感じ
  • いろいろなテクニック集約されているなーって感じ。

全体を通しての感想

  • 映像を収録して、こねこねして、実際にユーザに届くところまでに関わる各エンジニアがそれぞれ出てきた感じで非常に面白かった。
  • 映像業界的なしがらみと、届けるために色々駆使して苦労している側面がすごい垣間見えた
  • 日本を代表する動画エンドレス放送サービスなので今後もたまりゆく知見に期待。
  • あと普通にトゥギャッター社オフィシャル協力があって、スライドなくても当日の雰囲気が即座に残せるのすごかった

関連リンク

GDGDevFestTokyo2017に行ってきたよメモ

Google系ユーザーグループのお祭り、DevFestTokyo2017に行ってまいりました。 ( 公式ページ) 行った勉強会はなるべく書こう、ということで見た発表からとりあえずメモ。

各発表の感想

Android1.5~8.0 Walkthrough

www.slideshare.net

感想

  • OSの歴史とバックグラウンド処理とかとかの今昔物語
  • どんどんバックグラウンド処理がシビアになるし互換性がなくなるので下位のサポートがなくなったら見直し結構かけないと怖い
  • 文字起こしとスライドがあがってるので未見の方はそちらを

関連リンク

Kotlin導入どうですか?

mixi , サイバーエージェントDeNA 、YahooJapan 4社の導入事例と導入状況の説明

感想

  • AndroidのサンプルコードはだいたいKotlinでJavaで書くほうが問い詰められる時代が来ている
  • テストコードからの導入が多い、あとは戦略各社導入戦略はいろいろ
  • Kotlinが読み書きできるとSwiftも読めるようになるという話をみな口々に

Tangoで踊らされたオトコがARCoreと向き合う話

(多分スライドはない)

感想

  • Tangoはハードウェア込みの枠組みだったけど、ARCoreは奥行き検知とかないのでつらそう
  • ARやる場合は特に何も考えなければUnityがベスト解答っぽい。自前でモデルデータゴリゴリ動かすの辛いですもんね…
  • これでiOSと戦えるのだろうか…

関連リンク

こちらのページさんのほうがよくまとまっているのでリンク * DevFest Tokyo 2017に行ってきたメモ #DevFest17 - やらなイカ?

Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える

www.slideshare.net

感想

  • Goの話というよりかはアーキテクチャ戦略論だった。
  • Androidとかでもたびたび話されるこのテーマだけど、Goでもここらへんあるんだなって印象
  • 『レイヤ設計は知ってればできるので、これはキャリアとしてはそこまで活きない』という言葉が個人的には衝撃的だった。そんなことないよきっと!

FirebaseAnalytics + BigQuery + DataStudio

www.slideshare.net

感想

  • Google世界観で統一すると色々できるなって印象
  • DataStudioも結構強力でサクッと見せられるので強い
  • もっと気軽にクエリを打っていいんだよ!という世界になるといいね話

全体の感想

  • BigQueryに関して色々聴きたかったので公演後話ができてよかった
  • Googleのユーザグループはホント活気あるなぁって感じでした。
  • なんかアウトプットしてこういうコミュニティに貢献したいなぁと思う日でした。

PHPカンファレンス2017に行ってきた(しスタッフ参加した)メモ

スタッフとして動いていたのでほとんど聞いていない or 作業の片手間で聞いてたので 割と記憶に残っているものをピックアップ。

全スライド見たい人は下記のページなどをご参照のこと

国内最大のPHPイベント「PHPカンファレンス2017」のスライドまとめ|IT勉強会・セミナーなどのイベント情報検索サービス - TECH PLAY[テックプレイ]

著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則

www.slideshare.net

感想

  • 局所的でもちゃんと脆弱性がないことがはっきりさせることで脆弱性減るよねって話
  • PHPにかぎらず大事な話

片手間MySQLチューニング戦略

www.slideshare.net

感想

  • MySQL使っててもあんまり知らないバッファプールの話、ためになる
  • ただ全くPHPの話ではないという…

全体的な感想

  • なんかずっと手伝いをしていたので、スライドに集中できず…
  • ただしスタッフとしてはみなさんの頑張りとか、裏側がしれてとてもよかったです。
  • 懇親会のLTきっかけでテスト駆動開発買いました。。

『Android Test Night #1』に行ってきたよメモ

Androidのテストとかちゃんと取り組んだことないので知見を得るために行ってきました。 (もしかしたらあとで追記するかも)

コードレビューをより良くする Danger x Android

感想

  • Webhookは結構やってるけどここらへんの取り組みはまだしていないのでやってみたくなる
  • reviewのコメントでチェックがかかる機構は緊急時にすっ飛ばすとかもできるので便利そう

Androidのテストを効率的にするために考えたこと

(スライドなさそう)

テストの効率化にあたり、どう自動化をしたか、何を優先的にやっていったかという話でした。

感想

  • 古くなったテストコードを捨ててイチから作り直すという決断。
  • 書くことのできるコードがから書いていく、取捨選択の大事さを感じる。

Android e2e testing at mercari

www.slideshare.net

感想

  • 今回の発表の中で一番インパクトがあった話、メルカリすごい。
  • E2EテストをSelenium + capybara + rspec っていうRubyと同じ座組でSeleniumをAppiumに置き換えるというパワー、そういやAppiumって「Selenium for Application」が由来だもんね…
  • Androidはデバイスファーム作って運用するのが普通なんだなという感じ
  • サーバレスE2Eテストの仕組みをここまで構築できちゃうのがすごいというか、専属チームならではという感じでした。

AndroidSDK with Docker

speakerdeck.com

感想

  • Dockerでやると使いまわせていいよねという知見
  • AndroidSDKもエミュレータも権利問題めんどくさいので共有しづらいね…

JUnit5とAndroidのテスト

www.slideshare.net

感想

  • JUnitが新しくなろうともAndroidJavaのサポートバージョンが上がらない限りは苦しめられる
  • これ似たような話を何処かで見たような…あ、Uni(ry

Kotlinで書かれたAndroidアプリをBazelでビルドする

speakerdeck.com

感想

  • Bazel、そういうのもあるのか!
  • Kotlin導入予定だが、ダブルで新しいものをやるのでもっと知見が広まったら使ってみたい感

Android CIをBitriseに移行して開発者・QAが幸せになったこと

speakerdeck.com

感想

  • CircleCIでいいじゃんとか思ってたけど、ネイティブアプリ向けに用意されているので予想よりも手厚そうだし、使いやすそう
  • Playのバイナリアップミスって普通にやりがちなのでそのリスクが避けられるのは結構でかい(過去に経験して冷や汗かいた)

Clean Architecture & TDD

speakerdeck.com

感想

  • TDDの方、一回は行ってみたいTDD BootCamp。
  • テストのやりやすさは粒度だと思うので、アーキテクチャでそこらへんの共通認識をカバーできるのはでかいなと思う。
  • やってはみたいが理解が得にくいTDD…

全体的な感想

  • テストのチーム体制が整っているところは自動テストの楽園を作れてて、テスト書く余裕が少しある程度のところはそこまで整っていないみたいに二分されてしまっている印象
  • うまくピックアップして専属チームはいないけど外部サービス連携しまくってうまく回しているぞ!みたいな事例になりたいし、体現しているところは話を聞きたい
  • 過去にiOS Test Nightにおじゃました際にも思いましたが、いまやユニットテスト単体テスト)は当たり前で、以下にE2EテストやUIの検証を効率化&自動化できるかがテストにおいては焦点になってきそうだなという感じ。そうするとSeleniumとAppiumやってないとつらくなりそう。

関連リンク

今回のお話で気になった公式サイトとか

使い方とか知見

他の方のレポート

qiita.com

『Ruby on Rails を使ったサービス開発と組織(ブラケット × みんなのウェディング)』に行ってきたよメモ

最近はもっぱらRails書きなので聞きに行ってきましたよメモ。

(だいぶ開催から時間が経ってしまったのはごめんなさい。。)

STORES.jp開発チームのこれまでとこれから

(多分スライドなし)

内容としてはSTORE.jpが誕生→スタートトゥディ傘下→MBO後の開発チームの変化に関してでした。

感想

  • イケイケドンドンで作ってドキュメントが無くなることによる仕様不明瞭化の怖さ
  • 人の流動はかならず起きるので書き残す文化はチームの大小関わらず残すべきという気持ちを強く持ちました。

インフラエンジニアとアプリ開発

www.slideshare.net

感想

  • インフラレイヤとアプリレイヤが横断的に歩けるのって素敵だし相互理解がはかれて良さげ
  • Rails使っているとActiveRecordにおんぶにだっこなので割とそこがお互い興味範囲じゃなくなるので良いアプローチ
  • 検証用のAWSアカウント良い取り組みだし羨ましい、本番と隔離された環境でやれるSANDBOXあると嬉しい

少人数で開発スピードを上げていくための試み

(多分スライドなし)

内容としてはチーム開発としてどういうことを取り組んだり選択していく話でした

感想

  • QiitaTeamで情報集約してるとのことで、半端な状態でもWorkInProgressで共有することの大切さを感じる。
  • 小さなチームの場合は積極的に外部サービスを使っていって減らせる工数は減らそうという戦略、ElasticCloudImageFluxを使ってるの良い知見でした
  • オーバースペックすぎて使いこなせないので辞めるということもあるとのことで、確かにという感じ

新卒のぼくが できるようになったこと~ サービス開発と組織編 ~

www.slideshare.net

感想

  • 最近Railsを再び書き始めた身としては共感できる部分が結構多かった
  • それ以外にも最近の初学者が怖い部分がしれたのは学び
  • git rebase に関しては未だにどこまでやっていいかが自分でもわからない…

全体的な感想

  • どちらの会社さんも外部サービスを使っており、それらのバランス感覚の大事さを思い知る。
  • 外部サービスを使うのは人件費で検討する、という話を聞いてなるほどなぁと思うなど。

『Frontrend Vol.10 - 夏の終わりに納涼パフォーマンス話』に行ってきたよメモ

行ってきましたよ、ということでちょこっと感想レベルでメモ

FRESH! クライアントサイドパフォーマンス改善

感想

  • Canaryって存在は知ってたけど、使った感想とかは知らなかったので今後使ってみたくなった
  • ServiceWorkerのキャッシュ目的での利用事例、全てのブラウザで使えるわけではないなが、Chromeでは使えるのでシェアの面から言うと有用
  • 遅延ロード系の発火を助けてくれるviewport-observe、React環境であれば使ってみたいという気持ち

パフォーマンスを改善して本を売る!「読書のお時間です。」の取り組みについて

speakerdeck.com

感想

  • 既存のSinglePageApplicationを走りながらServerSideRenderingにした際の事例
  • 漫画の難読化にタイル化してるってのを初めて知る
  • RUM-SpeedIndexを使ったページ表示速度の定量化測定はわかりやすいのでやってみたさが出る

Isommophicアプリケーションのパフォーマンス・チューニング

感想

  • Isomorphicという言葉を知らなかったのでググってわかりやすい資料をあとで読むという
  • 今回のお話はNodeJS + React + Redux + React Router の話、モダン。全部JS
  • バックエンドのキャッシュは気を使って実装されている。コンテンツの更新トリガーが不明瞭なCCMというところもありの煩雑さ。
  • 遅延ロードをするためにコード分割を行っている、粒度はAtomicデザインのOrganisms単位。わかりやすい。
  • こちらもServiceWorkerでの事前キャッシュ取得をやっている、すげーなーと思ったのはAMPにアクセスした際に走らせること。目からうろこ。

全体的な感想

  • みんなSPAは当たり前、次はSSRだ!みたいな感じがすごかった
  • JSだけでなんでもやる、ということになるとここまで強くできるんだろうなと思うなど。
  • 他の事例でも見ましたけど、Atomicデザインが根底にあるとSPAはすごくやりやすいんだろうなぁと思いました。

関連リンクなど