CyberZの若手エンジニアは何してる? CA BASE NEXT 登壇レポート
5月28日(金)に20代のエンジニア・クリエイターが中心となって創り上げるサイバーエージェントの技術カンファレンス「CA BASE NEXT(CyberAgent Developer Conference by Next Generations)」が開催されました。
本カンファレンスは「21世紀の創造力を」というコンセプトをもとに、サイバーエージェントのエンジニア・クリエイターによるセッション・LT・パネルディスカッション・インタビューセッションを含む、約50のコンテンツをYouTube Liveを通じてお届けしました。
当日は参加人数(UU)5,834人、総視聴回数27,703回と多くの皆さまにご参加頂き、ありがとうございました。
CyberZからは、藤井、森がLT登壇を行い、小川がパネルディスカッションで出演しました。
藤井 - OPENREC.tvにおけるDynamoDBを用いたデザインパターン
OPENREC.tvはシステムの大部分をAWS上に構築しており、様々なAWSサービスを利用しています。コンピューティングリソースとしてはEC2やECS、そしてEKSなどを用い、データベースとしてはメインのAuroraに加え、DynamoDB、ElastiCache(Redis)やRedshiiftなどを活用しています。今回は、Amazon DynamoDBを活用して構築したタイムライン機能をご紹介しました。
DynamoDBを使う上で、キー設計は非常に重要です。今回の例ではセカンダリインデックスなどは利用せず、オーソドックスな複合キーインデックステーブルを使っています。
アクセスパターンから、取得と書き込みが適切に分散するようにパーティションキーおよびソートキーを設計する必要があります。
また、DynamoDBには2つのテーブルモードがあります。課金額を見積もりより良いモードを選ぶのはもちろんですが、アクセス特性に応じて適切なモードを選択することが重要です。
今回ご紹介させていただいた内容はAWS Blogに寄稿させていただいております。ご興味ありましたらイベントのアーカイブとあわせて是非ご一読いただければ幸いです。( 英語記事 / 日本語訳 )
森 - AndroidでKotlin Coroutineを使うときの注意点
Kotlin Coroutinesは非同期処理を強力に支援してくれます。最近ではRetrofitやRoom、DataStoreを始めとした周辺ライブラリもCoroutinesをサポートし、ますます使いやすさが増していると感じています。
一方で、Coroutinesを利用する上で、保守性やテスト容易性の面で、いくつか注意する点があります。また、Lifecycleやエラーハンドリングなどでは、間違えやすいポイントも存在します。
今回はKotlin Coroutinesのキャンセルについて解説を行いました。モバイルデバイスという限られたリソースで、正しく処理を中断することは重要だと考えています。
正しく処理をキャンセルし、リソースを最大限に活用するための注意点について紹介しています。
一方で、キャンセルさせたくない処理というものも存在します。例えば、購入完了後のレシート処理や何らかのアクションを行った後のログ送信処理は、安易にキャンセルしてしまうと、期待とは異なる状態を生じさせる可能性があります。
意図的にキャンセルさせない方法について、間違いやすい例や注意すべき例とともに紹介しています。
小川 - 不確実な時代の生存戦略を、3DCG化したバーチャル社員が聞いちゃうよ!
パネルディスカッションはパネラーにエンジニア2名(江頭・小川)とクリエイター1名(高杢)とファシリテーターをバーチャル社員である「黒木みつか」で行いました。Cyberhuman Productions所有のLED STUDIOとMotion Capture技術を組み合わせることで、バーチャルヒューマンと人間がリアルな空間で共にディスカッションする新しい映像体験となっております。
不確実な時代の生存戦略について、3つのテーマを設けて議論を行いました。
1つめのテーマの「キャリアビジョンについて」ではキャリアビジョンの必要性について議論しています。キャリアビジョンを持つことが各人の成長に繋がるという意見や、明確なキャリアビジョンはなくとも問題はなく、そこに焦りを感じる必要はないといった意見を交わしました。
2つめのテーマの「おもしろい仕事に抜擢されるためには」では、抜擢されるための信頼残高を積み上げる必要についてや、信頼残高を高めるためにできるアクションについて議論を行いました。
最後のテーマの「頭ひとつ突き抜けるための生存戦略」についてでは、市場価値を高めるために必要なことは何であるのかについて議論を行いました。クリエイターにとってインハウスでプロダクトに関わる中でこそ出せる強みについて、エンジニアにとっての技術力などの知識での強みとは何であるのかなどで白熱したディスカッションとなりました。
映像体験の新しさという点でも、ディスカッションの内容でも見応えのある内容となっていますので是非アーカイブ動画も御覧ください。
この記事が気に入ったらサポートをしてみませんか?