読者です 読者をやめる 読者になる 読者になる

ポンコツWebエンジニアのかっこ悪く生きる日記

頭の中にあるうちは何だって傑作

2016年11月18日 オブジェクトと配列をぐるぐる沼

3行学びまとめ

  • エラーの内容はなんとなくではなくしっかり把握して問題の因果関係を解くことが大事
  • 配列を表示したい場合は print_r の方が見やすい。ソースで見るとさらに見やすい!
  • 配列の操作が身についていない
  • 頭の中でなんとなくこうなるというイメージを実際に対話シェルやファイルを実行する等をして結果を確認し、処理を正しく厳密に追う癖をつけよう
    • この方法ならいけるかも!と考えた仮説が技術的に可能なのかどうかを確かめるときにも使えそう
    • エンジニアは手を動かせとはこういうことなはず
    • 最初は時間がかかってしまうけどこれを高速にできるようになれば力がつくはず
    • php -r 'print_r(array("a", "b", "c"));'
  • 今まで用意されている関数については必要になったら適宜調べればいい。覚えるなんてナンセンスだと思っていたが、こういうことができるなというイメージを持っているとコードで実現しようと思ったときに早い段階で選択肢の幅が広がるし素早く実装することができるので、最低限頻繁に使う関数の名前と内容くらいは覚えておくと良さそうだなぁと思った
  • 値渡しと参照渡し
    • アンバサンド&をつけると参照渡しになる
    • 参照渡しは同じメモリアドレスを返す
    • 値渡しはぐるぐる回すと違う番地を作る
    • jsの参照渡しは勝手が違うので注意
    • 破壊的という意味が肌で分かった
  • そういえばなんでオブジェクトとして扱う場合があるのだろう。常に配列でデータを持っていた方がコードを書くときにデータの処理をしやすいと思うけど。オブジェクトとして扱った方が処理が早かったりするのかなぁ。
    • オブジェクトで処理した方が早い。配列で処理されると配列の要素分メモリを食ってしまう。
    • 昔はメモリの少ないマシンで運営していたこともあり、今もオブジェクトで書かれているコードが多い
  • 地道に変数の中に何が入っているのかを見ていく作業を高速に実行できると理解のスピードとタスクの消化率が上がりそう
  • フルスクラッチで書くとなるとめっちゃ工数を食ってしまう
    • 値の受け渡し時になんとなくこうなるといった感覚で作業していると全然やりたいことが実現できない
  • attr() HTMLのカスタムデータ属性(data-*)を読み書きする 値は常に文字列として扱われる
  • data() jQuery内のキャッシュのデータを読み書きする(ただし、取得時に該当キャッシュが無ければカスタムデータ属性を取得する) 値には自動で型が設定される(文字列、数値、Bool値、オブジェクト、配列)
  • smaerty の {section} は、データが格納された数値添字配列をループさせる
  • MVCではないレガシーな構造でも、ファイルの中だけくらいはMVCごとに役割を分けて書くべし
    • 今後MVC化する際にMVC化しやすくなる
  • tpl側でloop処理を書くべきではないという考えだったが間違っていた
  • 基本的にPHP側で配列を作ってあげてその配列をhtml側で対象毎に描写する
  • 何が正しいもので何が悪いものなのかの判断をつけられるようにするため、フレームワークが整っているコードを見る習慣をつけなければ..。
    • 前にララベルやawsのコードを見ようとしてたけどアクションに起こせていなかったので Trello で管理してやろう。
  • global になっているものの対処法は今のところメンバー変数を使ってClass内だけのスコープで収めること
    • 本来MVCが整っていれば特に必要はないのだが暫定的対応
  • while と fechRow はセットで使われることが多い
    • while はtrueの状態ではずっと回り続ける
    • fetchRow は全部実行するとfalseを返す
    • もちろんforeachでも互換が可能。foreach と while どちらも使える場合は foreach を使うべき
      • なぜならwhileは下手すると無限に回り続けるというリスクがあるため

フリースペース

力が欲しい。

f:id:yutokyokutyo:20161118214328j:plain

いや!大丈夫。強くなってる。。はず!