ポートフォリオの2作目を作る計画の話
38歳の未経験のおじさんがエンジニア転職するためにポートフォリオ二作目を徹底的に作る様をお伝えしていきます。
今すぐ手を動かしたいものの、1作目の反省をする前に作り出してしまったらまた同じことの繰り返し。今回は自身の戒めを込めて、カッコつけずに正直に書いて行こうと思います。
結論
■ 開発手法: アジャイル
■ 進行計画: しっかり作る
■ 使用技術:(要検討) フロントエンドはReact/Typescript、バックエンドは未定。
■ デプロイ環境: 未定(安く抑える手段を模索中)
■ 設計と要件定義: しっかり作る
■ アウトプット: qiitaに残す
■ TypeScript: 知識深める
ポートフォリオ1作目の反省点
■開発方法について
前回のポートフォリオ作成は以下の手順で作成しました。
①フロントエンド側(React)のログインページを作成
②バックエンド側(RailsAPI)で機能実装
③フロントエンド側でログアウトページを作成
④バックエンド側で(略
これを繰り返しに繰り返し、一通り作成したらAWSへデプロイ、テストを作成。
上記の何がだめだったのか。シンプルに言うとテスト作成時に「飽きる」。
何やら消化試合をしているようでテンションが上がらないし、そもそも数週間もテストを書いていて
急にReact側を修正しよう!とか、コントローラーのアクションを修正しよう!となると、そもそも「どのように実装したのか」について、記憶が曖昧になっていて、修正にかなり時間をかけてしまった。
開発手法を調べていると、開発工程を段階的に分けて進める手法を「ウォーターフォール開発」というですね。
このウォーターフォール開発の利点は「予算やチームメンバーのアサイン計画が立てやすい」らしいです。
私の場合、二作目は「飽き防止」のため、「アジャイル開発」にチャレンジしてみようと思います!
アジャイル開発とは?というところは、調べればたくさん出てくると思うので割愛。簡単に言えば「計画→設計→実装→テスト」を細かく回していく、ということらしいです。
■進行計画について
そもそも、進行計画なんて1作目のときは作っていなかったのです・・・。プログラミングスクールの方は「ポートフォリオは2ヶ月が目安」と仰っていましたが、私の場合、スクール卒業後のReactやTypeScriptの習得だけでそのくらい掛かってしまいました。
するとどうなるか、そう、めちゃくちゃ焦りだす。やばい、早く作らなきゃ、早く作らなきゃ、と徹夜に近い状態になったことも。まさに1人ブラック開発。イライラするし、精神衛生上良くない。
今回は前回とは異なり、使用技術については基礎は抑えており計画を立てやすい。(ほんとに?)
そのため、今回は細かく計画を建てようと思う。
日中は仕事、帰ってきてから転職活動とアプリ制作。うーん!余裕がほしいところですが甘いことは言ってられない。
■目的の明確化
このアプリケーション制作を通じて何を得たいのかをはっきりさせておきたい。
前回は無計画に開発を進めた挙げ句、途中でモダンな開発技術が皆無なことに気づき1ヶ月間掛けて書いたコードをすべて放棄する、という無駄なことをしてしまいました・・・。時間は貴重。
ということで、今回はここをはっきりさせておく必要がある。
現在の学習した技術は以下のとおり。
・React
・TypeScript
・Ruby and RailsAPI
・SQL(中途半端)
同じ構成で挑むか、フロントエンドを変えるかバックエンドを変えるか、すべて変えるか。正直すべて変えるのは、どの技術も中途半端で理解が浅くなるので避けたい。迷う。要検討。
ただ、転職活動をしていると、RubyやRailsを求める案件は相当少ない。分かってはいたものの相当少ない。逆にPHPはPythonは無茶苦茶多い。実務経験は無いのだから、出来ると言えることは多いに越したことはないのだから、バックエンドを変えるのはあり。
■デプロイ環境
これはどうするべきかまだ悩み中。前回は以下の内容で構築。何に悩んでいるかというと、端的に言えば「お金」。月額掛かっちゃうんです。そっとmanagement consoleを開いてみました。今月のコスト「$107」、今日のレートで15,802.94円。いや、きっつ。
今は転職活動のためにこのコストは目をつぶるとして、さすがに新しく同じ構成で挑むとすると単純に倍くらいの金額になりそう。いや、それはちょっと・・・。要検討です。CI/CDはマストでトライしたい。
■設計と要件定義
よく聞く「要件定義」。前作では本当に簡単なものしか作りませんでした。今回はしっかり作っていこうと思います。実務レベル、とまでは行かないまでも、知識としてどんなものか知っておいて損はない。ちゃんとやります。
■アウトプットした結果を残しておく
qiitaなどに知識を書きとどめておき、学習の成果を残しておくことで採用企業様側へのアピールになる。ただ、実はそんなことどうでも良くて、色々な人から意見をもらうことが重要。
1人で開発をしていると、間違った思い込みにも気づけず、そのままそれが自分の中でスタンダードになってしまう。もしかしたら間違った知識がもうすでにあるかもしれない。。。
そういったことを防ぐためにも、今回は少しずつ学習結果を残していこうと思います。
■TypeScriptについて
Reactですら分けの分からない状態で作り始めた前作。そこに畳み掛けるように分けの分からないTypeScriptさん。溢れ出るエラー。まさに地獄の状態を1ヶ月くらいさまよった後が克明にコードに現れている。
要はぐちゃぐちゃ。
今回は前回よりも理解している(つもり)なので、より前回よりも理解が深まるようにしたい。Udemyで一本くらい動画を見よう・・・!