音声書き起こし
1. オープニング
Guest
こんにちは
Guest
こんにちは
Guest
今週もいいテインサイド始めたいと思います。いいテインサイドは、ユーザーインターフェイスと、テクノロジーを愛する開発者のためのオトキャストです。
Guest
最新のウェブ表示の動向や開発、フレームワークの変遷、またまたurやuxに関することまで、毎週フロントエンドの情報を発信していくことを目的
Guest
としております。ハッシュタグはシャープ、UIT、アンダースコアインサイド。え、ご意見やご感想はいつでもお待ちしております。え、お気軽についていただければと思います。
Guest
そして、今回はですね、ゲストにですね。2020年夏インターンのえ、潜水さんを招待してですね。え、インターンでLINEニュースで行った開発について話を聞いていきたいと思っておりますし、水さんよろしくお願いいたします
Guest
よろしくお願いします。
2. 泉水さん自己紹介
Guest
今回、セスさんがえ、ポッドキャスト初出演ということでしてえ、初めに簡単に自己紹介をいただきたいと思っております。セスさん、自己紹介をお願いしてもよろしいでしょうか。
Guest
はい、ありがとうございますえ、LINEUITのデブアンチームに所属しています。センスゆきと申します。
Guest
8月末から6週間インターン制として、LINEnewsのフロントエンドを開発しています、よろしくお願いします
Guest
はい、よろしくお願いいたします。今回のポイントキャストですけど、も。せっかくインターンの。6週目ラストっていうところなので、
3. 2020年夏インターン
Guest
インターンでやったことを聞きたいなと思って、ええと、今回の場を設けさしてもらいました。まず、初めにですね、インターンで、こんなことをやりました。って話をちょっとえ教えいただいてもよろしいでしょうか。
Guest
はい、僕はこのインターンで、LINEnewsの中にビジョンというコンテンツがあるんですけれど、
Guest
あのビジョンは動画のコンテンツで動画こう。僕は今回作ったものはえ、ビジョンの動画プレーヤーにシーバを実装するという
Guest
ものをはい、開発してきました。なるほど、なるほど、
Guest
じゃあ、ほんとに動画関連のコードを書いていたみたいな感じなんですかね。
Guest
そうですね、ビュージの関連のコードが基本で、それに、hmlのビデオタグを操作するような
Guest
形で。はい、実装してきました。なるほど、なるほどな、
Guest
やっぱり、フロントエンドのインターンっていうと、例えば、リアクトとか、ビルとかのおっきな設計を見てみたいとか、なんか、チーム開発をしてみたいもみたいなモチベーションで来る人が、やっぱり多いかなって印象が私の中であるんですけど、
Guest
あえて動画選んだところとかって、なんかあったりするんですかね。
Guest
そうですね、
Guest
メンタさんにご提示いただいたタスクが5個ほどあったんですけれど、あ、そう結構あったんで、そうなんかこう色んなものが使われそうだったんですけれど、その中で1番
Guest
面白そうだなっていうのが、ビジョンのシーク版のジーソのものでした。はいで、
Guest
そうですね、で、今まで動画関係って僕ずっと触ってきてなかったので、はい、挑戦できるなというところでビジョンを選びました。
Guest
なかなか面白いですね、あの4つはどういったのがあったんですか。
Guest
そうですね、まずニュースってこう、リアクトのところと、ビューのところで分かれていて、はい
Guest
で、リア友2個くらいビーもま23個くらいそれぞれあったんですけれど、ま、なんかリア友はこうも改善タスク
Guest
が結構多めで。うん、うん、うん、ビューの方にこう大きめなタスクがあったんですね。はいで、それがまさにビジョンで
Guest
ビジョンが1番面白そうな大きいそうちょうどこう、タスクの大きさ、
Guest
ちょうどよさそうだったっていうところですかね。はい、はい、
Guest
なるほど、なるほど、じゃあ、改善系のリアクトの実装系のタスクとフィーチャー、実装系の
Guest
ビューもタスクがあって、まひフィーチャー実装系の方が今回面白そうだなっていうので、動画に挑戦してみたっていうところですかね。
Guest
なんか、インターの中で1つまとまったものの、実装っていうところ、プラス挑戦が入る動画っていう領域はかなり面白い選定ですよね。
Guest
ほんとですよね、もうなんかこうぴったし、インターンにぴったりな感じでこう。そうですね、やっぱ機能実装してみたかったというのが
Guest
元々ありましたので、こうユーザーさんが直接触るようなもの
Guest
をちょっと作ってみたいなというところで、ビジョンは僕にちょっとちょうどよかったのかなと思って。はい、選びました。
Guest
いいっすね、ちょっと私も動画については全然詳しくないんで、詳細が気になるところなんで、ちょっと。そこについて、次のエイジェプターから聞いていければと思います。
Guest
ではですねえ、今話に上がったえ、ビジョンの実際のプレイヤーの改善の作業について、詳しく聞いていきたいと思うんですけど、シークバーの実装っていう話が
4. VISIONのプレイヤー改善の概要
Guest
やられました。けれども、なんか詳細について教えていただいてもよろしいですか。
Guest
はい、ビジョンはこのLINEを開いていただいて、下のナビゲーションから、newsでLINEnewsが開けるんですけれど、
Guest
ちょっと下の方にスクロールしていただくと、ビジョンと書かれたこの動画のカルーセルが出てくると思うんですね。
Guest
はい、
Guest
で、これ動画なんでもいいので、タップしていただくと、その動画の詳細が、この別のwebビで開くんですけれど、この動画プレーヤー
Guest
が、元々はこの上部にプログレスバーが出てるだけで、こうユーザーはこう飼育ができなかったんですね、
Guest
はいはいはい、
Guest
この上部のプログレス上部にあったプロプログレスバーをこの画面の下、今出てるシークバーの方に移してきて、
Guest
ユーザーがこう好きに飼育できるようにするという機能を実装しました。ほ
Guest
てことは、初めはあれなんですね、そのまただ再生されるだけと言いますか。その見るしかできなかったのは、ある程度コントロールな
Guest
再生のコントロールができるようになったって感じですかね。
Guest
そうですね、元もほんとにもう今どこにいるのかというか、もう全体で何分あるの。みたいなところも分かってなかったんですね。
Guest
はいはいはいはい
Guest
なので、まなんか動画によってはこう右下のところに残り時間を出したりとか。なんか、動画の方で工夫されてたんですけれど、そこのところをシーバを実装するにあたってこう。今の残り時間は、あと何分なのかっていうのを表示したりとか、
Guest
そういったこうuxの改善を中心にはい、やってきました。
Guest
おおかなりいいですね、その動画がが頑張るっていうのは、なかなかこうおかしなところでもあったとは思うんで。
Guest
確かに
Guest
そこに回線ができるってのは、この面白いところではありますね。
Guest
例えば、他のサービスとかだと、ユーザーも普通に飼育できるので、ユーザーをもう飼育できるように慣れてる人が多いと思うんですね。
Guest
でも、逆に飼育できないのってこう、ショートムービーみたいな。15秒とか、30秒とか、短めなさらっと見れるものだったらしい。はいはい
Guest
しなくていいと思うんですけれど、ビジョンって結構2、3分の動画とかが多いので、ま。飼育できるようになるっていうのは、すごく大きな
Guest
変更なのかなと思います。
Guest
確かに、確かにサービスも普通の動画サービスとかだとま飼育できることが前提で、割とストーリーよりなもの、あの、10秒程度の
Guest
多くの動画が切り替わるようなところっていうのは、まあシがない場合も多いかなと思いますけど、ビジョンはu愛的にはかなりこう。ストーリー的な
Guest
ものを意識して作られてそうな祝いをしているけれども、実際、同化自体は長いっていうところが
Guest
そうなんですよね、なんか、初めの頃は短かったんですかね、ちょっと僕わからないけど、今は結構長めになっちゃって。
Guest
はいはいはい、なるほど、なるほど、確かにそこの差をうまく吸収してとして、より使いやすいものにするってのはなかなか面白そう。
Guest
うん、なんか、
Guest
実装についても聞きたいんですけど、聞いてもいいです。
5. 実装の詳細について
Guest
ビジョンのこの動画ページは、このhmlのビデオタグに直接動画を埋め込んでるんですけれど、
Guest
あ、そうなんですね、
Guest
でも、あのストリーミングしなきゃいけないというところで、hlsjsというライブラリーがありまして。はい、それを使って、
Guest
このビデオタクに動画を流し込んでいるみたいな感じになってます。で、
Guest
iosはこのhlsっていう仕組みがデポルトで実装されていて、hlcsは対応してないので、このまた、iosは別の
Guest
実装みたいな感じになってるのがちょっとややこしいところなんですけれど、なるほどですね。そんな感じで、はい、hlsという
Guest
こうストリーミング再生がされてます。
Guest
なるほど、なるほど、
Guest
iosの場合は、そのままネイティブの再生を行って、androidとかの場合は、え、hlssを返して動画を提供してるみたいな。
Guest
そうですね。なので、マウントのところとかでこうhlghlsjsが対応してるかっていう分岐をして
Guest
ま。hlsjか対応してるんだったら、インスタンス作って。なので、ちゃんとアンマウントする時は、みたいな
Guest
が必要になったりとかして、結構そこら辺は複雑でした。はい、
Guest
今回の場合、飼育とかするってことは、今動いてるビデオに対してのあの操作を行うと思うんですけど、なんか、再生時間ずらしたりとかはいいうのをすると思うんですけど、そこって
Guest
hlsj使ってる場合と、使ってない場合で、操作のインターフェースはまた違ったりするんですかね。
Guest
いや、それは全く一緒で、この英標準のビデオタグから、エエメディアエレメントっていうエレメントが取れるんですけれど、そこにカレントタイムっていうプロパティーがあって、うんうん。それを更新してあげることで、もう後は勝手に
Guest
あのブラウザー側で飼育してくれるという
Guest
感じなので、はい、シークバーが操作されたら、その位置に応じて、カトタイムを更新していくというのが、基本の作業になります。
Guest
なるほど、なるほど、ということは、hlsjを使っていいのも使ってなくても、最終的にはネイティブの。イメルビデオエレメントへの操作で全部行うことができるっていう感じはいですね。
Guest
じゃあ、そこにおいてま。これはhlsjsだから、こういう行動を書いてみたいなのは、え、さすがに必要ではないっていうところ。
Guest
そうですね、幸いにも、飼育の機能のところは、hlsをこうなんか意識することはなかったです。なるほど、はい、
Guest
それまで意識しないといけなかったら、結構その手元で検証するのも大変ですし、実装も大変ですよね。
Guest
ほんと、結構それだと地獄ですよね。こう手元にし、iosシミュレーターの他に、androidのシミュレーターもよかないといけない、
Guest
なかなかそれは大変
Guest
ささ、ちょっと、LINEnewsのデバックってこう。はいはい、あの、LINEアプリのwebビューで動くので、こうできるだけこう。実際に動かされるような環境に近づけるために、iosシミュレーター
Guest
で動かしてデバックしてるんですね。あので、
Guest
はい、そのチャールズっていうソフト使って、プロ棋士して、ローカルでビルドしたファイルに置換して、はいはい、iysシミュレーターの中で
Guest
実行してで、サファリでベブビューとってこれるので、デバックしてみたいなあ、感じの。なので、
Guest
これがもしandroidもってことになったら、ちょっと大変なことに。そうですよ。本来だったら、ブラウザで見ればいいものっていう感じですかね。
Guest
ていうか、そもそも、開発の時からちゃんとできるだけほん、実際の環境に近づけて開発してやっていってるっていうところ。
Guest
そうですね、LINEnewsの皆さんは、そのようにやってるそうです。
Guest
なるほど、なるほど、ありがとうございます。はい、
Guest
じゃあ、割とこう実装に関しては、ちょっとそのデバイスサイとかあると、まあ、ライブライトとかの力もあって、スムーズに進んだ感じですかね。全体としては、
Guest
僕も初めはそう思ってたんですよ。なんか、ビデオビデオがあるから、簡単に行けるんじゃないかなと思ってたんですよね。カレントタイムを更新すれば、
Guest
勝手に行くかなと思ってたんですけど、実際は意外とそうじゃなくて、
Guest
ほう、どんなハマりがあったんですか。
Guest
なんか、いろんなハマりがあったんですけど、結構1番苦戦したのは、このios13とか、
Guest
ios14でしか発生しないバグ
Guest
っていうのが、こう吸への段階で上がってきて、はいはい、僕がシミュレーターで試している段階だと、発生していなかった
Guest
時期でしか発生しないようなバグとかがちょこちょこ出てきたりして、これが僕の実装が悪いのか、
Guest
それともiosのサパリのバグなのか、みたいなところで。はい、結構苦戦したんですけれど、
Guest
そうですね、その辺で面白かったのは、このあいシーバーを実装する時に、このタッチイベントでタッチイベントで
Guest
取り出してるんですけれど、このタッチイベントって、タッチスタートとタッチム部とタッチエンドがあると思うですけど、はい
Guest
で、それのカレントタイムを更新するタイミングを、タッチスタートと、タッチエンド両方でやってるんです。はい、なので、タップで
Guest
飼育しようとした時に、同じ値がタッチスタートとタッチエンドで発生するんですけれど、その両方のイベントの中でカレントタイム両方更新していたら、
Guest
ios13の時期だけ、なぜかロールバックするみたいな、
Guest
ロールバックス。そうなんすよこが起きちゃって、その一瞬なぜかそっちに飼育するんですけど、また一瞬で元の位置に戻ってきちゃうみたいな。バグが発生して、
Guest
それがios13の時期でしか発生しないっていうおqaさんから上がってきたバグ報告で、これにはちょっと苦戦しました。
Guest
いや、
Guest
そうなんですよね、これは多分おそらくサファリのバグだと思うんですけれど、しかも今はリモートでこう皆さん、
Guest
自宅で作業されてるじゃないですか、なので、こう実気でしか再現しないバグって、すごくデバッグ大変じゃないですか。あ、
Guest
そうですよね、なんか、手元に端末あるないって話からまず始まります。
Guest
本当そうなんですよね、うん、
Guest
もしあ、僕はその時ちょうど出社できるタイミングだったので、2泊3日でインターンシップでんインターンシップの期間、2泊3日で、ラインのえ、オフィスに出社できるというタイミングがあったんですけれど、
Guest
ちょうどその時に旧泳の期間がかぶっていて、ちょうどそこで、旧aさんからバグが報告が上がってきたような形で。
Guest
なので、UITで所有している。あの、テスト用のえ、懸賞金を使って、デバができたので、
Guest
幸いにもすぐに修正することができたんですけれど、
Guest
これがもう充電タイミングが
Guest
ほんとにほんとにそうですね。ちょっとでもずれてたら、きえさんにコンソール何出てますか。みたいなこと聞かなといけないところでした。
Guest
いや、そうでないのはかなりまあ、安心というかでしたね、
Guest
いやなことそういうのもあるんですね、そうか、ちょうど今開発の時期がios14が出る時期でもあるっていうとこですもんね、
Guest
はい、急え急駅間の途中で、ios14がリリースされたんですね。うん、うん、うん。なので、この
Guest
え。LINEnewsはこう、アルファaとbqaで分かれてるんですけれど、2段階で分かれてたんですけれど、アルファqaの段階だと、ios14のデバックがなかった
Guest
ですけれど、ベーqaでは、ios14でもデバックしていたんですね。はいはいはいで、
Guest
まさかのそのios14でしか再現しないバグっていうのもあって、なるほど、これはちょっと。
Guest
多分、ios14のバグだと思うんですけど、これもまた似たようなこうなんかいこれはあれですね。
Guest
イベントが発火しないみたいな特定条件下で、本来他のブラウザでは発火しているのに、なぜかこれだけ発火しないっていうものがあって、それにちょっと依存していた処理が
Guest
うまく動かずにっていうバグが1つありまして、それにもなかなか苦戦させられました。
Guest
最終的には、どういう解決をとったんですか。
Guest
のシークをシーバーを操作した時に、この話した時に、
Guest
あ、はい
Guest
違う。その前に今日その前に1つちょっと面白い話があって、
Guest
はい、
Guest
あの、シーバーを操作してる時に、こうyoutubeとかって、サムネイルがぴょこって出てきたりするじゃないですか、どの位置に飼育したいのかっていうのを、
Guest
このユーザーに提示しなきゃいけないっていう仕様も、企画さんから上がっていまして。はいで、それを実装するのに、このビデオ
Guest
のカレントタインもどんどん更新していけば、画面も切り替わるだろうって思ってたんですけれど、これがなかなか飼育に時間がかかるようで、
Guest
ああ、全然表示が更新追いついてなかったんですね、はいはい。なので、それの表示をできるだけ早くするために、
Guest
裏で低画質の動画を読み込んでおいて、はい、シークバーを操作してる間は、その低画質の動画を前面に表示して、ああ、なるほど、
Guest
はい、低画質なので、飼育はそこそこ早めなのでっていうことでやってて、
Guest
そうですね。この僕の6週間という期間では、このサムネイルを用意しておいて、みたいな切り替えてみたいなことがフロントだけできないので、
Guest
とりあえず、その低画質動画を裏で読み込んでおいてっていう方法で実装しました。いや、それな
Guest
ことかなり考えましたね、確かにそれなら
Guest
そうですね、これはほんとになかなかおUITのメンバーと
Guest
かなり競技を重ねてま。これで行くしかないんじゃないか。みたいな感じで。はい、そのそのまま実装したんですけれど、ですね。で、
Guest
さっきのios14のバグなんですけれど、はい、シーバを
Guest
操作して話した時に、その前面に出しておいた低画質の動画を表示にしなきゃいけないんですね。
Guest
あ、はいはいはい、そうですよね、
Guest
で、それをすいません。んで、それをシークバーシー処理が発生し
Guest
た後に、飼育が完了したっていうイベントがま。本来はないんですけど、キャンプレイスルーっていうイベントがあって、それは飼ー操作
Guest
を行った後に、なぜか必ず発火していたんですね。なので、このキャンプレイスルーっていうイベントで、低画質動画を消すっていう処理を加えていたんですけれど、
Guest
はい、ios14からそのキャンプレイスルーが
Guest
すでに読み込まれている場所に飼育した時は発火しなくなっていまして、あ、はいはいはい、そのせいでずっと低画質動画が
Guest
表示され続けてしまうみたいなバグがありまして。はいで、そのキャンプレイスルーを
Guest
やめると、そのキャンプレースルーのイベントで表示していたのには理由があって、あの飼育完了したら、
Guest
シークドっていうイベントがあるんですけれど、シークドイベントが発火した段階だと、まだ画面の表示が更新されていなくて、
Guest
元々の位置の画面が表示されたままなんですね。なので、シードイベントの時に低画質動画を表示してしまうと、
Guest
この高画質動画は飼育に時間がかかるので、まだ画面の表示が更新されていない
Guest
ので、画面がパパパってちちしちゃうんですね。なので、ちょっと送らせて、で、そのキャンプレイスルイベントで
Guest
表示にすると、うまくいっていたっていうものなんですけれど、これをシークドイベントに戻さざるを得なかったので、戻し
Guest
てしまったというところですね。これ、ちょっとすごくあの、
Guest
そうですね、この辺ちょっとどうすべきか悩んだんですけれど、まこれしかないんじゃないかというところで、
Guest
まどのデバイスでも表示されることを大優先にしていく
Guest
そうですね。is14だけセットタイムアウトするのは、ちょっと。他のバグが大きそうなので、諦めたという形で。
Guest
いや、なかなか難しいですね。はい、そのキャンプレイするの挙動はどっちが正しいんですかね。13のものが正しいんですかね。
Guest
そうですね、キャンプレイスルー僕、ちょっとmdn見た限りなので、まだ使用は終えてないので、よく理解はしてないんですけれど、キャンプレイスルーは、こう。
Guest
mdnによると、この動画が最後まで動画がある程度のところまで
Guest
再生し続けられるほどのバッファを持てたっていううん、うん、うん、そのイベントなんですね。はい。なので、
Guest
本来はしすでに読み込まれているところに飼育した時にま発火すべきか、発火すべきかじゃないかっていうのは
Guest
ま、どちらでもいいのかなっていうところはあるので、はい、発火しなくても、まあ本来のこの塩分からないですけれど、
Guest
文だけを見るとま、確かにそれも理解できると
Guest
確かにそうですね。あの0からまあその読めるじょよ。状態になったものをキャンプレイすると定義するか、今の位置から見て再生可能かどうかっていうだけを判断するかによって、確かに
Guest
解釈が変わるところでは
Guest
そうです。そうです。そうですね、
Guest
うん、うん、そうなんですよね、なので、ま、キャンプレーするにこのまま依存し続けるのも、まあ、正直不安ではあったので、
Guest
本来はシークドでちゃんとやるべきなのかな、というところありますね。はい、
Guest
なるほど、なるほど、いや、なかなか難しいところではありますね。
Guest
かなり詰まってしまいましたね、その辺でもっといいやり方があったのかもしれないなと。今までも不安なんですけれど、はい、
Guest
どうなんでしょうね。いや、なかなかこういった動画とかま、そういったブライザのネイティブ機能も、がっつり使わざるを得ないところっていうのは、
Guest
何が最適。解か、なかなか分かりづらいところでもあるんで、ちょっと。もしかしたら、なんか後からこういったのものに、詳しいメンバーとかが、なんかコントレートしてくれるとかもしれないですね。しない
Guest
ですね、それは最高ですね、もう、なんかこう。他のプロダクトで、動画プレイヤーとか触ってらっしゃる方がいたら、
Guest
確かにそうですね、最近、ライブとかもアップデートしたみたいですし、なんか、ライブのメンバーとかに聞いてみてるとかも面白いかもしれないっすね。
Guest
そうですね、もっとビジョンはこれから改善できるところはある。伸びしろがあるところだと思うので、
Guest
それこそ飼育中のプレビューもそうですし、これから改善どんどん加えられていければなと思います。
6. その他のフロントエンド活動
Guest
ありがとうございますえ、ビジョンのえ、シークバージストについて話を聞いていったと思うんですけど、かなりここの部分も面白い。コンテンツだったかなと思いますけど、
Guest
なんか一方でいわゆるフロントエンドらしいと、リアクトとかビーみたいな。いわゆるフレームワーク的な話とか、設計の話とかって、なんか印象深いのとかってあったのかなとか思ってあったら、そっちも聞きたいなと思うんですけど、
Guest
なんかありますかね。
Guest
はい、
Guest
LINEnewsのUITチームでこう。週1で2つくらいイベントを行っていて、1つはバトルグラウンドという
Guest
こうま、何か開発関連で業務改善できることはないかみたいなのを、こう気付いた時に、スラックで
Guest
投稿していくっていうのが文化があるんです。けれど、その時にいくつか、ちょっと議論議題をちょっと挙げさせていただいたものがあります。
Guest
で、そこはすごく面白かったです。なんか、皆さんの意見をこう聞けてこう。バトルグラウンドなので、戦いながらというか、
Guest
なるほど、
Guest
そんな感じでこう意見をぶつけ合いながらどっちがいいのかみたい、もっといい、あんりん、もっともっといいものはないのか。みたいなところで、
Guest
この週1でズームで会議をしていくっていうのがあります。はい
Guest
はいほど結構面白いですね、その中で、潜水さんはどういったものをあげたんですかね。
Guest
そうですね、1つはcrm
Guest
1つはですね。このLINEのnewsLINEnewsのデバッグを、この今までiosシミュレーターでやってきていたんですけれどは、い
Guest
ま、やっぱりatとかビューのデブツールスを使いたいなっていうのがあって、クロムでどうにかデバックできないのかっていうのを、ちょっと
Guest
バドルグラウンドで上げました。で、はいはいはい、その辺をちょっとバトルグラウンドので、皆さんに聞いたところ、どうやら。あの
Guest
サファリでコンソルログん、コンソサファリのコンソールで、ロケーションのhfを見て、クロムに入れれば、
Guest
とりあえず見れそうだということで見に行ったんですけれど、どうもそのビューとんビューのランタイムがえ、プロダクションビルド
Guest
されてるようで、はいはいはい、デブルスがま使えないっていうところで、それのビルドを変えなきゃいけなかったんですね。
Guest
で、それのビルドをするのに、ウェブパックのコードを変えてで、さらに
Guest
あのurlはこのサーバー取ってきているので、その実際の向こうサーバー上にあるファイルを参照しているので。
Guest
チャールズでプロキシして、ローカルのやつに移さないといけないので、そのビジョンのコードとビューのランタイムのコードがスプリットされていて、
Guest
それも一緒に変えなきゃいけないっていうところで。そうですね。スペの置換する処理の今までの手順を引にまとめたりとか、
Guest
そういったことをはいしました。
Guest
ああ、なるほどなるほど、いや、結構開発体験をあげるみたいなのも、そういったこうフラッとすスラックに書いた内容から進んでいったみたいな。
Guest
そうですね、はい、デブツールスなかったら、ちょっと僕、ビジョンのバグ直せなかったところ、
Guest
もしくは超大変だったところもあるので。そうですね。1つはなんかこうイベントが大量に発火しているので、パフォーマンス悪いみたいなのも、デブツールスがあって、
Guest
気付けたので。
Guest
あ、そうっすよね、うん、うん、うん
Guest
よかな。確かに
Guest
そうするだけならこう最悪。例えば、状態をコンスで出したらいいじゃんとかなるかもしれないですけど、パフォーマンスとかってなってくると、そういうのではできない領域なんで。
Guest
そうですね。しかも、ライブラリーの方で、大量にイベントが落ちていたというもので。
Guest
ま、結果的には、バージョンが古かったっていうのが理由だったんですけど、うん、はい、ちょっとそれやっぱデブツールスあるとこう。もっとキズ早く
Guest
気付けるので、デブツールスはやっぱ積極的に使っていきたいな。そう
Guest
ですね、思いますもう1つははい
Guest
で、もう1つの方は、
Guest
ライニュースは先ほどリアクトとビューで分かれていると言ったんですけれど、そのリポートが違って、さらにそれで古さも違ったんですね。で、ビューの方は古い方で、
Guest
リントがこうciで落としてなくて、このりイエリントに引っかかったら、ci無理です。みたいなことが行ってなくて、
Guest
その結構リントのエラーが放置されていたんですね。はいはいはい
Guest
で、ビジョンもそこそこま古めなところで、リントエラーが幾つか放置されていたので、このビジョンをせっかく新しい機能を追加するので、
Guest
そのせっかくだから、イエスリント系のエラーとか、プリティア系のフォーマットエラーとかは、もう全部直しちゃうということで、
Guest
ちょっと整理していました。で、その中でビューxのミューテーションが、この
Guest
引数で受け取ったステートを直接変更するスタイルで、そこがイエスリントが起こっていたんですね。引数で
Guest
受け取ったものを直接変更しないでみたいな選で。じゃ、これをどうしようかっていう悩んだところで、ビジョンだけ直すんだったら、とりあえずまファイルバイトで、
Guest
ルールを向こうがすればいいかなというところなんですけれど、まあせっかくなのでまあプロジェディン、
Guest
リポストリー全体で無効化すべきなのかなというところ、
Guest
今後bx使うところ、時にまたエラーが発生してイルで消してみたいなことはちょっとやりたくないな、というところで、バトルグラウンドで、
Guest
皆さんに疑問を投げてみたんですけれど、結果的にはですね。
Guest
と、その仮引き数名がステートっていう名前だったら、
Guest
無効化するっていうesリントの無効化ルールがあったので、それを利用しようということになりました。
Guest
はいはい、ああ、なるほど、1番合理的な感じがしますね。
Guest
そうですね、これ、本来普通のビューとかのプロジェクトもそんな感じで無効化してるんでしょう。
Guest
そうですね、基本的にどうしてもビーxのミューテーションっていうのは、その
Guest
あのステート直接書き換える必要が出てくるところなんで、まあそこは仕方ないかなと思いますね。うん、なんかpxがそういうものであるからっていうのが
Guest
もう
Guest
仕方ないところなのかなとは思います。うんですけど、まあその今の話みたいにそのファイル単位でえ。無効化してしまうか、なんか、あるいは
Guest
その全体をオフにするかって話になると、結構全体オフにしちゃうと、結局他のところの安全性が守られないっていうところがあるかなと思うので、まあ、1番楽に解決するのはファイル単位の話かなとは思いますけど、
Guest
なんか、1番そのステートの場合だけ無効化するっていうのは、かなりその販売としてはいい感じがしますね。
Guest
そうですね、なかなかスペートっていう引き数って、他のところでは
Guest
ちょ、むしろ使っちゃいけないようなそうであるのではい、うん、うん、そうですね。なので、ま、ステートっていう変数名だったら、向こうでいいんじゃないか、という議論に落ち着きました、
Guest
結構いい気がします。
Guest
バトルグランドの他に、あのもう1個モブプロってのがあるので、ちょっとそれをまたお話したい。
Guest
あの、ぜひぜひあ、
Guest
もうもうちょっとバトルグラウンドで取るところありましたら、
Guest
いや、一旦もうま、これ今のでいっちゃって
Guest
わかりました。はい、じゃあどうぞ。あと、もう1つなんですけれど、あの、LINEnewsのUITチームでやってる、
Guest
週1でやってるイベントで、モブロっていうものがあって、ニュースチームで。
Guest
例えば、なんか1つのことをこう誰かが代表して、画面共有とか。あと、vsコードのシェアリングの機能を使って、
Guest
一緒に全員で1つの画面見ながら、コーディングしようっていうのがありまして。はいはい、そこで、僕がインターンに参加してからしばらくやっていたのが、リアクトのテストを書こうっていう
Guest
ものがあります。
Guest
Guest
ラニュースのリアクトの方は、あ、これから新しく作るものは、ファンクショナル、コンポーネントで、ちゃんとテストも書くっていうのがルールで決まっているんですけれど、
Guest
そのなかなかテストの書くっていう経験が浅い。メンバーもいらっしゃるので、この学んでいこうっていうので、
Guest
モブブロモブプロっていうイベントがはいありました。で、これがすごく面白くて、例えば、それ
Guest
と、テストとかの議論だけじゃなくて、僕の今つか作ってるビジョンのシークバーで、ここで詰まっているんですけれど、
Guest
こうちょっと皆さんでどうにか見てもらえませんか。みたいな、そういった投げ方をもってきて、その時に僕の
Guest
ま、これは先ほど言ったバグとは違う。また、バグがあって、それちょっと皆さんで1時間くらい。皆さんで、ちょっと調べていただいたりとか
Guest
もして、なんとか。はい、1時間足らずで解決に持ち込めたので、モブプロっていうこのイベントはすごくいいなと思いました。
Guest
みんなでこう集まって、1つの行動を触るっていう機会もあったりしたっていうとこですかね。
Guest
そうですね、やっぱリモートでなかなかそういうところって難しいのかなと思いますので。モブプロをこう週1で設けてで、しかも、
Guest
ちょうどvsコードのシェアリング機能も、シェア。はい、面白かったです。
Guest
ちょっと、今のリアクトのテストのところについて、単純に興味があるんで、聞きたいんですけど、はい、多分LINEnewsの行動って、そこそこまあ前からある。
Guest
コードベースだと思ってて、なんかそうなってると、テスティングライブも過去に入れようとした形跡とかあるのかなとかって思って気になったん
Guest
ですけど、なんか、今って、リアクトのテスティングライブラリーって、まあ、そのリアクトのそのそちょ名前、直球のそのリアクトティスティングライブラリーってやつと、昔からあるあの、エアビーのエンザイムがあると思うんですけど、なんか元々エンザイムが入ってたとかってあるんですかね、
Guest
どうなんでしょう、ちょっと元々が分からないんですけど、今使ってるのはエンザイムでエンザの方。はい、エンザも入れてて
Guest
そうですね。今、新しく作るものは、エンザイムのコードをちゃんと書いていこうっていう流れですね。なるほど、
Guest
ちなみに、そのテストを書くって、なんかテスト書くのって2つあるかなと思ってて、いわゆるテストファーストの
Guest
その期待する振る舞いを先に書いた後に、ロジック書くっていうパターンと、まあ、普通に実装してしまって、それを担保するために、テストコードを書くっていうのが両方あるかなと思うんですけど、今はどどういった方法で
Guest
やってるんですかね。
Guest
そうですね、どちらかというと、後者の方で書いていらっしゃる方が多いのかなと思います。テストドリブではなくて、コードを書いてから、こう
Guest
テスト項目を書いていくで、あと、スナップショットとかも入れて、影響範囲はちゃんと確認するみたいなところですね。そういった運用
Guest
そうですね、スナップショップもちゃんと入れて、
Guest
あ、なかなかいいですね。
Guest
いいですね、なんか、そうやって、新しいところからだけでもテスト書いていこうみたいなのができると、なかなかモチベーションにもなりますし。
Guest
そうですね、リアクトの方は、あのタイプスクリプト化も進んでまして。
Guest
はいはいはい、元もjavaスクリプトオンリーだったんですけれど、リアクトの方はももっとモダにしていこうというところで、タイプスクリプトで、ファンクショナルで、
Guest
テストもちゃんと書いてっていうこう、もっとは補修な感じ、補修面を切り配ったような開発にシフトしていってるのは、すごくいいかなと思います。いいですね、
Guest
なんか、リアクトの部分では、コンポネント書く時でも、割とテストファーストで書くのも結構あるかなと個人的に思ったりしてて、
Guest
あの、なんでしょう。コンポーネントって状態さげ、ブラウザ上で状態を再現するのが結構めんどくさいやつあるじゃないですか。うん、今操作してこの操作して、この操作した時にこうなるみたいな
Guest
やつが。あの、多分、今ジェストテストランナーはジェストでやってるとは思うんですけど、あの、
Guest
ジェストのウォッチをしてやると、その手元でその状態を再現しなくても、テスト行動で再現できるってのも、単純に開発効率が上がるよなって思って思うことがあって、
Guest
なんかそういうのもやれるといいのかなとか、今ちょっと
Guest
聞いてて思ったりしましたね。なんか、私は手元で状態再現するのがめんどくさすぎて、テスト後足するっていうのが結構あるんですけど、うん、
Guest
うんこなんか開発していて、こう作っていく中で、ちゃんとかみたいなところですよね。確かにこれ
Guest
これチェックして、これチェックして、小でチェックした時の挙動みたいなのを毎回あのほっ、ほっとロードが行われるたびに、なんかマウスでポチポチやるのがめんどくさすぎて、テストコード書くっていう
Guest
結構あるんですけど、なんかそういうのもやりやすくなって、そうだなっていうのを今聞いてて、
Guest
確かにそこはすごくやった方がいいですね。
Guest
もし、それやるとめんめんどくさくないっていう方つあるから
Guest
ですね。しかも、あのホトリロードあの、してくれないので、アオシミュレーターで痴漢してるのではいいち際読み込みしてるので。そうですね、
Guest
それだったらよりそうっすね、なんか、せっかくテスト書くなら、そういう風に書けると、こうめんどくさくなくなりそうみたいなの。
Guest
そうですね、まさに、ちょっとそれもブプロで今度提案してみます。
Guest
てみると、面白いかもしれない。
Guest
ありがとうございます
Guest
あ、ありがとうございますいや、でも結構いいですねなんかこうなんか、動画自体の実装にも入りつつ、ま、いわゆるフロンテント的な議論も、そのメイン業務以外の部分で一緒にやっていけるみたいなのは、かなり面白そうですね。
Guest
そうですね、すごくLINEnewsのUITのメンバー、
Guest
すごく和やかな雰囲気で、すごくよくしていただいたので、そう色んなところで関わらせていただいたので、すごく勉強になりました。
Guest
今結構えービジョンでの開発の話とか、えとま、実際、LINEnewsでま、そういったえ、動画以外の部分のフロントエンドの話とかって、どういうことやってましたか。ってものを聞いてきたと
7. これからやりたいこと
Guest
思うんですけど、まとはいえもえ、今週でインターもえ終わりっていうところかなと思うんですけど、
Guest
どうですか。実際、インターンとしては、全部一旦やり切ったみたいな状態ですかね。
Guest
そうですね、ビジョンのタスクは1回もうリリース完了しましたので、1回1区切りというところなんですけれど、実は
Guest
あのアルバイトとして継続しさせていただけることになりまして。
Guest
そうだったんすね。
Guest
そこで、はい、もうすでにと新しいあるプロダクトをリプレイスしていくっていう、あのプロジェクトが走っていまして、
Guest
今その開発環境の構築から始めています。
Guest
あ、じゃあ、リプレースのもうほんとにど新規の次は開発っていうところはいすかね。
Guest
そうですね、今まで新機能の追加というともかん。シーバーで、体験させていただいたんですけれど、さらにもっと大きな
Guest
開発環境の構築から、ちょっとやらせていただくことになって、すごく楽しみです。ほうほうほうほ
Guest
うわあ、いや、それはいいですね。なんか、LINEnewsってどっちかというと、そのおっきなコードベースの中で1つの機能実をするって話だったんで、かなり対局な仕事になると思うんで、それはそれで面白そうですし、
Guest
リプレースみたいなものって、結構こうやりがいのある仕事でもあると思うんで、かなり面白そうですね。はいや、なるほど、
Guest
そうですね、しかもももっとせっかくリプレースするので、ガンガンモダンにしていこうっていうところで、はいはいはい、タイプスクリプトで、リアクトで、
Guest
ちゃんとテストも全部書いてで、もっとなんかこう。メンバーの方で、メンバーでこうやりたいことがあったら、どんどんもう入れちゃっていこうっていうところで、はいはいはい、
Guest
ストーリーブックちょっと面白そうだから入れようみたいな感じで、ストーリーブック入れたりとか。そうですね。なんか、
Guest
うん、
Guest
ciでちゃんと回して、ま。あと、LINEnewsもすごい。ガッチガチで試合回ってるんですけど、もっと改善できるところがあるだろうっていうところで、
Guest
新しいそのプロジェクトの方では、もっと完全自動化な感じの試合をどんどん入れていこうっていうところも進んでいて、
Guest
すごく今日面白いなと思います。
Guest
じゃ、結構なんか挑戦したいものは、ぶんぶん挑戦していこうみたいな。
Guest
そうですね、僕の方からも色々これちょっとやってみたいんですけれど、みたいなことも言えたりするので、すごく面白いです。
Guest
いや、なかなか面白そうですね、それは絶対面白い仕事なんか、ちょっと羨ましいなと思って
Guest
しますね。なるほど、
Guest
ほんといいタイミングでした。ちょうど、その案件の話が舞い込んできたのが、そのインターンの中盤
Guest
頃だったんですね。あ、そうなんはいで、センスが今ビジョンやってるけど、
Guest
じゃあビジョン終わったら次はそれかなみたいな気持ちで
Guest
そうです。そうですね、その頃はまだアルバイト決まってなくて、その残り3週間でまどこまでやれるかわからないけれど、
Guest
開発環境の構築からやれるのは、すごく貴重なので、是非やらせてください。というところだったんですけど、アルバイトとして継続できることになったので、もっと
Guest
もうそこまで完成のところまで行ける見込みになってます。
Guest
いいですね、いや、すごい楽しみですね、それ
Guest
はい、すごく楽しみです。
Guest
なんか、ちなみにそういった今、もう決まってるタスクで、その中でやっていくぞっていうの以外で、なんかこういったこととかも、これからアルバイトとかでやれたらいいなみたいなのはあったりしますか。
Guest
そうですね、僕インターンを応募する前からずっとUITのこの今、僕まさんに出演しているUIT INSIDEとかずっと聞いてきたので。あ、そうなんですね、は
Guest
はい、ただいまそ
Guest
僕僕、すごくちょっと楽しみにしていたんですけど、僕もその
Guest
まだバイトなので、できるかちょっとわからないんですけど、そういったポットキャストとか、もっとこうタスクフォース的なことも。
Guest
普通の普段の開発だけではなくて、取り組めたらなとちょっと思ってます。
Guest
いや、それはなかなか頼もしいですし、ぜひ、例えばワインサイドとかでもよければ、今後も出ていただけるといいかなと
Guest
思います。
Guest
じゃあ、あれですかね。プロジェクトの開発もしながら、なんかその他の活動もやっていけるといいかな、というところ
Guest
ですかね。そうですね、すごく面白そうなので、僕のメンターのおさんも、プレイbookuytplybookの仕事をタスクフォースで担当されていて。
Guest
そうですね。それもまた堀さん忙しそうなんですけれど、すごく楽しそうなので、僕もそういったタスクフォース的なこと、挑戦できたらなと思います。
Guest
まさにそれ
Guest
やっていけると面白そうですね
Guest
UITプレイブックについてはですねと、エピソード54で話しておりますので、もしご存知のない方がいらっしゃいましたら、ぜひぜひえ、そちらのエピソードを
Guest
えで3種類いただければと
Guest
思います。なるほど、
Guest
いや、なんかそういったこともどんどんやっていけると面白そうですね。
Guest
そうですね、すごく面白そうなので、ぜひ挑戦させていただきたいなと思います。
Guest
じゃ、これからのUIT INSIDEの出演にも、期待というところでしょうか。
Guest
もし、次のエピソードあったら、その時はぜひよろしくお願いします。ぜひぜひ
8. クロージング
Guest
ということでですねえ、今回はえ、セスさんをゲストに加えてですねえ、LINEnewsでのえーシーバーのえません、
Guest
LINEnewsのビジョンでのえし、シークバーの実装、およびえ、その他え、ラインのインターンにおいて、え、行ったフロントエンドの活動などについて聞いてきました。
Guest
ラインのフロントエンド組織UITでは、このようなえ、技術的なキャッチアップなどをえ、日々行っております。
Guest
例えばですね、外に出しているネタで言うと、ビュースリースタリなどは、実は社内勉強会から始まったネタだったりしていて、ま、そんな形で。お互いにキャッチアップしたりだとかま、自己検査みたいなのを
Guest
なっているので。ま、今後も、えー。ポットキャストっていう形で、外部にらせていけるといいかなと思っております。
Guest
また、最後になりますが、もしですね、このコードキャストを聞いてですね、ラインに興味を持ってくださった方は、カジュアルメラから実施しておりますので。えョと、最下部にあるえと、求人ページからえ、ご連絡いただきますと幸いです。
Guest
今ですね、ズランドメのカジュアル面談も行っておりますので。ぜひぜひえ、お気軽にご連絡いただければと思います。
Guest
というわけでえ、今回はですねえ、セスさんをゲストにえ、LINEnewsビジョンでの動画のシークバジストについて、え、プラスアルファを聞いていきました。え、セスさん、ありがとうございました、
Guest
ありがとうございました。