TECH::EXPERT9週目を振り返る
あっという間にチーム開発3週目が終わってしまいました。
今週の学習を振り返りましょう。
今週の学習時間
今週の学習時間は以下の通りです。(合計64時間)
- 6/8(土)8時間
- 6/9(日)9時間
- 6/10(月)12時間
- 6/11(火)4時間 ← 休みました、でも家で少し開発
- 6/12(水)12時間
- 6/13(木) 11時間
- 6/14(金)8時間
今週は休みつつも、早く実装したかったので家でも少し開発をしました。
今週の学習内容
チーム開発
今週僕が担当した機能は以下の通りです。
- 商品編集機能
- 商品検索機能
商品編集機能
先週実装した商品出品機能をもとに商品編集機能を実装しました。商品編集で難しかったのは、親モデル(商品)のupdate時に子モデル(画像)のcreate、update、deleteが同時に行われるようにしなければならないことです。
子モデルが単純なデータであれば難しくは無いのですが今回はCarrierWaveを用いてアップロードした画像なので苦戦しました。
update時に前回登録された画像を消さないようにする
editアクションにアクセスした場合、前回登録された画像はファイル選択ボックス(file_fieldに)に登録されていないのでそのままupdateすると画像が消えてしまいます。
僕は以下の記事を参考に、cacheを追加しました。
消したい子モデルを消せるようにする
cacheを追加することで登録されている画像が消えないようにはなりましたが、今度は消したい画像を消すことができなくなりました。そこで、以下の記事を参考に消したい画像には_destroy: trueをマージするような処理をreject_ifを使って実装しました。
これで、親モデルのupdateと同時に子モデルのcreateとupdateとdeleteが同時に行えます。
詳細なコードはリファクタリングを行なったのちにqiitaにでも載せたいなーと思っています。
商品検索機能
週の後半は商品検索機能のマークアップをしていました。
まだサーバーサイドは未実装ですが、マークアップが終わり次第ransackというgemを利用して機能を実装します。ransackは簡単な記述で詳細な検索ができる便利で有名なgemです。
3回目のスプリントレビュー
先週のスプリントレビューでは少し遅いと言われてしまいましたが、今週はスプリントレビューまでに最終課題で必須の機能は実装済み、あるいは実装途中という状態まで漕ぎ着けることができました。
おかげで今週は実装が早いとの評価をもらうことができました。メンバーが頑張ってくれたおかげだと思っています。
必須の機能は完成しつつあるので来週は細かい部分の修正をしつつ、あとは発表の準備や転職・案件獲得の準備をしてもらってもいいかなと思っています。
キャリアアドバイザーとの面談
最終課題が始まったあたりからキャリアアドバイザー(CA)との面談が始まっています。
最初の面談でどんな企業を希望するのかをざっくりと決め、次の面談までにいくつか求人を紹介してもらえます。
僕は最初に5件ほど求人を紹介してもらいました。ただし、PHPで開発したポートフォリオが必要なところもあるので今週からPHPの勉強も始めています。
PHPには有名なフレームワークがいくつもあるので迷いどころですが、学習コストから考えるとRailsと同じ考えで作られているLaravelがいいかなと思っています。
少し大変ですが、面白そうな企業だったので頑張ってPHPで作ったポートフォリオを作りたいと思います。
まとめ
ちゃんと実装できるか不安だったメルカリですが、なんとか形になった3週目でした。
来週はいよいよ最終課題の発表会です。いいメルカリになるように完成度を高めていきたいと思います。それでは!!