楽しいだけで十分です

好きなことを書きます

2017年4月12日

やったこと

  • パーフェクトPHP
    • 8.1(2週目)
  • ドットインストールのLaravelレッスン
    • 25 ~ 最後
    • 1 ~ 5(2週目)

雑記

昨日言ってた通り、パーフェクトPHPの2週目を始めた。
フレームワークとアプリの実装を行き来して、理解を深めつつ、スピード持ってこなしたい。

Laravelはついに完了。
こちらも知識の定着を上げる & 気になったところを掘り下げる目的で、もう1週やってる。
今週の残りは、復習に注力する。

それと、ペパボの新卒説明会を現地で見てきた。
新卒向けとは言いつつ、中途で入った自分にも勉強になることがあって、行ってよかったなあと思った。

2017年4月11日

やったこと

  • パーフェクトPHP
    • 8.6 ~ 8の最後まで
  • ドットインストールのLaravelレッスン
    • 22 ~ 24

雑記

パーフェクトPHPは8章が一応終わった。
ただ、8章が途中から動いてなかった(!) ので、もう一度やってちゃんと動くアプリにしよう。
とりあえず、サンプルのフレームワークのコード使って、8章もう一回やってみよう。 それで、アプリの動作確認や作成の手順の理解深まるだろうから、その後に7章、8章みたいな感じでやってみるといいかなー。

2017年4月10日

やったこと

  • パーフェクトPHP
    • 8.4.2 ~ 8.5
  • ドットインストールのLaravelレッスン
    • 18 ~ 21

雑記

パーフェクトPHPは、ざーっと写経した。
8章終わったら、もう一度7章 ~ 8章をやり直すと、定着が良さそうな気がしているので、やろう。

Laravelは先週からちょこちょこやっている。
コードが綺麗に書けるので、書いてて楽しい。
今週中には終わらせれるはずなので、終わったら自分でアプリ作ってみよう。

2017年4月9日

やったこと

所感

今日は割とガシガシとコード書いてた。

パーフェクトPHPは、前章で作った自作フレームワークで、Twitter風のアプリを作る話。
自作したフレームワークでアプリを作るというのは、やっぱり勉強になるなあと思った。
ただ、前章では、ひたすらフレームワークを作るだけで、動作確認しなかったので、エラーが出まくった。今は一応直ったはず・・・。

JUnitの方は、昨日の続きやってた。
ただ、JUnit固有っぽいなと思う話が増えてきた感じがするので、このままやっていく意味があるのかなと思い始めた。
そこで、PHPUnitを使って、本に書いてることをやっていくのは意外とありなのでは!?と思い、PHPUnit入れてみた。
なので、明日からは、PHPUnitを使って、本を読んでみることにする。
これもダメそうだったら、また考えよう・・・。

2017年4月8日

筆不精なので、ゆるくその日の出来事でも書くということを目標にしたので、書く。 うーん、なんかブログを書くことに、モチベーションが起きるような何かがあればいいのだろうなー。

やったこと

所感

最近テスト力をつけたいなーとずっと思っていて、Javaはほとんど書けないのにJUnitを書いている。
2章, 3章は、概念的な話が中心だったが、4フェーズテストなど、「ユニットテストでやることって、詰まるところこんな感じ」という話がされていて勉強になった。

Webを支える技術の方は、会社の勉強会に使う資料の作成をした。
CSSをいじれたら、もうちょっといい感じにできるのだろうけど、今のCSS力では無理だった。今後の課題。

HTTPステータスコード 302, 303, 307を整理する

会社で同期と話してる時に、「HTTPステータスコードの302, 303, 307って使い分けがよくわからないよねー」ってなったのですが、たまたまパーフェクトPHPで出てきたので、まとめておきます。

それぞれの定義

  • 302: Found
  • 303: See Other
  • 307: Temporary Redirect

どの定義もユースケースとしては、「一時的に別のURLを見て欲しい場合」に使用する

詳細な違い

  • 302, 307は定義上は同じもので、リダイレクト時に使用したものと同じHTTPメソッドでリダイレクトする
  • 303は、POSTリクエストでデータを送信した後に、表示用画面へGETでリダイレクトして欲しい場合に利用する

ここまでは、仕様の話なのですが、それを無視した挙動が存在するので、話がややこしいのです・・・

ややこしいところ

ほとんどのブラウザは302でも、303と同じようにGETでリダイレクトする (ほとんどのブラウザは、本来の302の仕様を無視している)

実際に、多くのフレームワーク (Ruby on Railsなど)でも、リダイレクトのデフォルトが302になってますよね

なんでこんなことになったの?

歴史的経緯によるものらしいです。

ざっとした、経緯の箇条書き

  • HTTP/1.0には、302 Temporary Redirectしか定義されていなかった
    • 303 See Other, 307 Temporary Redirectは、HTTP/1.1で策定された
  • HTTP/1.1では、「302はリダイレクト時にリクエストされたメソッドを変更してはならず、303はGETでリダイレクトを行う」という仕様にするつもりだったが、多くのブラウザが302を正しく実装せず、303的な挙動をするようにしていた
  • そこで、HTTP/1.1が改定された際に、本来の302の役割を、307 Temporary Redirectとして定義し、302は302 Foundと改定された

まとめ

とりあえず、一時的なリダイレクトを行うときは、302を使っておけば大丈夫みたいです。

なんで同じような定義がいっぱいあるんだろうなあと思ってたのですが、歴史を辿るとなるほどーという感じですね。

参考

gihyo.jp

パーフェクトPHPの「6章 Webアプリケーション入門」をPDOで書き直した

PHP7.0.14でパーフェクトPHPを写経しているのですが、mysql関数が廃止されているため、そのまま写経しても動かない (!) という状態になってしまいました。
なので、自分でPDOで書き直してみました。
同じようなことしてる人がいたら、参考までにどうぞ:)
(自分の環境では動いていそうですが、動作を保証するものではないので、あしからず。)

github.com