LIGの開発部門に集う、スキルも年齢も違うエンジニアたちによるディープで自由な「LIGエンジニア座談会」。好評につき、第二回が開催されました。
今回のテーマは「Webアプリトレンド」。AWSの話からWeb3まで、それぞれの経験や知識を出し合いながら、ざっくばらんに語ります。
高遠 和也(づや)エンジニア。1983年生まれ。SIerとしてJava、C#等の開発案件にエンジニアとして従事。その後LIGに入社し、バックエンド/フロントエンドエンジニアとして多種多様な案件に関わる。 |
菊池 裕之(おきく)エンジニア。大学卒業後、大手SIerにて組み込み系エンジニアとして従事。その後、IT業界から一時離れるものの、SES企業にてサイドエンジニアとしてチャレンジ。2020年からLIGにジョインし、様々な案件のテクニカルディレクター並びにプロジェクトマネージャーとして参加。 |
山上 修(がみさん)エンジニア。武蔵野美術大学卒業後、デザイナーとして活動。徐々にWeb制作に関わるようになり現在はインフラ・バックエンドエンジニア。Web広告事業や大手ECサイト、大手旅行会社のシステムエンジニアを経てLIG入社。入社後はTech事業のマネジメントに従事。 |
カンファレンスはトレンドをつかむにはいい機会。勉強し続けなければ食べていけない
おきく:今回のテーマは「Webアプリトレンド」ということですが、僕がトレンドをつかむ手段はオンラインカンファレンスが多いですね。11月末には「AWS re:Invent 2022」がありますが、2021ではFigmaからReactのコンポーネントコードに変換できる「AWS Amplify Studio」が発表されたんですよね。
づや:へぇ、そうだったんだ。知らなかったですね。
おきく:づやさんはカンファレンスはチェックしてますか?
づや:AWS関連はたまに見ますけど、「re:Invent」はないですね。
おきく:2021ではノーコード機械学習サービス「Amazon SageMaker Canvas」も発表されて驚きましたね。
づや:機械学習分野は僕も昔少し勉強したことあるんですけど、理論が難しくてつらかった……。モデリングするための計算手法もいろいろありすぎて、何を選べばいいのかわからなくて。
おきく:たしかに。でもAmazon SageMaker Canvasを使えば、誰でも機械学習を使って時系列予測が出せるみたいですよ。AWSには「AWS Certified Machine Learning – Specialty」っていう資格もあるので、これを持っていたら機会学習系のサービスの案件獲得にもつながるかもしれないですね。
がみ:AWSってそんな資格も取れるんですね。
おきく:でもどんどんクラウドでいろんなサービスが提供されるようになって、開発難易度は下がってきているように感じます。
づや:ほんとそうですよ。だから勉強しないと食べていけなくなると思います。
SaaSは便利だがブラックボックス化しやすい。カスタマイズのしすぎに注意
おきく:僕、がみさんにShopifyについて語ってほしいです。思うところがあるそうなので。
がみ:いきなりきたね(笑)。ShopifyはSaaS型のサービスだから、俺らみたいにゴリゴリにコード書いてきたエンジニアからすればフロントに近くて、めちゃくちゃ扱いづらいんですよ。未来のサービスだと認識してはいるんですけどね……。俺が昔、スクリプト言語のPerlを使っていたときにはリクエストヘッダーの下にボディを書いて、そこからhtmlを書いていたんですよね。
づや:ありましたね〜そんなときが。
がみ:SaaSって、必要なものはどんどんデフォルトで組み込まれて内包されてきているので、中身が見えないんですよね。たとえばShopifyだと商品データや決済データとか、データオンリーになってしまって、ブラックボックス化しちゃっている。SaaSってデータを好きなように上げてサービスを使えるっていう長所がある反面、中が見えないのがネックだと感じます。
おきく:そうか! SaaSを使えばインフラ的な悩みは解決されそうなのに、どうしてみんな苦戦しているのかなって思っていたんですけど、そういうことだったんですね。
がみ:SaaSってもう一つ気になるところがあるんですよ。WordPressってあるプラグインを入れるといろいろカスタマイズできるんですけど、そのプラグイン自体がWordPress本体よりも容量が大きいんです。不思議なことが起きるんですよね。
でもShopifyも同じようになりつつあって、Shopifyはカスタムアプリを選んで入れればショップをいろいろ改造できるようになってるんですが、アプリのほうがShopifyより容量が大きくなっちゃうことがあるんです。もはやどっちが本体だかわからない(笑)。
おきく:おもしろいですね(笑)。カスタムしすぎるとおかしなことになっちゃうんだ。今の話を聞いて、知り合いのエンジニアが「外国の人はSaaSに合わせて業務のやり方を変えるけど、日本人はSaaSをカスタマイズして自分たちに合わせようとする」って言っていたのを思いだしました。
づや:めっちゃわかるわー!!!
がみ:いや、ほんとその通りだね。業務側のフローとシステム側のフローは両輪で考えないといけないと、いつか破滅しますよ。
おきく:カスタマイズしているとSaaSのバージョンアップで動かなくなるリスクもありますしね。メンテナンスが必要になったら、保守にお金もかかる。それを避けるなら、デフォルト機能だけでやっていくのがベストですね。
WordPressはどんな要件でも「なんとかなる」が、本当はもっと便利なサービスを使いたい
おきく:WordPressのバージョンアップはどうですか?
づや:メジャーアップデートはエディター変更とかがあるとつらいんですが、マイナーアップデートであれば全然問題ないですね。確認用の公式プラグインを用意してくれることもあるし、WordPress側も気を遣ってくれていると感じます。ただ今PHPのサポートが順次終了していて、古いPHPを使っていると動かなく可能性があるので、その点は注意が必要ですね。
おきく:LIGの開発は今もWordPressがメインなんですか?
づや:いや、少しずつ変わってきていて、最近はヘッドレスCMSも使っています。「microCMS」は開発中にバグを見つけてサポートに連絡したことがあるんですが、2週間くらいで修正してくれました。意外に柔軟に対処してくれたので好きになりましたね。
おきく:ここ数年、モバイルプラットフォームの「Firebase」といったBaaS(Backend as a Service)の話もよく聞きますね。“as a Service化”するものが増えてきた印象なんですが、使わないんですか?
づや:便利なものはどんどん使っていきたいんですけど、選定時に要件がまだ一部しかわかっていないとBaaSは導入できないんですよ。あとで要件が出そろってから「この機能はできません」なんて言えないですからね。でもWordPressだと結構なんとかなっちゃう。だからふんわりとした依頼のときは、WordPressを選びがちです。
おきく:そういうことか! 僕、ずっと疑問だったんですよ。BaaSがあるのに、なんでみんなカスタムでバックエンドをしたがるのかって。
づや:WordPressのほうが自分でメンテナンスもできるので、問題が起きたときにも対処しやすいんですよ。要件がカッチリ決まっていてBaaSがそこにハマるのであればぜひ使いたいんですけどね。便利を活かしきれない慣習があるんですよ。
おきく:ちなみにFirebaseはインフラ周りがまったく見えないんですけど、Amplify Studioは割と見えるので、機能が不足している前提で構築するのであれば、Amplify Studioを使うのもありかなと思います。
流行が過ぎた分野エンジニアはその後が悲惨。エンジニアは鳥かごの中で働いている?
づや:LIGでは最近、フレームワーク開発が多いんですけど、がみさんはいつ頃からフレームワークを使うようになりましたか?
がみ:俺は「CakePHP」からですね。でもフレームワークを広めた立役者といえば、やっぱり「Ruby on Rails」ですよ。
づや:たしかに! Railsは流行りましたね〜!
おきく:そういえばフレームワークってメモリリーク的な問題ってあまり聞かないですよね。
づや:物理的に使えるメモリが増えているのが大きいと思いますよ。PHPのメモリも昔は16Mくらいだったのに、今はデフォルトで128Mくらいありますからね。もちろんソフトで解決している側面もありますが。
おきく:子どものころにファミコンで遊んでいたとき、突然画面が灰色になることがあったんですけど、あれも今思えばメモリ不足だったんでしょうね(笑)。
づや:そうそう。でもそれはブラウザも同じですよ。昔は画面がめっちゃカクカクしていたのに、CPUの進化のおかげでスムーズに動くようになりましたからね。
おきく:インフラ系は最終手段として途中でスケールアップさせちゃえば解決できることも多いですしね。ヘタに工数かけるよりも、そちらのほうが安いこともあるし。
づや:「Bootstrap」っていうフレームワークが出てきたときは、最高に便利だなって思いました。エンジニアがつくった管理画面でも、それなりのクオリティになるんですよね。
おきく:CSSはどんどんフレームワーク化していきますよね。こうやっていろんなものがサービス化されていくのを見ていると、エンジニアは鳥かごのなかで開発しているんだなって感じます。
がみ:その表現しっくりきますね(笑)。でも特定の分野をやっているエンジニアって、流行が終わった後はすごくかわいそうな状況に置かれるんですよ。だってRails絶頂期のときのエンジニアって、今はもう全然仕事がないらしいですよ。知識もまるで役に立たないとか。
おきく:それはつらい……。でもハイブリッドアプリも同じ状況かもしれません。一時期React Nativeがめちゃくちゃ流行しましたが、今はもう完全にFlutterに抜かれてしまっていますね。
がみ:でも昔からあるプラグラミング言語「COBOL」は、逆に今ニーズが高まっているらしいですね。報酬も結構いいとか。化石の採掘状態ですよ(笑)。
流行といえば、子どもがプラグラミング学習できる「Raspberry Pi」っていうパソコン覚えてます? コードを書いてハードを動かす体験ができて、すっごく面白かったんですよね。
おきく:ブームになりましたよね〜。ラズパイは今はIoTのソリューションとしても使えるらしいですよ。ラズパイにいろんなセンサーをつけてデータを抽出して、それをAWSに送ってデータパイプラインに流していくそうです。そこからWebサーバーにつなげることもできるとか。
がみ:それは楽しそう! ハードが動かせるっていい経験になりますよ。趣味としてもいいかも。
動画、翻訳ツールの進化でエンジニアの学習方法は紙からデジタルへ
おきく:づやさんはいつ、どんなふうに技術の勉強をされているんですか?
づや:切羽詰まっているときには案件に必要なことをひたすら学んでいますが、そうでなければ海外メディアの記事を読むようにしていますね。その情報をもとに、流行っている技術は一応触るようにしています。
最近だと画像生成AIの「Stable Diffusion」とかプログラミング言語の「Rust」とかですね。RustでWebサイトを作ってみようと思っているんですけど、勉強でやっているので楽しいんですけど、案件でやらないといけないとなったらイライラするかも(笑)。
おきく:勉強のツールもUdemyとかいろんな方法がありますよね。GitHubに教材だけをまとめたレポジトリもあるって聞いています。
がみ:前はみんな「オライリー」の本を買っていましたよね。でも今はYouTubeで勉強する人が多い気がしますね。動画だとわかりやすいんですよね。
おきく:僕も「freeCodeCamp」という英語チャンネルは見ています。
づや:僕は動画だと勉強できないんですよ〜。特に英語のは無理ですね。もっぱらWeb記事か本で学んでいます。
がみ:そうなんだ。コード書くときには難しいけど、概要を把握するにはちょうどいいですよ。日本語字幕も出せるし。
おきく:Google翻訳は精度がかなりアップしましたよね。前は「DeepL翻訳」のほうが圧倒的に翻訳の精度が良かったけど、今はGoogle翻訳で十分。Googleが情報を吸い上げて、どんどんAIに学習させているんでしょうね。プラットフォーマーの力は増している気がしますよ。
がみ:「I work at Google.」って本来は「Googleという会社で働いています」という訳ですよね。でも「Googleで検索して仕事しています」っていう意味にも取れるので、プログラマーのアメリカンジョークになっているらしいですよ(笑)。
世は「中央集権→分散型」。Web3でサービスボーダレスが実現できる可能性も
おきく:力を増していくプラットフォーマーに対抗するものといてば、Web3ですね。本格的にWeb3の時代がきたら、エンジニアはWeb2とのギャップに苦しむと思いますよ。データは全部ジャーナルとして世界中のノードに展開されるので、データベースという概念すらありませんからね。
づや:スマートコントラクトの世界ですよね。具体的にどんなところが違うんですか?
おきく:今はアプリを作れるのはプラットフォームの中だけですが、分散型のアプリケーションの場合、プラットフォームの外でも作れるんです。データの保管方法も自分たちで定義します。
づや:でもノードが長くなると、負荷が大きくなるんじゃないですか?
おきく:新しいブロックを生成するときには、世界中のノードの参加者がその妥当性をチェックする仕組みになっていて、過半数がこのブロックは正しいと判断すればブロックチェーンに書き込まれます。世の中は「中央集権」から「分散型」へと移行しようとしているんですよね。
づや:でもWeb3反対派も結構いて、ずっともめてますよね。おきくさんはWeb3への心配はないんですか?
おきく:うーん、僕がWeb3の唯一の欠点だと思うのは「データが消えない」という点ですね。もし誰かをいじめたというデータが刻まれると、その履歴が永遠に残ってしまう。
づや:それは怖い! デジタルタトゥーがより残りやすくなるってことですね。
おきく:そうなんです。だからWeb3にデータを残すことにはリスクもあるんです。でもそれには便利な面もあって、たとえばWeb2ではAというサービスで購入したデジタルデータは、データ自体がAに保存されてしまっているので、Bというサービスで展開しようとしてもその価値が担保されないので使えません。でもWeb3であれば、データはブロックチェーンに刻まれるので、その価値がほかのサービスでも証明できるんです。
すでに「OpenSea」というNFTマーケットプレイスでは、特定のサービスで購入したNFTをほかの人に販売できるようになっていますからね。今は黎明期ですが、将来的にはサービスボーダレスの世界が実現される可能性があるんですよ。
づや:なるほど。サービスボーダレスの世界に期待はしたいですね。
2022年のトレンドは「Flutter」と「サービスレスアプリケーション」
おきく:トークテーマだったアプリトレンドの話を忘れてました(笑)。僕は今のトレンドは「Flutter」だと思っています。2022年にリリースされたFlutter3.0では、これまで対応していたiOSとAndroidOS、Web、Windowsに加えてmacOS、Linuxのアプリも書けるようになったんですよ。
がみ:マジか!!!
づや:何にでも展開できちゃうんだ。
おきく:Flutterからネイティブのコードも読めるし、さらにFirebaseを正式にサポートしたんです。展開するOSが一気に水平返還されれば、iOSやAndroidのアプリの開発速度が上がりますよ。
さらにすごいのが「Firebase Test Lab」です。このアプリを使うと、リモート上で実際のデバイスをつなげながらモバイルアプリのテストができるんですよ。Firebaseはバックエンド、テスト環境、マーケティングツールなどとしても使えるので、「Flutter×Firebase」はトレンドになっていくと思いますね。
がみ:すごいなそれ。ちなみにFirebaseの値段はいくらなんですか?
おきく:従量課金ですね。
づや:あぁ〜見積もりだしづらいなぁ。
おきく:もう一つトレンドありました! 「サーバーレスアプリケーション」です。必要なときだけリソースを確保するという。
がみ:ありますね〜。AWS LambdaがNode.jsとJava、Python、Ruby、さらにPowerShellまで入っているって聞いたときはびっくりしましたね。
おきく:CRUDするだけのアプリであれば、サーバーレス化していくかもしれませんね。
がみ:S3にHTMLみたいのを置いて、AWS Lambdaでヘッドポイントつくって、全部呼び出すのが一番簡易的なサイト構造になりそうな気がします。
づや:あのー、すっごい中途半端なんですけど、そろそろ時間みたいなんで今日はこの辺で……(笑)。
—-
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。