注意されたこととか教わったこととか
ちわわっす。
光陰矢の如しっていう言葉を身をもって感じるお年頃のベル子です。
子供の頃はこんな年になるまで自分が生きているなんて想像もできませんでしたが、今では120歳以上まで生きる気満々です。
そんなわけで転職して、もう2か月が過ぎてしまいました。
早いですねぇーー。
最初は何がなんだか訳の分からなかったPHPフレームワークについても、かなり(自分なりに)分かってきて、すごく楽しいです♪
そんなわけで、新人生活2か月の間にいろいろやらかしてるので、注意されたことや教わったことを少し振り返ってまとめたいと思います。
間違った認識だったら、バファリンの半分の成分を忘れずに指摘してもらえると嬉しいです。
もしくはバシッとイケメン風に注意してくれるなら、それはそれで大歓迎です。
・gitでpushする前はgit statusで何がpushされるのか確認してからpushすること。
・gitでローカルブランチをdevelopmentとmasterで切り替えて作業していて、developmentの状態をリモートのmasterとマージしたい場合は、いったんローカルのmasterにマージしてからpushしたほうがいい。
・同じ処理を何度もいろんなところに書かない。なるべく共通化、関数化(メソッド化)する。
・\Don't Repeat Yourself !!/ \Don't Repeat Yourself !!/ \Don't Repeat Yourself !!/
・繰り返し使うことになるデータのペアは別の場所にまとめてハッシュ化し辞書的に参照して使いたまえ。
・Controllerの中にダラダラとロジックを書かない。
・Viewの中でデータ参照のために細かいことを書かない。細かいのはModelの中でメソッド化したほうがいい。そうしてるやつがあるから、それをちゃんと使いたまえ。
・モデルオブジェクトを返すメソッド以外の場合は、動詞などをつけて区別できるようにする。
・inputのnameはDBのカラム名と揃えること。
・ユーザーIDのような大事なパラメはパラメ渡ししない。(セキュリティ的に)
・中で取れるデータはわざわざパラメ渡ししない。
・phpのインデントとhtmlのインデントは分けて考える。
今のところは、こんなところでしょうか。
まだあったかな。
結構、ControllerとModelの使い分けというか、その辺がよく分からなくてモヤモヤしていたんですが、最近、何となく言われてることが分かってきました。
先日、マエストロがControllerとModelの中間みたいなのがLaravel以外のフレームワークにはあるからっていう話をしてて、そのときはまだ頭の中でまとまらなかったんだけど、
やっぱり、そういうのを作ったほうがやりやすそうかもって、今は思ってます。
Modelの中にメソッドを書いていくと、そのModelに紐付いたメソッドが中に書かれることになって、同じ機能というかモジュールで使われるメソッドがバラバラのファイルに書かれることになります。
関連するModelが多いといろんなファイルに関連するメソッドが置かれることになって、Userとか一見モジュールとは関係ないModelにも、ひょっこり登場することになり把握しづらさMAXです。
書いた人は絶対覚えてるけど、あとからそのモジュールに別の人が修正を入れようと思ったら、ControllerからModelを開いて、関係ないメソッドが並ぶ中から、該当のメソッドを探さないといけません。
検索すればいいじゃんって話だけど、無関係なメソッドがいっぱい書いてある中から毎回探すのって、非効率的だと思ったり思わなかったり。
(↓こんなブログを読んでくれる心優しいあなたのために、分かりやすい手描きの図を描いてあげました。)
あと、Modelには直接的に関係はないけどControllerに書きたくないメソッドもあるし。
それを最終的にどこか親のModel(親テーブルのModel)でまとめつつメソッドを作ったりするのだったら、モジュールごとに1つファイルを作ったほうが分かりやすいかもしれない。
調べたところ、一般的にはそういうレイヤーのことをServiceと呼んでいるようなので、app/servicesを作って、例えば『アラート機能に関するもの』だったらその中にAlertService.phpとか作ってまとめるといいのかも。
ふふ、ただそれをやろうとすると、大工事になること請け合いだし
またうっかりミスして、自分を呪いたくなりそうな予感もする。
うふふあはは。
ほら、あそこにお花畑が見えるよ、ペーター。
ライオンのお母さん的な人が多いので「好きにしなさい(いい感じにな!)」って言われそうですが。
ではでは、皆さん暑いけど夏バテしないようにねーー。
光陰矢の如しっていう言葉を身をもって感じるお年頃のベル子です。
子供の頃はこんな年になるまで自分が生きているなんて想像もできませんでしたが、今では120歳以上まで生きる気満々です。
そんなわけで転職して、もう2か月が過ぎてしまいました。
早いですねぇーー。
最初は何がなんだか訳の分からなかったPHPフレームワークについても、かなり(自分なりに)分かってきて、すごく楽しいです♪
そんなわけで、新人生活2か月の間にいろいろやらかしてるので、注意されたことや教わったことを少し振り返ってまとめたいと思います。
間違った認識だったら、バファリンの半分の成分を忘れずに指摘してもらえると嬉しいです。
もしくはバシッとイケメン風に注意してくれるなら、それはそれで大歓迎です。
・gitでpushする前はgit statusで何がpushされるのか確認してからpushすること。
・gitでローカルブランチをdevelopmentとmasterで切り替えて作業していて、developmentの状態をリモートのmasterとマージしたい場合は、いったんローカルのmasterにマージしてからpushしたほうがいい。
・同じ処理を何度もいろんなところに書かない。なるべく共通化、関数化(メソッド化)する。
・\Don't Repeat Yourself !!/ \Don't Repeat Yourself !!/ \Don't Repeat Yourself !!/
・繰り返し使うことになるデータのペアは別の場所にまとめてハッシュ化し辞書的に参照して使いたまえ。
・Controllerの中にダラダラとロジックを書かない。
・Viewの中でデータ参照のために細かいことを書かない。細かいのはModelの中でメソッド化したほうがいい。そうしてるやつがあるから、それをちゃんと使いたまえ。
・モデルオブジェクトを返すメソッド以外の場合は、動詞などをつけて区別できるようにする。
・inputのnameはDBのカラム名と揃えること。
・ユーザーIDのような大事なパラメはパラメ渡ししない。(セキュリティ的に)
・中で取れるデータはわざわざパラメ渡ししない。
・phpのインデントとhtmlのインデントは分けて考える。
今のところは、こんなところでしょうか。
まだあったかな。
結構、ControllerとModelの使い分けというか、その辺がよく分からなくてモヤモヤしていたんですが、最近、何となく言われてることが分かってきました。
先日、マエストロがControllerとModelの中間みたいなのがLaravel以外のフレームワークにはあるからっていう話をしてて、そのときはまだ頭の中でまとまらなかったんだけど、
やっぱり、そういうのを作ったほうがやりやすそうかもって、今は思ってます。
Modelの中にメソッドを書いていくと、そのModelに紐付いたメソッドが中に書かれることになって、同じ機能というかモジュールで使われるメソッドがバラバラのファイルに書かれることになります。
関連するModelが多いといろんなファイルに関連するメソッドが置かれることになって、Userとか一見モジュールとは関係ないModelにも、ひょっこり登場することになり把握しづらさMAXです。
書いた人は絶対覚えてるけど、あとからそのモジュールに別の人が修正を入れようと思ったら、ControllerからModelを開いて、関係ないメソッドが並ぶ中から、該当のメソッドを探さないといけません。
検索すればいいじゃんって話だけど、無関係なメソッドがいっぱい書いてある中から毎回探すのって、非効率的だと思ったり思わなかったり。
(↓こんなブログを読んでくれる心優しいあなたのために、分かりやすい手描きの図を描いてあげました。)
あと、Modelには直接的に関係はないけどControllerに書きたくないメソッドもあるし。
それを最終的にどこか親のModel(親テーブルのModel)でまとめつつメソッドを作ったりするのだったら、モジュールごとに1つファイルを作ったほうが分かりやすいかもしれない。
調べたところ、一般的にはそういうレイヤーのことをServiceと呼んでいるようなので、app/servicesを作って、例えば『アラート機能に関するもの』だったらその中にAlertService.phpとか作ってまとめるといいのかも。
ふふ、ただそれをやろうとすると、大工事になること請け合いだし
またうっかりミスして、自分を呪いたくなりそうな予感もする。
うふふあはは。
ほら、あそこにお花畑が見えるよ、ペーター。
ライオンのお母さん的な人が多いので「好きにしなさい(いい感じにな!)」って言われそうですが。
ではでは、皆さん暑いけど夏バテしないようにねーー。