React+Figma+Amplfy+APIGateway+Labmda+Serverless Frameworkを触ってみた感想
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を組み合わせるだけで認証機能も作ることは可能。
え?今までの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フレームワークなので、いつでも捨てれるようにクリーンアーキテクチャを意識するべきである」
というところだろう。
参考にさせてもらったサイト
Discussion