Mobile Factory Tech Blog

技術好きな方へ!モバイルファクトリーのエンジニアたちが楽しい技術話をお届けします!

Meguro.es # 20 @ DrecomでJavaScript + Dockerの知見について発表しました

こんにちは。ブロックチェーンチームでエンジニアをしているid:odan3240です。 4月4日に行われたMeguro.es #20で「JavaScript + Dockerの知見」というタイトルで登壇してきました。今回の記事はその発表の紹介です。

発表の背景

モバイルファクトリーに入社してからの約1年間でいくつかのサービスに関わってきました。

チームの開発では、フロントエンドはvue.jsやnuxt.jsが、バックエンドではTypeScriptが採用されることが多いです。実際関わったお仕事の技術スタックは次のようになっています。

  • サービスサイト
    • フロントエンド: nuxt.js
  • ブロックチェーンアプリ検索サイト
    • フロントエンド: nuxt.js
    • バックエンド: TypeScript
  • ブロックチェーンアプリ開発ツールキット
    • 実装: TypeScript
    • サンプルアプリ: vue.js

このうちブロックチェーンアプリ検索サイトでは、開発環境にDocker for Macを、本番環境にDockerを使用しています。
チームではデザイナがvueファイルを触ることがあるため、docker-compose up を叩くだけで簡単に開発環境が立ち上がることを理由にDocker for Macを使用していました。

知見

このような背景でmeguro.esではJavaScript+Dockerに関する次の5つの知見を共有しました。

  • コンテナのnode_modulesを守る
  • ホストのnode_modulesを用意
  • Docker for MacのI/Oが遅い
  • node.jsはPID 1を想定していない問題
  • .dockerignoreを用意する

詳しくはスライドをご覧ください。

speakerdeck.com

反響

懇親会

フロントエンドの開発環境についての情報交換を行いました。スライドで主張していた「開発環境をDockerに閉じ込めてもコード補完のためにホスト側にnode_modulesを用意する必要がありつらい」に共感する話をいただけました。自分の中でもやもやしていた不満点は、他の方も同様に感じていることがわかり安心しました。

ネット

スライドを公開したところはてなブックマークでいくつかのコメントがつきました。 http://b.hatena.ne.jp/entry/s/speakerdeck.com/odanado/knowledge-of-docker-in-javascript

また、IOボトルネックの観点からもフロントエンドの開発環境にDockerは不要だという言及もされました。

mizchi.hatenablog.com

終わりに

meguro.esは名札に貼る属性シールが用意されているなど、参加者に配慮されているとても良い勉強会です。興味のある方は6月6日に予定されている meguro.es #21 に参加してみてはいかがでしょうか。

Meguro.es # 20 @ Drecomの参加レポート: https://meguro.es/posts/meguro-es-20

「どこでもKotlin #7 〜Kotlin MPP特集〜」で登壇してきました

こんにちは。シニアエンジニアの @yashims85(id:yashims85) です。

今日は2019/03/27にM3さんで行われた「どこでもKotlin #7 〜Kotlin MPP特集〜」に登壇してきた事についての記事です。

どこでもKotlinとは

Android開発言語として注目されているKotlin、その活躍の場はAndroidだけじゃない!!! Kotlinはサーバーサイドでも、どこでも(デスクトップアプリやAltJS、iOSアプリなどでも)使える言語です。 エムスリーではAndroidアプリやサーバーサイドの開発言語としてKotlinを実践投入しています。「どこでもKotlin」では様々な分野におけるKotlinの話題について取り上げていきます。

イベントページより引用


他の登壇者様の資料や発表内容については、ページ下部のリンクやハッシュタグ(#m3kt)、またはエムスリー様のテックブログをご参照ください。

発表内容

今回は「Kotlin/MPPでX-PF 事始めのつまづきポイントというタイトル」で登壇させていただきました。

2019/03/27現在、モバイルファクトリーではKotlin/MPPを使用して、既存プロダクトのリプレースを進めています。

また、それと平行して、個人的にそのプロダクトで使用するためのKotlin/MPP用のプレゼンテーションルーターをOSSで開発しています。

今回の発表ではそれら2つのプロダクトでKotlin/MPPを使用して、開発を進めている中で得られた知見を共有しています。

印象に残ったこと

Kotlin/MPPの使用され度

会場でKotlin/MPPの使用状況についてアンケートを取るシーンがありました。 「実際のプロダクトでKotlin/MPPを運用している」という会社は1、2社といったところで、やはりまだまだ少ない印象です。

その状況を鑑みるに、今回私の発表中で軽く触れたクライアントアプリの設計について、今後深く話してみたいなという印象をいだきました。

Kotlin/MPPのプロジェクト構成とbuild.gradle

参考にできる情報が少なく、今弊社的にもKotlin/MPPで一番苦しんでいるポイントです。 今回登壇した方々にしてみても、やはり同じ様な苦しみを経験していらっしゃるでした。

そんなみなさんの発表ですので、私にとって知見の塊といってよくとても有意義な勉強会でした。

他の方々の登壇内容について

どの発表も目からウロコで知見の塊でした。

How to upload a kotlin multiplatform project library. - 荒谷 光

Kotlin/MPPの記事を探すとだいたいこの方に行き当たるというすごい人。 ちょうど私もKoRouterのPublish方法わからなくて泣いていたところだったので、渡りに船のような発表でした。

DroidKaigi 公式アプリのKotlin Multiplatform - takahirom

DoroidKaigi 2019の公式アプリのオーナーを務めるtakahiromさんの発表です。 実際にアプリをKotlin/MPPで作り、それをリリースしており、経験に裏打ちされたつらみやわかりみがあり、一歩先を行く転ばぬ先の杖のような発表でした。

Kotlin/NativeのiOSにおけるオーバーヘッド - 星川 貴樹

どこでもKotlin運営である@oboenikuiさんの発表です。 Kotlin/NativeでKotlinを動かすときの知見です。アセンブリの読解と、アセンブリからObj-Cライクな擬似コードを出力するHopperはまさに温故知新、新たな発見でした。

おわりに

モバイルファクトリーでは社内、社外を問わず日々様々な勉強会や読書会が行われています。

そんな環境で、ともに成長していける仲間を募集しています。