今年抑えたい技術領域の自己評価&どういう状態になりたいかまとめてみた
フリーランスで、Ruby/Rails&JavaScript+AWSの各種サービスみたいな構成でWebアプリケーション開発のしてますが
- 現在使ってるけど何となくふわっとした理解のもの
- 仕事をしてる中で「あー、こういう場面だときっとxxxの技術(サービス)使うことでもう少し良い構造になりそう」
みたいなことが最近増えてきてるなぁと感じてます。
特に、前者のふわっとした理解のものが最近すごく気になってててるので、そこを解消するために
- 2019年に抑えておきたい技術領域を書き出す
- 書き出した技術について自己評価&どういう状態になりたいか?
という感じで以下にまとめていこうと思います
2019年に抑えておきたい技術領域
Ruby/Rails&JavaScript+AWSの各種サービスみたいな構成でお仕事をして来てるので、今後抑えておきたい技術領域を個別にまとめていきます
フロントエンドのWebアプリケーション開発
最近半年位は
- TypeScript&Angular6/7
- Vue/Vuex
- Nuxt&TypeScriptを少し
という感じだったので、それを踏まえて優先順位が高い順に
- TypeScript
- Vuex
を抑えます。
バックエンド寄りのWebアプリケーション開発
というのを踏まえるとさらにRailsを掘り下げるのがオーソドックスな考えかと思います。
それなりの規模を経験出来たことで
- これから直面しそうな問題
- その問題解決にあたって、自分が出来る・すぐには出来ない領域がある程度見えてる
という感じで、それに加えて Nuxt.js (TypeScript) on Netlifyの良さを広めたいを読んでて、Nuxt.jsとNetlifyが気になっており、SSR なものを1つ抑えておきたいなぁとぼんやりと考えていた のでNuxt.jsとNetlifyにします。
次点というわけではないのですが、このスライド見てたら、AWS Amplify も気になってるので一応書き出しておきます。
ちなみに、バックエンド寄りというくくりで考えて、ここ数年色々悩まされてきた問題解決の手段として、データベースのリファクタリングを抑えたいんですよね ただ、そこは実際運用してるサービスを通じてでないと中々知見が得られない領域なので一旦保留😅
AWS 関連
基本AWSサービス(EC2/S3/RDS/VPC/ELB など)の構成でお仕事をしてますが
- 開発環境の一部
- CirceCI 1.0 →2.0 への移行など
を通じて徐々にDocker化進んできた自分のお仕事環境を踏まえると
あたりを抑えておきたいと思ってます。
なぜTerraformとかLambda with Rubyなのか?
自分がこれまでお手伝いしてきた位の規模だとAWSの構成についてしっかりと情報がまとまってなかったりするので
- せっかくなのでコード化しておく
- 既存構成をベースに、何か改善したくなった場合の検証などの作業やりやすさ
なんかを考えて、Terraform を抑えておきたいかなと思ってます。
ちょっと前にTerraform使って、ALB&VPC(public/privateなサブネットに分割)みたいなものを作れるようにしていたベースがあるのでそこをもう少し掘り下げたいなぁと思ってます
書き出した技術について自己評価&どういう状態になりたいか?
項目 | 自己評価 | どういう状態になりたいか? |
---|---|---|
TypeScript | そもそも静的型付けの言語経験がないので、型についての理解が甘い | 型定義ファイル( d.ts )とかが読み書きできる |
Vuex | mapGettersとmapActionsの理解が甘い | 最近のお仕事経験も踏まえるとドメインの複雑さをstoreにうまいこと集約できるような設計ができる |
Nuxt.js | ちょっと触った程度なので自信がない | アプリが書けるのはもちろん、本番環境での運用を踏まえてトータルで |
Netlify | そもそも触ってない状態 | ひとまず説明ができて、サンプルアプリならサクッと動かせる |
AWS Amplify | そもそも触ってない状態 | ひとまず説明ができて、サンプルアプリならサクッと動かせる |
Amazon ECS | そもそも触ってない状態 | EC2ベースのホストからの移行みたいなシナリオでどういう手順でECSに持っていけるか自分の考えを持てる |
Terraform | ALB/EC2/VPCとかは作れる | 既存のAWS構成をTerraform化するようなシナリオの時にどのような手順で作業できるか自分の考えを持てる |
API Gateway& AWS Lambda(Ruby) | ちょっと触った程度 | EC2/Railsみたいな構成でcron使ったバッチ処理を AWS Lambda(Ruby)で置き換える時の勘所がつかめてる |
まとめ
自分が抑えておきたい技術領域を書き出してみたら、
- フロントエンドのWebアプリケーション開発
- TypeScript
- Vuex
- バックエンド寄り
- Nuxt.js
- Netlify
- AWS Amplify
- AWS 関連
- Amazon ECS
- Terraform
- API Gateway& AWS Lambda(Ruby)
という感じでかなりのボリュームになって正直これを全部やるのはツラいかな😫
ただ、可視化というか言語化したことで、課題が見えて来たのはすごく良かったので、書き出して正解でした ✌