エンジニアとして働いて、5日目が経ちました。
業界未経験からエンジニアとして就職してから1週間が経ったので、現在どんなことをしているか、業務的な知識も含めメモとして書き出しておきます。
開発環境および使用ツール
- PHP 7.2.23
- Laravel 6.0.3
- Docker
- Sourcetree
- Sequel pro
- Slack
- Trello
- Kitematic
- Bitbucket
etc...
いまやっていること
Webアプリケーション開発で、サーバーサイドの実装をしています。
Trelloで自分が担当するカードを見て、Postmanを叩いて、削除の機能をつけたり、更新したくない値にバリデーションを書いたりなど。
RailsでMVCの知識は叩き込んでいたので、それをベースに処理を見よう見まねで実装していってます。
今週躓いたところ
まずPostmanの使い方がわからない
いままでフロントありきで開発をしてきていたので、Postmanが何をしているか全くわからなくて、初日は存在しないURLを入力したり、バリデーションかかってるカラムに何も入れなかったりしてエラー...
ひたすらPostmanのURL部分見て、api.phpでルーティング見て、コントローラー見て...って繰り返して、ようやく雰囲気が掴めてきました。Bodyにカラムと値を入力しておけばすぐに機能ごとのテストもできるので、使い始めて1週間経つとめちゃくちゃ便利な機能だなと思い始めてきました!
DB設計がどうなっているかわからない
DB設計書はTrelloに共有されているのですが、正直見てもわかりませんでした...。
DBの階層がどうなっているかが設計書を見てもさっぱりわからず、混乱していたらER図のメモ書き画像を送ってもらえたので、親子関係やモデル名を自分で紙に書き出して、それを片手に見ながら作業をしたらPostmanもちゃんと動くようになってきてストレスフリーに!
図形がないと文字だけでは理解できないタイプなので、これからも新しいアプリ作るときはER図書いていきます。
そもそもLaravelの機能がわからない
当たり前ですが、今まで勉強してきたRailsにはあるヘルパーメソッドが、Laravelにはないってことでつまずきました。
現在ログインしているユーザーの情報を取ろうとしても、current_userというメソッドがそもそもない...
ちなみに下記がlaravelのcurrent_userを取ってくるコードになります。
auth()->user()
LaravelとPHPは入社前に勉強のため簡単なアプリを作ったのですが、まだまだ勉強が足りなかったことを思い知らされました。
Middleware、Request、Serviceとは
これもまた、Railsにはない機能ですが、Middlewareについては以下の記事も参考にさせていただきました。
https://www.ritolab.com/entry/69
ルートからコントローラーに行く間に処理されるもので、認証系の処理などが書かれています。
Requestはバリデーションに関する内容等が書かれるファイルです。
ルートからコントローラーに行く間に、Requestを経由しています。
バリデーションのかけ方は下記のURL参考にして実装しました。
https://qiita.com/toro_ponz/items/b33c757cb7ba5bb48ed4
Serviceはコントローラーに記載されているアクションの、処理する中身についてが記載されています。
Railsではモデルに特定のデータを取得する関数を記載して、その関数をコントローラーのアクションの中で呼び出していたのですが(コントローラーの関数に処理を直書きしたりもしてました...)、Laravelはモデルには書かずにServiceに記載するようです。
https://qiita.com/ucan-lab/items/4ad7daf12422498ab491
まだここら辺の仕組みについてはふんわりとしか理解していないので、もっと詳しくわかってきたら別で記事を作成しようと思います。
振り返り
実践で使用されているコードを初めて見たのですが、めちゃくちゃコード美しくて見てて楽しいです。
昨日久々にポートフォリオの自作アプリのコード見たら汚すぎて目が潰れました。
いまはまだとりあえず動くコードの実装で必死ですが、もう少しコードの綺麗さも意識して行きたいなーと思います。