💡

React+Figma+Amplfy+APIGateway+Labmda+Serverless Frameworkを触ってみた感想

2024/02/07に公開

React+TypeScript+Figma+Amplfy+APIGateway+Labmda+Serverless Framework+S3を触ってみた感想

React+Figma+Amplfy

使ってみて思うこと

Reactは良い。
今までjQuesryやVue.jsを使ってきたが、Reactが一番しっくりきている気がする。
理由としてしては、クリーンアーキテクチャが組みやすい構造になっている気がする。
というのも、
Vue.jsは単一コンポーネントファイル(HATML+CSS+JS)なので、思想的には一つのコンポーネントで
全部閉じるというイメージが先行しているため、アーキテクチャを組むのに適切かと言われると首を捻る。

今回、初めてTypeScriptを触ってみたが、出来ることが色々あるので助かる。

Amplify+Figmaに関しては、正直微妙。
Amplify単体は悪くないのだが、後で紹介するserverless fremeworkで良いのでは感が否めないが、
AWSのcogniteとかを実装する場合は、Amplifyでもいいので、まぁまぁって感じ。

Figmaに関しては割と絶望ぎみ。出来ることは少なすぎる。
もし、ほとんどプログラミングを知らないデザイナーにとって、文句たらたら言いながらやる分に関しては
一定のいいねが入ると思うのだが、デザインができないエンジニアにとって、プログラミングサイドから
できるアプローチが非常に少ないので、なんかなぁ、、、

あくまでも、Figmaに関してはエンジニアがデザイナーと組む時に、使うツールな気がする。
少なくともエンジニアが個人開発する時に使うツールではない気がした。

おそらく最適解は、
React+TypeScript+Amplfy
となり、Figmaは一旦OUTかなぁって感じですね。

あとはReactにクリーンアーキテクチャが必要かという議論が残っている気がする。

APIGateway+Labmda+Serverless Framework

使ってみて思うこと

Serverless Frameworkは神。非常によくできていると思う。
具体的には、以下のようなyamlファイルを作って

create:
  handler: users/create.create
  events:
    - http:
        path: /users
        method: post
        private: true

users/create.pyにcreate関数を作るだけでAPIGatewayとLambdaの設定をやってくれる。
以下の記事にあるようにAPIGatewayにcogniteを組み合わせるだけで認証機能も作ることは可能。

https://aws.amazon.com/jp/getting-started/hands-on/build-serverless-web-app-lambda-apigateway-s3-dynamodb-cognito/module-4/

え?今までのwebフレームワークって過去になったの?

議論

では一回、Serverless Frameworkは全てのwebフレームワークを過去のものにしたかの議論についてやってみようと思う。

基本的に、Serverless Frameworkを採用するということは、完全にインフラ周りをAWSなどのクラウドに依存してしまうこととなる。

つまり、何も考えずに導入したい場合、AWSやAzureやGCPとめでたくご結婚ということになる。
これは非常にまずいと思われる。
なぜなら、全ての企業が米国企業であり、壊滅的な円安がきた瞬間に料金が壊滅的なことになるからである。

これらの解決策としては、クリーンアーキテクチャを導入して、View層とRepository層はいつでも切り離せるように作るべきだと考える。

そもそも先ほど、「サーバーレスフレーム」と「全てのwebフレームワーク」という対立構造で議論しているが、
DjangoだろうがRuby on railsだろうが所詮、routerとORMを提供しているだけにしか過ぎないと考えるのであれば
「サーバーレスフレームも一つのwebフレームワークと考えることができる。」

つまり、基本は全て同じで、我々エンジニアは、常にControllerの中身を洗礼することに重点を置き、
いつでもView層とRepository層を切り離す準備をして、取り巻く環境が変われば、コスパの悪いwebフレームワークとは即離婚すればいいだけの話である。

というわけで自分の結論としては
「Serverless Frameworkは神だが、所詮一つのwebフレームワークなので、いつでも捨てれるようにクリーンアーキテクチャを意識するべきである」
というところだろう。

参考にさせてもらったサイト

https://zenn.dev/akkie1030/articles/serverless-tutorial-api-gateway-lambda

GitHubで編集を提案

Discussion