💰
2021年に触った技術
この1年も、いろんなものを作っていろんなことを経験してきたのでまとめます。何か新しいこと勉強したいな〜みたいな人の参考になったり、これをきっかけに僕に仕事をお願いしようみたいになってくれる人がいると嬉しいです。
2020年に触った技術をまとめた記事はこちらになります。よければこちらもどうぞ。
はじめましての方向けに軽く自己紹介しておくと、法人として動いてはいるものの実態としてはフリーランスエンジニアとして、新規サービスの開発・運用をお手伝いしています。Web/アプリ、バックエンド、インフラまで、サービスの立ち上げに必要な技術的なことは一通りできるように頑張っています。以下に上がっているものを見ると「色々やりすぎでしょ」みたいな感想になるかもしれないですが、僕の方針として サービスを作る上で必要なものは全部勉強して身につける
なので、ある意味こうなるのは仕方ない感じなので許してください。
開発に関わったサービスたち
- 仕事で開発に関わり新たにリリースしたサービスは5つでした
- うちWebサービスは4つ、ネイティブアプリは1つ
- 基本的に全部開発をリードさせてもらえてありがたかったです
- 仕事で技術相談役として関わり、リリースされたサービスは1つでした
- 来年はもう少し技術相談役の仕事を増やしたいです
- 現在新たに仕込み中のかなりデカめのサービスは1つです
あんまり仕事をしていない月が2ヶ月ほどあったわりにはそこそこ関わった感じがします。新しいサービスを立ち上げるたびに何かしらの挑戦があり非常にやりがいがあります。来年もこうありたいものです。
触った技術一覧
言語
- TypeScript
- 2021年の90%はTypeScriptだった
- Webブラウザで動くサービスを作ることが多いため、フロントがTypeScript1択なのでそれに合わせてバックエンドのTypeScriptで作りがち
- 言語のスイッチがないし、型の共有などもできるので効率が非常に良くて好き
- Dart
- 去年リリースした自社アプリ開発で使っていて、引き続き頑張って機能開発している
- 言語は未だに好きになれないがFlutterを使うにはDartになるので仕方ない
- Swift
- 昔から運用している個人開発アプリはSwift製なのでたまーに触るくらい
- 特に印象に残っていない
- Kotlin
- 以前勤めていた会社のアプリ開発を引き続き手伝っている関係で、Android Nativeのアプリを書くことがちょくちょくある
- (この仕事でしかやってないから正直できればやりたくない)
今年はTypeScript力がめちゃくちゃ上がった1年でした。来年は、必要性が出てきたら何か新しい言語を学んでもいいかもと思いました。バックエンドの開発が楽しいので、GoやRustは習得してもいいかも(Rustはちょっと違う感じはするけど)。
フレームワーク・ツール
- Next.js/React
- 去年に引き続き今年もお世話になりまくってる
- 進化の方向がだいぶインフラとしてのVercel色が強くなってきてるけどその進化がなんだかんだAWS/GCPでも使えたりするのでまだしばらくはお世話になりそう
- ChakraUI
- CSSあんまりわからないマンとしてはめちゃくちゃ助けられた
- ModalやMenuのようなよく使うUIコンポーネントが拡張性高い状態で用意されているのが素晴らしい
- Flutter
- まあ便利だねとは思うんだがやっぱりDartが好きになれないんだよな〜みたいな気持ち
- ReactNative
- ほぼほぼWebViewのアプリを1つ作った
- TypeScript/Reactで普段開発している人間としては素晴らしいツール
- TypeScriptでの開発体験が個人的にはめちゃくちゃ最高なので、個人アプリもRNに置き換えたいかもしれない
- Apollo(GraphQL)
- Server/ClientともにTypeScriptで利用した
- コード生成までやれちゃうし、なんならCustom Hooksまで作ってくれちゃうので、サーバーとの通信コードを自分で書くことが全くなくなった
- キャッシュの仕組みは少しむずかしいがこれは手放せないツールで殆どの仕事で導入している
- Prisma(ORM)
- Node.jsのORM兼コード生成ツール
- selectしたカラムや、JOINした状態まですべて型で表現されるので本当に素晴らしい
- Terraform
- Infra as Codeを実現するためのツール
- 今年1番使ってよかったやつかもしれない
- 本番環境を構築する時に漏れが無くて済むし、インフラコードがどんどん溜まっていって別の新しいサービスを作るときにも活用できるので最高
- Firebase周りがあんまりAPI公開されてないせいでTerraform化できなくて、最近は構成を完全にGCPに寄せがち
- Open API
- Open API SpecificationでとあるAPIを公開する必要があったので利用した
- はじめて使ったけどコード生成周りは一応は使える感じなのでそこそこ便利
- yamlを書くために書き方を勉強するのが面倒だったが Stoplight というサービスのおかげで楽ちんだった
プラットフォーム・サービス
- GCP
- FirebaseというよりGCPをめっちゃ使うようになった
- Cloud Runを始めとしたManagedなサービスを中心にたくさん使わせてもらってる
- 今年のチャレンジとしてはSpannerを使う仕事をやり始めた
- TypeScriptで使うにはエコシステムが全然足りていないのでGoでやりてぇってなる
- 仕方ないのでPlainなTableの型を渡せばそれなりに型補完が効くWrapperとか作った
- AWS
- Fargate で Next.js と Apollo Server動かしつつPrismaでAuroraにつなぐみたいな感じで使った
- 動画の変換のためにフルマネージド動画変換サービスのMediaConvert使った
- パラメーター多すぎてめちゃ難しかった
- Cognitoにはめちゃくちゃ苦しめられたのでもう使いたくない…
- Stripe
- 今年もお世話になりました
- 新しいチャレンジとしてPaymentLink使ったり従量課金サブスク作ったりした
- なんとなく 弊社HP から相談の購入がされたら1%寄付する設定にした
- Elasticsearch on Elastic Cloud
- 最初から何十万件のデータが登録されることが決まっている検索サービスを作る必要があったので利用した
- Algoliaでやるとレコード数でも従量課金なのでそれだけで運用費がやばくなってしまう
- やってみるとめちゃくちゃ奥が深く専門性が高いものだった
- まだまだ全然知識も経験も足りてないので日々インプット&思考して頑張ってます
- 最初から何十万件のデータが登録されることが決まっている検索サービスを作る必要があったので利用した
おわりに
今年もいろいろ挑戦して、少しずつではありますが成長していっている気がします。来年も引き続きがんばります。
というわけで エンジニアと人生 Advent Calendar 2021の25日目の記事でした。みなさま良い年末年始をお過ごしくださいませ〜👋
Discussion