音声書き起こし
1. オープニング
Guest
こんにちは、
Guest
こんにちはこんにちは
Guest
今週もテンサイドやっていきましょう。え、まず、初めにこのポットキャストについて説明させてください。
Guest
このポッドキャストは、ユーザーインターフェースと、テクノロジーを愛する開発者のためのポッドキャストです。
Guest
最新の指標準の動向や、開発フレームーの変遷は、たまたuriやuxに関する言葉で、
Guest
日々フロンテの内容をキャッチアップすることを目的としております。ハッシュタグはシャープUIT、アンダースコアインサイド、
Guest
エピソードに対するご意見やご感想などありました。ら、え、お気軽にツイートしていただければと思います。本日のゲストは、
Guest
LINEポイントクラブを開発している。えきょうさんと、けいしさんのお2人に
Guest
タイプスクリプトへかのえ、LINEポイントクラブのリニアについてお話を伺いできればと思います。え、お2人よろしくお願いいたします
Guest
よろしくお願いしま
Guest
お願いします。
2. ゲスト紹介
Guest
それではですね、早速ゲストの紹介から入っていきたいと思うんですけど、え、まずはきよさんお願いできますでしょうか。
Guest
LINE株式会社、フロントエンド開発、センターUIT1室、フロントエンド開発3チームに所属している京商陽と申します。
Guest
現在、担当しているプロジェクトは、LINEポイントクラブと、LINElivecmsプラットフォームのフロントエンド開発です。
Guest
いや、ちょっと紹介説明ちょっと早口になっちゃいましたが、皆さんよろしくお願いいたします
Guest
はい、よろしくお願いいたしますお願いします。それでは続いてですねあもんさんお願いできますでしょうか。
Guest
はい、LINEグロス、テクノロジー、株式会社とUITチームに所属してる。ケシアモンと申します。
Guest
えと、きょうさんと同じく、LINEポイントクラブの方のフロントの開発を担当してますよろしくお願いします
Guest
はい、よろしくお願いいたします。
3. リニューアルの規模と範囲
Guest
それでは、早速お話をお伺いしたいと思うんですけど、今日ですね。まず、初めに今回リニューアルしたLINEポイントクラブについて、簡単にご紹介いただけますでしょうか。
Guest
もちろん、ご存知でない方も、結構まあいらっしゃるとは思うので。まず、LINEポイントクラブというサービスについて。まあ、簡単に説明は進めていこうと思います。
Guest
LINEポイントクラブは、2013年にLINEフリーコインという名前でリリースされたまちょうどLINE創成期に作られた、ファミリーサービスの1つですね。
Guest
で、その後に、2016年の4月頃ですね。LINEポイントという名前でリニューアルしています。で、
Guest
あとは今年2020年5月に、LINEポイントクラブという名前で、また新たにぎニューアルされております。
Guest
ええ
Guest
まあ、LINEポイントクラブの画面を見てない、見たことのない方も結構いらっしゃると思うんでま、画面見たい方は、お手元のLINEで、
Guest
グローバルナビの右の方にあるウォレットと呼ばれるタブをクリックして、
Guest
LINEポイントクラブっていう項目をクリックしていただけると、実際の画面見れると思うので、ぜひご確認ください。
Guest
でま、LINEポイントって、どういうサービスを提供してるかっていうと、ま、簡単に言うと、LINE版のポイントサービス
Guest
サービスです。フォンタとか、tポイントとかで、ポイントサービス用のサイトあると思うんですが、あれとほぼ同じような役割のものと思っていただければと思います。
Guest
提供してるサービスとしては、キャンペーンに参加して、LINEポイントがゲットできる機能、
Guest
あとは、自分が所持しているLINEポイントを使って、様々な商品が購入できる機能、
Guest
あとは、そのポイントの利用頻度に応じて、お得な得点が手に入るランク機能と、3つの機能を提供しております。
Guest
ちょうどつい最近なんですが、2020年の7月13日に、大型リファクターをやって、リリースしています。なので、今回お話する話ってのは、この大型リファクターの話に
Guest
おおということは、サービス自体のリニューアルが終わって、すぐにリファクターもしていたってことで、結構忙しいスケジュールだったんじゃないですかね。
Guest
そうですね、結構ドタバタしながらやってた感じですね。
Guest
てことは、サービスリニューアルに追中しながらえ、リファクタも進めないといけなかったっていう状況ってことですかね。
Guest
はい、その通りですね。なので、この5月の対応と並行しながら、今回のディファクターを行っておりま。
Guest
いや、それはかなり大変な作業だったと思いますけど、ちょっと詳しく、これから話を聞いていければなと思います。
4. 大型リニューアルの進め方
Guest
それでは、いよいよ本題のえ、実際のリファクターについてえ、概要からお話しいただいてもよろしいでしょうか。
Guest
じゃあ、ちょっと今回のディファクターについてお話ししていきたいと思います。で、今回のこの7月にやったリファクターなんですが、
Guest
社内で通称ディフ対応と呼ばれている。リファクターを行っています。
Guest
なるほど、岐阜太陽ですね、
Guest
はい、リフ対応ですねはいまこのリフ対応一体どういう内容かっていうと、LINEってwebビューで作られてるサービスたくさんあると思うんですが、
Guest
そのサービスを構築するために、コルドバベースの社内フレームワークを使って、作っていたんですよね。今まで
Guest
ま、それで運用されてるサービスも今も結構多かったりはするんですが、
Guest
ちょうど2018年の6月頃に、LINEフロントエンドフレイワープ、通称ディフというものがえとリリースされています。
Guest
LINEでミニアップを作るための、フレームワークですね。で、今年からちょうどま社内でもディフス買っていこうという取り組みがちょっと出てきまして
Guest
ま。それで、いろんなサービスが。古い。コルドバーベースの社内フレイバーから、ディフに移行するってこと。
Guest
今実施しているような状況です。なので、えと、今回のリファクターのメインテーマとしては、コルドバベースの社内フレームワークをリフにバイブレーションする。作業っていうのが、今回のリファクターの大きな目的となって
Guest
ます。
Guest
なるほど、それに合わせて、コードベースもがっつり手を入れようってのが、今回のリファクターのえ、kだったわけですね。
Guest
あ、当たりですね、はい、
Guest
確かになかなか需要家から承認を得ずらい
Guest
ま。こういったリファクターっていうのを、えま、プラットフォームの移行に合わせてやっていくっていうのは、プロダクトの寿命とかえ、伸ばす意味でも、結構いいタイミングだった感じですかね。
Guest
そうですね、あれ、ちょうど今回ちょっとタイプスクリップとのバイグレーションの話とかさせてもらうんですが、
Guest
タイプスクルトのマイクレーションやりたくて、しょうがなかったんですけど、タイミングがなかなかなくて、まあ、このタイミングだと思って、今回対応させてもらっております。
Guest
はい、なるほど、ちょうどタイプスクリプトがしかしたい欲求があるところにま舞い込んできたので、うまくがつんとできたみたいなところですね。
Guest
今、そうすると、タイプスクリプトかっていう話がありましたけど、現状はどんなスタックで、どういう風な形に移行しようと思ったかっていうところも教えてもらってもいいですかね。
Guest
あ、はい、ちょうどLINEポイントクラブのま、今回リファクターで色々変わってはきたんですが、
Guest
今までつかそのリファクター前に使っていたフレームワークですね。ま、大きく3つがあって、
Guest
まずホルドバベースの社内フレームワークま、これはさっき紹介したものですね。あとは、アプリケーション自体は、ビュージェースの2.0を使って、構築しています。
Guest
あとは、驚きなのが、ジェイクエリーが入っております。
Guest
それはbgsと共存する形でjklが入ってるんですか。
Guest
あ、共存というよりは、ビーjsで作って、アプリとは別にjcedだけで作られてるアプリがあるっていう、そういう状況でした。ま
Guest
あ、あ、なるほどなるほどは、いまそれぞれページごとに違うとか。はい、そういう感じですね。
Guest
あたりですはいはいはいで、まあ、2013年スタートってことをさっきお話させてもらったと思うんですが、まあ、
Guest
相当できる方もいらっしゃいらっしゃると思うんですが。ま、フロントエンド側の行動、結構数年前にの技術で作られたものなんで。ぱっと見たとき
Guest
なんだこれ古いなってなるような。コードでした。今まではいで、
Guest
今回まデフ対応とともに、えーま、開発環境のモダン化っていうのをえ、結構注力して行ったような形
Guest
開発環境のモダン化っていうと、どういったことを中心に行っていたんですかね。
Guest
今回のリニューアルに含めた内容としては、まあ、さっきのリフ対応っていうのはもちろん入っているんですが、それよりも、タイプスクルトの対応っていうものをえ、結構じゅ重要視して対応しております。
Guest
あ、これ、LINEポイントでの社ラプロジェクトで入った。ux系の支度なんですが、
Guest
体感速度向上試作って呼ばれてる。スケルトンスクリーンの実装と、画面繊維持にアニメーションで遷移する。インタラクションの実装ですね。
Guest
ま、それが元々入ってたんですけど、ま、ちょっとLINEポイント独自で作りすぎて、ごちゃごちゃしちゃってたっていうのがあったんで。
Guest
えと、社内で公開してるnpmで、公開できるように、チャラnpmパッケージ化っていうのを行っております。
Guest
あと、ほっとした内容なんですけど、まあ、ローカルの確認環境のリプレースっていうのを行っています。ま、これ何かっていうと、
Guest
古い案件のjs動作を確認するために、普通であれば、ノードサーバー使って、ローカルで
Guest
アプリケーション起動するような形が多いと思うんですが、実はLINEポイントphpでそれやっていて、
Guest
ああ、でもまあ結構古いやつだと、それこそブラウザーシンクとかもあんまり発達しなかった頃は、phpでやってる人も結構多くいいましたし、結構そういった名残りうちの車内だとよくありますよね。
Guest
そうなんですよ、で、それをちょっとリプレイする時期ちょっとえなくて、対応できてなかったんで、
Guest
今回phpにまェスのスクリプト読み込んで、実際に起動してspaを検証するって方法じゃなく、て、まちゃんと
Guest
今よくあるようなノードサーバーで起動するように、対応を行っています。そこのもフルーリプレイしてますね。はい、
Guest
なるほど、そう考えるとかなりアプリケーションコードから基盤まで手を入れてるんで、変更数もめちゃめちゃ多かった感じですかね。
Guest
当たりですね、もう相当ま、ファイル、ヘコストも多かったんで、もう相当がっつり、今回は変え変えていきましたね。はい、
Guest
ちなみに、もし行ってもいいならなんですけど、実際どれぐらいのファイル数の変更とか、行数の変更があったかとかって教えてもらったりとかできますかね。
Guest
はい、まあそれやっぱ気になるところですよね。で、一応これ公開しちゃいます。情報はい
Guest
まあ、実際にどのぐらいの規模間だったかというと、まず今回のリファクターなんですが、作業期間自体は4か月でした。
Guest
えと、大体ゴールデンウィーク挟んだので、日数はちょっと4ヶ月よりもちょっと少なめで、プラステスト期間でプラス1ヶ月、大体5ヶ月ぐらいの感覚で。で、作業自体はさっきま紹介
Guest
まされた2人ですね。ジブンターモンさんの方での2名体制で、作業を行っております。
Guest
対応タスク数なんですが、タスク立ち上げた時点で、120件ほどありまし。
Guest
おお、なるほど、結構立ち上げた時点ってことは、かなり積もりに積もってる状態からっすよね。そう
Guest
そうですね、もう、ほんとになんかこの今回のディファクターやる上でどんぐらい。作業必要なんだろうって洗い出したら、結局120件超えるという状況になっちゃいましたね。
Guest
で、実際にこの作業をする上で作ったプルリクエストの数なんですが、250件ありました。
Guest
ま、それで、変更ファイル数に関しては、70にファイルほど変更しております
Guest
で、変更行数は4万7000件超えるぐらいのボリュームでしたね。ま、なので、ちょっと他の方の作業と比較してないんで、ま多いのか少ないのか、自分判断しきれないんですけど、ま、個人見立てだと、ちょっと大きめのデファクターだったなと思っております。はい、
Guest
いや、でも実際そうっすね。結構新規のプロジェクトとかって作ると、まあ、フレームワークのコードとか。
Guest
まあ、なんかヤンロックとか、パッケージソンとか、いろんなファイルが作られると思っていて、作った段階で2万とか3万行いことって結構あるかなと思うんですけど、
Guest
今回に関しては、リニューアルっていう風な形となるので、ま、その辺りが全然ないって考えると
Guest
なんでしょう。ちょっと言い方あれかもしれないですけど、そのかさまみたいなのができないんで、かなり多い。ボリュームの
Guest
うん
Guest
こコードのアップデートになるんじゃないかなと私思いますけど、どうなんでしょうかね。
Guest
ああ、やっぱはたさんのでもその認識なんですね。なるほど、あ、ちょっと良かったです。はい、
Guest
いや、私もかなり物量が多めで、大変だなっていう印象を受けますね。やっぱり
Guest
そうっすねで、ま、今回ま物量多めだったんで、どんだけハードなことやってるんだろうと思われる方多いのかもしれないんですけど、
Guest
実はあんまりそんなことなくて、現場の方もま、今回今までって。LINEポイントクラブって、自分1人体制で、フロントへと対応してたんですが、
Guest
今回からちょうどあんさんに入ってもらって、複数に対して、まあやっとチームとして動けるようになった感じですね。はい
Guest
で、まあそれに伴って、なるべくまストレスなしで。作業ができるように。計画結構細かく組み上げたんですね。今回
Guest
とま、こういうやり方やれば、こういう順番でやっていけば、ストレスを感じるようなサイトエフェクトに合わずに済むだろうみたいな順番をちゃんと決めてから、
Guest
好きなもの選んでくださいって形式にしたんですよ。
Guest
なんで好きなことを好きなだけやって、まあ気が付いたま。ほんとに4か月たって気が付いた時に、あ、俺らめちゃくちゃコード直したじゃん、うえいみたいなノリになってたんで、
Guest
意外に現場の方はわわあとやってた感じなんすよね。
Guest
おお、なんかそれはかなりいいっすねえ、どうすか。あもんさん実際にノリノリでやってきたりしましたかね。
Guest
そうですね、なんか気づいたら結構あ、結構直してるじゃんみたいな感じで達成感ありましたね。
Guest
ああ、なるほど、結構リファクターっていうと、古いコードと向き合わないといけなくて、辛い、辛いところもある。作業かなと思うんですけど、なかなかノリノリでやってたっていうのは結構いい感じですよね。
5. 中長期で向き合う TS 移行
Guest
では、少しこっからは。テクニカルのことについてちょっと聞いていきたいなと思うんですけど、
Guest
実際今回タイプスクリプト以降っていう1番おっきなえ作業やったかなと思うんですけど、なんかどうやってやっていたとか。まあ、どんなふうに工夫していったみたいなのを聞きたいかなと思っています。
Guest
まず、初めにですねタイプスクリプト以降、どうやってやっていったかみたいなのを、簡単に説明してもらってもいいですかね。
Guest
はい、じゃあ、ちょっと今回対応したタイプスクリプトについて、ちょっと説明していきたいと思います。
Guest
で、
Guest
正直な話。今回のリファクターで、何が1番楽しかったっていうと、まタイプカト対応とテストコードの整備でしたね。正直話
Guest
で、ま
Guest
このリファクタ前の行動っていうのが、ちょうど。2016年末頃に、ディファクタして作成したものだったりするんで
Guest
ま。ビューの2.0使ってるにしても、結構古い。行動だったりしたんですよね。
Guest
で、あとはなので、タイプスクリプトでの実質はなし、あとは、テストコードの方もあまり時間なくて、全然整備できてなかったんで
Guest
ま、それがすごいちょっと悪い状況でしたね。はいまなので、今回タイプスクリプトとテストコードっていう意味で、色々対応していった感じです。でと
Guest
とはいえ、まさっきもお話した通り、結構これボリュームあるんですよ。今回のLINEポイントのバイグレちゃって。
Guest
で、
Guest
大型案件で一丁一席で、マイクレーションができる規模感では正直なかったので、
Guest
今回は中長期でタイプスクリプト化を進めるためのまず実装基盤ですねタイプスクリットをすぐに入れられるっていう実装基盤を整備して
Guest
でプラス。まあ簡単にts化ができる。ユキ関連のコードのts化っていうのを、
Guest
進めていった感じに、このラジオ聞いてる方で、まあ中長期うんだ量多いんで納得だっていう方と、あれ、なぜ中長期でやるのみたいな。疑問を持ってる方って多分絶対別れるとは思うんですよね。
Guest
で、そういった意味でちょっと説明していくと、まゼロからタイプスクリプトで実装するのと、イマスクリプトをタイプ、スクリトにバイブレーションすること。これだいぶ勝って実は違うんすよね。はい、
Guest
マイグレーションだとと、ゼベースだとまあ、そもそもぶち当たると、導入障壁の数がつまり課題の数ですね。が、全然違うっていうのがあります。
Guest
ま、実際に今回の対応で、えと、どういった問題があったかというと、まず、2016年度なんで、ウェブパックが2.0で、バベルがめちゃ古いやつという
Guest
問題がありました。その状態だと、タイプスト入れられませんってことで、まず、このウェブパックやバベルのアップデートっていうのにやりました。
Guest
あとは、さっきジェイクエリーって話もあった通りと、ジェイクエリーは何でビルドしてるかっていうと、グラウンドでビルドしておりました。なんで、グラント依存のアプリケーションで、tsを入れるために、じゃあ、グランドからどう引きは。そうか、
Guest
そういった課題が出てきたりしますね。あとは、古い設計のものなんで。
Guest
まあ、よくあるやつなんですけど、どんな方でも返却してしまう古い理由っていう結構ありましたね。今回、
Guest
あれをどういうふうに作り直すかとか。あまあそもそも、ェイスファイルの数としては、500ファイル超えていたんで、このLINEポイント。
Guest
ギファクタマからはい。なので、その500ファイルどうやって作業するの。みたいなところももちろんありましたし、
Guest
あとは、今の処理をちゃんと維持しつ、ついかに影響できないように、タイプスクリプトを導入できるかっていうのも、1個の課題としてはありました。
Guest
なので、ちょっとおま、すごいあうたら大きめな話なんですけど、ま、そういった課題があって、なおかつそれをファイル単位で
Guest
見ていくと、めちゃくちゃ細かいタスクがたくさん積み上がるような形になっちゃうんで。なので、
Guest
なんだろう。ほんとに。マイグレーションは、ゼロベースと買って、違うなっていうのを、今回はほんとに強く思いましたね。はい、ここからはま完全にちょっとこれ持論になっちゃうんですけど、
Guest
タイプスクリプトって、結局いろんなユーザーたちがに使ってもらいたいっていう普及させたいっていうま、大きな位置が、この実際にコトリビュートしてる方々に、
Guest
えの思いとしてあったと思うんですよ。で、それの傾向があって、今タイプスクリプトは中長期で、徐々にマイグレーションできるように
Guest
進化したと、私個人としては考えています。まあ、他の言語だとあまりないですよね。その
Guest
javaスクリットから、タイプスクールに移行するのが非常に簡単で、徐々にできるっていうのが、特徴してないとは思っているので、うん、うん、
Guest
あんまないと思いますね。
Guest
なので、まあ、他の言語のマイグレーションキャラと、もちろん簡単なんで、一気にやっちゃいなよって、やっぱなっちゃったりはもちろんするんすよ。もちろんするんすけど、
Guest
結局、マイグレーションは、マイグレーションでま言語レベルのマイグレーションっていう扱いのものになるんで。
Guest
まあ、業務タスクの種類としては、もうほんとにパールのアプリケーションをジャバにマイグレーションするのと、
Guest
イマスクリップとタイプ、スクリトにバイグレッションすると、カテゴリーとしては全く一緒なんですけど、うん、うん、はい、うん、
Guest
まあそれがあるんで。まただ、パールからジャパンにマイグレーションする場合ってま。それのために人員一気に増やして、集中開発して、短期に終わらせるみたいな。やっぱ、やり方をやると思うんですけど、
Guest
逆にブスクの場合って、中長期のマイグレーションできる強みがあるんで、
Guest
もうその今回はその強みを生かして、中長期計画ということで、立てさせてもらいました。ま、一応そういう流れで中長期
Guest
いや、でも、きょうさんの持論はすごい。今のタイプスクリプトの、
Guest
そのツールキットの特性に合っていると言いますか。結構昔とかって、タイプスクリプトを使う人だけが使ってる頃って、やっぱりま厳密さを求める。あまりあんまり
Guest
そのま移行の場合だったら、緩くていいんじゃないか。みたいな話とかってあんまりなかったかなと思うんですけど、やっぱりそれはユーザーベースもそうですし、まあ、その多分言語としての進化みたいなところも
Guest
含めてまどんどんjsと共存しやすいようなふうに作られているのがま、文化としてもそうですしま。技術としても、そうなってるっていうのは、すごい特徴かなと思いまして。
Guest
なんか、ほんとにタイプスクリプトぐらいじゃないかなって思ってるんですよね。この中、長期でバイグレーションできるように、こう並行して進められるものっていうのはま、それがあるんで。うん、
Guest
やっぱそこの強みっていうのは、やっぱタイプスクルの1個の。ほんとに魅力であるかなと
Guest
はい
Guest
ま、こういう形で。まあ、中長期の対応ということで、今回進めさせてもらってます。
Guest
で、
Guest
ま、そもそもタイプスクリプトどういう目的で、あなたたちは導入してるの。っていう思ってる方もいらっしゃると思うので、ちょっとそちらのお話させてもらおうかなと
Guest
おります。ま、フロントエンドエンジニアって、ま、たくさんいらっしゃると思うんですけど、まあ、色々な方ま、考え方持ってる方いらっしゃって。
Guest
まあ、もちろんタイプスクープとは恩恵が強いので、積極的に入れていきましょう。という意見の方もいれば、
Guest
理屈では、頭ではちゃんとそのメリットっていうのを理解できてるけども、心のどこかで迷いや不安を拭えないまま頑張ってる人。それと、戦ってる人ってのも、まあ、もちろんいるとは思っています。はいで、
Guest
私自身もま、正直今回タイプスクリプトやろうぜって超言い始めてんのが、2019年の末頃から、
Guest
あ、2020年頃からね、2019年の前半ぐらいはまだ結構迷ったんすよね。実は自分の方も
Guest
あ、ほんとに大丈夫なのか、うん、いけるのかみたいな形ではい
Guest
で。まあ、そんな中。2020年になって、今はもうじゃんじゃんts化やっちゃいましょう。ってことで、声あげてやってたりはするので、
Guest
まあ、そういうふうに心変化があった人間が一体どういう目的で、タイプスクールトを導入してるかっていうのをちょっとちゃんと話していこうかなと思っております。
Guest
はい、今回のタイプスproの導入目的なんですが、まあ、いろんな恩恵があるんで、いろんなメリットがあるだろうっていうのはもちろんあると思うんですけど、今回
Guest
1個に絞ってます。私たちとしては、はい、ま。大きなスローガンとしては、新しいメンバーが古い技術を勉強するよりも、
Guest
モダンな技術で、即戦力になる環境を整備すること、それを第一の目標としています。ま、これちょうどあのんさんのから教えてもらった言葉なんですけどね。
Guest
はい、もう完全にあ、で、ただこの言葉にめちゃくちゃあれ、共感したんすよ。自分
Guest
でこれをどんどんどんどん。考えをやっていくとま、色んなちょっと答えが出てくるんですけど、
Guest
まず、このモダンな技術で即戦力となる環境を作って、新しい人を迎え入れましょう。っていうのは、
Guest
新しいメンバーを迎えるための運用体制と、コード整備を行っていきましょう。ってことになります。
Guest
で、それって何を指すのかっていうとま、チームビルビンビングだったり、もうチームメンバーのメンタルケアができる環境をちゃんと作っていきましょう。っていうことに、繋がると思いま
Guest
で。私自身が結構そのメンタルケアってものにを頑張ろうと思っている
Guest
ような人間なんで、すごい共感して、じゃあ、もうこれをほんとに1番の目標と抱えて、タイプスクスの導入をやっていこうっていうことで、決め
Guest
で。チームメンバーのメンタルケアまチームのメンバーたちがちゃんと開発ができるような環境を整えるのに、1番適していたのが、もうほんとにタイプスクリプトタイプ、スクリプトの特徴としては。ソースコードはもちろん変わるんですが、それ以上に。
Guest
チームの仕事の仕方、ワークフローがのにも影響を与えると、私自身はすごい思っています。まあ、まず今回のLINEポイントの例で言うと、
Guest
まあ、レビューの質が一気に上がりましたね。タイプ作ると、今までって結構ラフな感じで。コード確認して、オケーオッケーみたいな形になってたんですけど、
Guest
タイプスクリップを入れることによって、
Guest
この方でちゃんと返却するっていうのを意識した上での形になるので、まあ、そもそもまずそれを意識した上での設計、今までの古いちょっとダメな
Guest
jsの設計を直すとか。そこらへんも。影響が入っていた実際で、
Guest
それをやる上で、じゃあここは。今こういう仕様があるから、こういう風にやっていきましょう。とか、ここはタイプスプロの方として、正しくないと
Guest
でえ、もっとちょっと厳格やっていきましょうか。そういった議論がすごいできたんで、デビューの質自体は上がってきまし。
Guest
ああ、ほうほうほうということはあれなんですかね。ま、そもそもタイプスクリプトいこに移行することによってま。自然とえ、高品質に対する意識がより高くなるみたいなモチベーションもあったっていうところですかね。
Guest
あ、そうですね、もう完全にそれを期待してのタイプスクリプト以降でしたね。今回はあとよくタイプスクリプトの特徴で出てくるのが、作用コストの削減って話が
Guest
まよく出てくると思うんすよ。
Guest
で、自分の中の考え方としては、作業コストの作品って、結局環境を綺麗に整備して、メンタルケアができた付加価値の1つに過ぎないと、自分は考えているんで
Guest
ま、チームをちゃんと変えたって部分がなし得た時に、この作業コストの削減っていうのは、やっと表面上に現れると。なので、今回はまあ、長期計画ってこともあるんで。作業コストの削減自体は
Guest
調子がして、そんなに高いkpiとしては、持ってないです。作業コストは、もう最悪削減できなくてもいいなって、
Guest
もう作業コストの削減というよりは、メンタルケアもそっちの方を重要していこうで、そのメンタルケアを上げることに、作業作業コストの削減というのは確実にできる。であ
Guest
ていう考えのもとこの目的っていうのは立てていますね。
Guest
いや、そう言い切れるのはめちゃめちゃ正直かっこいいっすよね。
Guest
あも、すいません、なんかもうなんか自分き取りよりみたいな感じもあるんですけど、ありがとうございます。はい、で、
Guest
今ちょっと作業コストの削減って話したと思うんですけど、ま、削減は一応目標としては立ててないもののま、
Guest
コストの削減はできると思ってます。一旦、自分の方で作業コストの削減による投資コストの回収どのぐらいできるんであろうっていうのを一応計算出してたりします。
Guest
LINEポイントのLINEポイントクラブに関しては、目標値として2年6か月ぐらいあれば、その
Guest
投資したコスト分を回収できるであろうというちょっと目安を今立てています。で、まあそれの目安立てる上ですごい重要なのが、作業人数と作業頻度が
Guest
作業人数と作業頻度が多ければ多いほど。短期で、投資コストの回収ができます。ただし、
Guest
作業人数が1人で作業頻度もそんなにないとかであると、多分、投資コストの回収5年とか、6年とか普通にかかっちゃったりはするんで。
Guest
なので、もしかして、導入しを検討してる方で、もう1人でやってるっていう方に関しては、
Guest
そうですね、投資コストの回収ちょっと難しいかもしれないんですけど、
Guest
ま、今後人を増やす計画があるんであれば、その増えた人たちのメンタルケアには確実に繋がるんで、ま。タイプスクリートの導入は超おすすめします。
Guest
作業コストの削減が、まあ、実際まま一応こういう計算出してて、叶わなかったとしても、
Guest
結局精神上のストレスの軽減に繋がるのであれば、まあよしと自分はしているんで、
Guest
ま、
Guest
簡単に言うと、そのストレスの軽減が稼働コストで変えるんですよ。稼働コストの年によって実現できるっていうのは、正直言って、めちゃくちゃ熱い話。自分としては、
Guest
で、自分としては、今の仲間と未来の仲間を救うために、ハイプスクリプトを入れようっていうのを言っていってるので、まあ一応まあそ。
Guest
今からちょっとタイプスクリと今悩んでるけど、入れようって思ってる方は、もうほんとに仲間と未来、もうほんとに今の仲間未来入ってくる仲間を救うために、タイプストを入れるっていうのを
Guest
心に持つと、すごい導入しやすくなると思います。はい、
Guest
いやなんかただ大体こういったts以降とか、リファクタリング系ってま。どうしてもビジネス側との都合とかもあるんで。まあ、理屈で何か説明したりとか、コストを返すっていう話になりがちかなと思うんですけど、
Guest
まそこを。メンタルケア特に全体のメンタルケアとか生産性
Guest
ま、それによる。パフォーマンスがしっかり出るようになるみたいなところを、考慮してやれるってのは、結構あんまり組織としてもないと思いますし、やっぱりそのチームとしても、そういった文化ってあんまりないと思うんで、そこはすごい。
Guest
なんか、今の仲間と未来の仲間を救うために、やるんだっていう風に思い切れるってのは、やっぱりその今の開発チームの良さとか、
Guest
ま、そのリーダーのリーダーシップの強さみたいなのが現れてる故なのかなと思って、すごい
Guest
いい開発風景だなと私は感じましたね
Guest
まあ、ちょっと変わり者なんでってのもありますけどね。はい、
Guest
いや、でも、この話を聞いて、やっぱりそこはすごいきさんの強みですごいところだなと改めて思いましたね
Guest
ここまでですね、実際にタイプスフト以降を始めるにあたって、
6. 大型移行を円滑にする TS テクニック
Guest
まあ、どういった。マインドでもって臨んでいくかとか。どういう風に進めたかっていう話を聞いていったかなと思うんですけど、ちょっとここからは技術的な内容というか、
Guest
タイプスクリプト以降にあたって、実際どういった形で取り組んでいったかとか、ま、どういった風に手を付けていったかっていうところを。ここからはアモンさんに聞いていきたいと思っているんですけど、
Guest
まず、どういうふうに進めていったかとか、紹介していっていただけますでしょうか。
Guest
今回ちょっとds対応したタイプ、スクリップ対応した上で、ま、結構いろんなことをやってきたかなと思うんですけど、と
Guest
ま、メインにちょっと考えていたのはま、結構今回って、その先ほども話してたように、まリフの対応だったりとかま色んなことが並行して進んでいるので、あまりこの構造そのものをなんかガラッと変えるようなことをあまりしたくなかったっていう
Guest
ところがありました。なので、あとー、ジャバスクリプトとま並行して書けるとかっていうようなところとか。ま、今までのバベルのトランスパイルドはそのまま使いたいとか、
Guest
なんか、あまりこう。大きくガチャっと変えないようなことをちょっとポイントとしていくつか、ちょっと紹介していきたいと思います。
Guest
はいと、まず一個目なんですけど、えと、タッとテエコンフィグの設定で、ま、アロージェスっていうオプションがあると思うんですけど、ま、こちらを有効にして
Guest
いました。でま、これをやんないと、そもそも、あの、thevskpトのビルドが通らないみたいな話もあるんですけど、ま、これがちょっとまず
Guest
大前提にあるような形となります。で、次になんですけど
Guest
とターゲットの方をまes2019ま、今回はes2019にしたんですけど、
Guest
まその先程言ったような。まバベルで、今、トランスパイルes5にトランスパイルをしているような状況で、タイプスクリプトの方でも、多分ターゲットイs2015とかes5とかにすると、
Guest
まあ、そのそのコードにトランスパイルをしてくれるんですけど、もし何かバグが入った時に、これは何が原因なのかっていうのがちょっと
Guest
切り分けがしづらいかなと。もしかしたら、そのタイプスクリプトのトランスパイルによる。なんか、変なコードが入って、それが悪さをしているのかもしれない、みたいなところをま、
Guest
疑うようなことがあるかもしれないので、ま、今回はちょっと
Guest
それをなるべくそういうなんか、要素をなるべく排除したかったっていうこともありましてま、一旦es2019のままバベルに
Guest
通して、イエスをタランスパイルをしてもらうような形にしてます。次ですけど、ビーのデコレーターみたいなものって、結構今
Guest
なんか書いてる方も結構多いかなと思うんですけど。そういったものはちょっと今回は採用しないようにしました。
Guest
これはですねと、ビーの3ビュー3でま。こういうデコレーターとかっていうな、使用がま。なんかrfcとしてはあったんですけど、それがまあ採用されない。
Guest
入らないってことになったので、ちょっとここで。もし入れたとしても、またなんかそれを戻さなきゃいけなくなるかもしれないとかま、そういうことをちょっと考えて、今回は見送りにしました。
Guest
はい、で、4つ目なんですけど、
Guest
まタイプスクリプトを導入した時にまちょっとなんだろう。型のチェックも一緒に走ってしまうので、やっぱりここビルド時間が伸びちゃうみたいなところが、やっぱりちょっと
Guest
ビルドしてみて、やっぱり長いなみたいなことをちょっときょうさんとも話してて、そこでちょっとなんとかしましょう。ということで
Guest
と、今回はフォーク、テエチェッカー、ウェブパック、プラグインって、まあ、よく使われるものだと思うんですけど、
Guest
ま型のチェックとま、実際のトランスファイルをま別のプロセスで並行して、走らせることで、ちょっと早くしましょう。みたいなものを今回は入れてます。
Guest
で、ま5点目なんですけど、ま、今回テストでまカルマが入ってはいるま入ってるだけの状態だったんですけど、ま、こちらをジェストの使った構成に
Guest
書いていますと、多分、ビューだとジェストを使うのが一般的なん
Guest
そうっすね。ビーローダーが元々実装が使用だったえみたいな時代にですね。ビージェストが比較的。実際の実装に近いっていう内容でえ使われていたりした
Guest
という認識ですね。
Guest
なんで、ここもさっき言った。まあ、他の人が入った時になんだこれってならないように、ま、一般的な光線に近づけようっていう。まあ、意味もありまして、ここはジストに移行しています。
Guest
で、テストがまほぼ書かれていなかったので、ま、ここの移行コストはまあほぼなしっていうことで、まあ、とりあえずぽんと入れることにしました。はい
Guest
で、6点目え6点目は、
Guest
トゥトゥーの方を。今回自分たちで定義して。そうですね。ま、どうしてもタイプスクリプトに書き換える時に、
Guest
どのモズというか、ここを直したらこっちの方チェックがダメになって、これを直したら、さらにあっちがみたいなことが結構怒りがちかなと思うんですけど、
Guest
まずはちょっとそのファイルだけの変更にとどめておきたいみたいなこととかも結構ありますし、そのためにちょっと1回エにで
Guest
ちょっとなんとかしておこうみたいな、ちょっとお茶を濁しておこうみたいなことはあるんですけど、ま、ただ絵にって書くだけだとちょっとなんでしょう。この後、また忘れた頃に見たら、
Guest
なんだこのコードはみたいな風になってしまうかなと思うので、ここも。また、あのトゥードのtでジェネリックスでま。本当は何をしたかったかみたいなところを
Guest
書いてで、一旦ちょっとまちょっと置いときましょう。みたいなことをやるようにしてます。
Guest
で、最後ここれは7点目なんですけど、これは花谷さんに教えてもらったところなんですけど、結構ビューのsfcでtsを導入すると、
Guest
なんかどうしてもちゃんとしてるはずなのに、ビルドが通らない方がおかしいみたいな時がありましてま。こういう時は、コンピューテットにいちゃんと帰りを書くと、
Guest
あのタイプチェックがうまくいくよみたいなことを教えてもらって、これが結構いろんな面で助かりました。
Guest
あ、いえいえ、こちらこそえお役に立てたなら良かったかなと思います。
Guest
なんか、今ここまで7つえ紹介してもらったかなと思うんですけど、ちょっと私の方でts以降で、すごい気になっているところがあって、ちょっと1個質問したいなと思うんですけど。
Guest
ジェイクエリーの部分があるっていうのを、ちょっと冒頭にきさんがおっしゃってたかなと思うんですけど、ジェイクエの部分って、移行にあたってどうなったのかとか、あと、tsの
Guest
え部分とかもあるかなと思うんですけど、今どうなってるかっていうのをちょっと教えてもらってもいいですかね。
Guest
はい、そうですね、まだちょっとジェークエリーを使っているコードがまき、少し残っているところもあるんですけど、
Guest
ま、具体的にちょっと言いますと、例えばなんだろう。
Guest
ジックリのプロキシっていうま、関数ディスを正しく、ちょっと引きます。ために使うようなものだったりとかっていうのは、ま、ファンクションのあのバインドっていうのを使ったりとか、
Guest
後は、オブジェクトをまマージするために使ってるxテンドって言われるものはま、普通にオブジェクトは、サインに置き換えができるみたいな
Guest
行動が結構あったので、ま、その辺はもう普通にdjceというか、ま、普通のjavascriptに置き換えるような形でやってます。
Guest
多分、エセの方は厳密に言うと、オブジェクトはサに変えられないんじゃないか。みたいな話も多分あると思うんですけど。ま、ポイントで使ってる使い使ってる使い方的にはま、大丈夫だったっていうところで、今回は1個押しちゃったような
Guest
感じですね。結構なんでしょう。その2013年に出した時みたいなリリース当時だと、結構ブラザのサポートの状況とか、まあ、フロントエンドのツール回りとか
Guest
でま、結構ェクエリ使ってるよね。みたいな部分は結構多いかなと思うんですけど、まあ、結構今のじゃバスクリプトで普通に置き換えられるよね。みたいな行動も多いし、
Guest
なんかテストコードだ書きつつ、まあ、実際の動作3つで1個ずつ。まあ、ちょっとはがしていくような形で、今回は
Guest
ジェックエリアをちょっと脱ジェイクエリという形で進めていきました。
Guest
なるほど、なるほど、結構ここであのジェスト入れたのが聞いてそうな感じがしますね。
Guest
そうですね、結構このエクステンドとか、オブジェクトアサイン周りは結構これで結構助かったかなと思います。
Guest
いや、結構いいっすね。なんか、そういう風に新しく入れた仕組みがうまくワしてるっていうのは、かなりいいことだなと思いますね。
Guest
ちょっとこれもう1点聞きたいんですけど、ちょっともしかしたら、社外の人だと、経験ない人もいるかなと思うんで。
Guest
ですけど、今回。そのコルドバの駅版からリフエの移行を行ったって話があったかなと思うんですけど、リフって私、ちょっと最後に触ったのが昨年なんで、ちょっと
Guest
分からないところもあるんですけど、当時はcdnから読み込んでえ、動かす方法しかなくて、タイプて、片定義とかも
Guest
なくて、結構自前でプロジェクト内で書いてたりとかしてたんですけど、その辺りって、今ってなんか改善されていたりとかま、なんかこういう風にやりましたよ。みたいなのって、
Guest
あったりするんですかね、ちょっとそこも教えてもらってもいいですかね。
Guest
はい、こちらはですね。ま、最初のまおっしゃる通り、えとcdnで配布されている
Guest
ものなので、ま、片定義が当然ないっていう状態から始まったんですけど、ま、こちら。あの、最初はもうプロジェクトの方、LINEポイントクラブのプロジェクトの方で、
Guest
ま自前で
Guest
ごりごりと片定義を変えて対応していたんですけどと7月にですね。リフのnpmパッケージがリリースされまして、
Guest
で、こちらをえ使って、あ、ポイントクラブの方では、片定義のみとして使うようにしてます。
Guest
と、というのも、npmのパッケージが今、エクスペリメンタルですよ。っていうことになってるので、ちょっとこのプロダクトに入れるのは、ちょっと怖かったっていうところも
Guest
ありましたので、ちょっと。あの、今回は片手木だけではありますけど、と使うようにしました。
Guest
うん、うん、うん、うん、なるほどなるほど、sdk自体はじゃあそのステーブルな
Guest
え。安定しているものを使いつつも、片定義のまあ、自慢での定義は防いでえ、いい感じでコーディングしていくってのができたって感じですかね。
Guest
そうですね、はい、なので、結構ここま公式の片手を使っているっていう安心感が結構大きいかなと。
Guest
なので。リフのsdkのnpmパッケージ版が出てますので、皆様是非ご利用いただければなと思います。
Guest
なんか、ちょっと全然意図せず、宣伝みたいになっちゃいましたけど、いや、情報ありがとうございます。もし、今えリフで開発してる人とかがいたら、
Guest
よかったら、パッケージ版も使ってみてもらえればと思います。
Guest
あ、そういえば、ちょっと宣伝的な話っていうところで、1点思い出したんですけど、
Guest
今回え、amさんに話してもらったタイプスクリプトのコーディングの工夫みたいなところ
Guest
で、以前イベントか何かで話されていたかなと思うんですけど、ちょっと多分、詳細の行動での取り組みとかっていうのを、スライドベースで見たいとかって人もいるかなと思いますので、ちょっと紹介してもらってもいいですかね。
Guest
わかりました、
Guest
以前ですねと改めて考える。フロント、エンドライブラリー、アンギラ、ビューリアクト、ジェイクエリーなどなど。みたいなところのえと、共有のlt会っていうところで、
Guest
ま、今話したような。大規模回収の裏で、dipスクリプトとテスト導入を進めた話というタイトルで、今回はあとお話させていただきました。
Guest
なんか、今話したような内容とかが、あのま、ちゃんとスライドにまとまって公開されているので、ぜひチェックしてもらえればなと思います。あとは、
Guest
えとラインのエンジニアブログの方でもと今回タイプスクリプトの何も使わない方がいい理由みたいなところをまつりて、ツリーシーキングの観点で紹介します。ということで、
Guest
こちらの方も記事を書いていますので、よかったらチェックしてみてください。
Guest
ショートの方にですねえ、スライドの埋め込みというrl貼っておこうかなと思いますので。もしよければ、ショートの方ご覧になっていただければと思います。
7. 手応えとこれから
Guest
最後にですね
Guest
ここまでで、2年半のプロジェクトの中の第1フェイズが終わって、これからどんどんえ。tsとしてのコードベースを変えていけるようになったっていうところかなと思うんですけど、も
Guest
その第1段階を終えてて、え、終えてえ、現状の手応えとか、え、今感じてることとか、え、これからに向けて思っていることがあれば、ちょっと聞いていきたいなと思うんですけど。
Guest
ええ、よければ、まずきょさんからえ、お話をお伺いできますでしょうか。
Guest
はい、そうっすね、
Guest
手ごまず手応えっていう話なんですが、手応えは間違いなくありました。
Guest
そもそもこれ中長期計画ってことで立ててるん。
Guest
実際に目標としている自分が目標してるビジョンに、チームが変わるところまでをほんとに
Guest
ただ2年経ったり、3年ぐらいで見てる。
Guest
ええ、
Guest
今第1段階が終わった段階でゴールに向かって、どのぐらい。
Guest
なんだろ。歩みが進んだかって見た場合に、当初の想定よりも全然進んでるような感じなんですよね。この感じで、多分2年半コスト回収なんで、
Guest
一応今対応コストとしては、
Guest
半年を一応見てたりはします。で、ただ別の開発があるんで、ま、そっちに偽装とられて、結局多分期間としては1年ぐらいかかるんじゃないかなっていう見込みで、
Guest
今計画はしてるんですけど、
Guest
そうですね。で、今回の初回のタイミングで、既にちょっとアンさんに調べてもらったら、tsタイを15パーセントほどもできてるっていう
Guest
あ、話はもらってるんで、あとは、それに対してどういう順番でまだ提出ができてないものを対応していくかで、そのおっきな課題となるのが
Guest
まあ、さっきお話出てたデコレーターの件と、あと、ビューxのタイプとかの件ですね。
Guest
あれを今考えてる最中っていうのが、今のステータスにはなりますね。はい、
Guest
いや、それはそれでなかなかやりがいがあって楽しそう。
Guest
そうですね、ちょっと笑い出ちゃうぐらい楽しみです。
Guest
まなので、そうですね、ま、ちょっとやっぱ歩みはちょっとゆっくりはなっちゃうんですが、確実に。タイプスクリート化を進めていって、
Guest
ほんとにもうみんながストレスを感じない、そういったチームを作っていければなとは、今思ってるところです。はい、
8. クロージング
Guest
いや、特にえ、デコレーターとおどうするかとか、bleどうするかみたいな話はま、これからb3が出ていくにあたって、また新曲とかも結構出てくるかなと思うので、
Guest
ちょっとえ。もしよかったらですけど、このtsか対を始めたものが、次のえ、半年とかでどうなったかっていうのはえ。また、よくよかったら、フォトキャストでえ、聞いていければなと思いますので。
Guest
ええ、ぜひぜひその時は出演、またお願いできればなと思います。え、今日はほんとにありがとうございました。
Guest
というわけでえ、本日はですね
Guest
LINEポイントクラブにおけるタイプ、スクリプト以降を含む。え、巨大ファクタリングの全望について、
Guest
きょうさんとアモンさんのお2人についに話していただきました。
Guest
ラインのフロントエンド開発組織UITでは、このようなフロントエンドに関するえ、議論やえ、学びえ、ラレッチの共有などを日々行っております。
Guest
今外に出ているもので言うとですねえ、ビューススタディやえ、ゴールデンウィークの自由研究などはえ、社内的に始まった企画を外にアウト
Guest
としたものなので。え、もし、これからもえ内部で学びが生まれたら、このホットキャスやミートアップなどで、え、どんどん発信していきたいと思っております。
Guest
またですね、このポッドキャストを通じて、え、ラインのフロントエンド組織に興味を持っていただいた方は、え、正のと家にあります。え、採用のえーリンクがえございます
Guest
こちらからですねえ、アクセスいただければですねえ、カジュアル面談からでも受け付けておりますので、え、もし軽く話したいです。みたいなのがあれば、ぜひぜひご連絡いただければと思います。
Guest
例えば、きょうさんのにえきさんの実際のえ、熱い思いについて聞きたいとか。え、あのさんが今回
Guest
たテクニックについて聞きたいとか。え、詳しい話があれば、ぜひぜひえ、お気軽に採用サイトからえ、ご連絡いただければと思います。
Guest
というわけでですねえ、今回はえきょうさんとあのんさんとともにえ、LINEポイントクラブのえータイプスクプト以降についてえ、話をえ、聞いていきました。え、お、2人ともありがとうございました。