Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

WEBエンジニア未経験者向け資料 - 3

67 views

Published on

1.環境の概要
2.PHP x Laravel の概要
3.コードの書き方
4.曼荼羅

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

WEBエンジニア未経験者向け資料 - 3

  1. 1. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. WEBエンジニア未経験者向け資料 - 3 2018. 03. 11 塚本 昌弘
  2. 2. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. 目次 1.環境の概要 2.PHP x Laravel の概要 3.コードの書き方 4.曼荼羅
  3. 3. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. 1. 環境の概要
  4. 4. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. 1.環境の概要 – おおまかに・・・ データベース サーバー ウェブサーバー レスポンス リクエスト
  5. 5. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. データベース サーバー ウェブサーバー レスポンス リクエスト Windows Azure Google Cloud Amazon AWS Cloud9 xampp 1.環境の概要 – サーバーの種類
  6. 6. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. 1.環境の概要 – ウェブサーバーの種類 データベース サーバー ウェブサーバー レスポンス リクエスト IIS WebLogic nginx Apache
  7. 7. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. 1.環境の概要 – 開発言語の種類 データベース サーバー ウェブサーバー レスポンス リクエスト IIS WebLogic nginx Apache Perl Python Ruby PHP
  8. 8. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. 1.環境の概要 - フレームワークの種類 データベース サーバー ウェブサーバー レスポンス リクエスト IIS WebLogic nginx Apache Perl Python Ruby PHP CodeIgniter Zend Cake Laravel
  9. 9. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. 1.環境の種類 – データベースの種類 データベース サーバー ウェブサーバー レスポンス リクエスト IIS WebLogic nginx Apache DB2 Oracle SQL Server PostgreSQL MySQL
  10. 10. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. 2. PHP x Laravel の概要
  11. 11. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. 2.PHP x Laravel の概要 データベース サーバー ウェブサーバー 検索鈴木 鈴木 一郎 山田 花子 鈴木 その子 Request Controller リクエスト PHP x Laravel
  12. 12. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. データベース サーバー ウェブサーバー 検索鈴木 鈴木 一郎 山田 花子 鈴木 その子 Request Controller Model リクエスト PHP x Laravel 2.PHP x Laravel の概要
  13. 13. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. データベース サーバー ウェブサーバー 検索鈴木 鈴木 一郎 山田 花子 鈴木 その子 Request Controller Model View リクエスト PHP x Laravel 2.PHP x Laravel の概要
  14. 14. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. データベース サーバー ウェブサーバー レスポンス 検索鈴木 鈴木 一郎 山田 花子 鈴木 その子 Request Controller Model View 検索鈴木 鈴木 一郎 鈴木 その子 リクエスト PHP x Laravel 2.PHP x Laravel の概要
  15. 15. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. 3. コードの書き方
  16. 16. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. 3.コードの書き方 コードはなるべく美しく書く!
  17. 17. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. 3.コードの書き方 一行あたり72文字以内を目処に収めてほしい → 横スクロールを必要とするコードは見づらい 変数名やIDなどは、できるだけ短くしてほしい → わかりやすい命名にしてほしい ※キラキラネームは厳禁! → 無理して英語の変数名にしないこと。わかりづらいため。 → 単語のつづりがわからず辞書をひいて命名するとか、スペルミスも起こりうるため。 → 一例として、教材をあらわすテーブル名に TeachingMaterial という命名がありました。 → 長い!かっこつけずに、シンプルに kyozai のほうが短くてわかりやすい。 テーブルIDにはマスタなのか明細なのかわかるようにしてほしい → m_car (車体マスタ) → t_meisai (明細テーブル) → m_SyohinCategoryというIDが存在するならm_Syohinにしてほしい → m_syohinだと商品カテゴリのSは大文字なのに商品マスタは小文字だとブサイク! コメントを残しましょう → ClassとMethodのコメントは必ず書きましょう → ただし、過剰なコメントは間違いです。 → 過剰なコメントを必要とするコードは、それ自体がブスだからです 車体マスタ 会員マスタ レンタル履歴 (明細データ) レンタカーシステムの例
  18. 18. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. 3.コードの書き方 ▼ひとマス空けて見やすく書くこと OK if ($count === 1) { NG if($count === 1){ OK $res = Syohin::get_price('4984355190202', 'note'); NG $res = Syohin::get_price('4984355190202','note'); OK foreach ($syohin as $key => $value) { NG foreach($syohin as $key => $value) { ▼閉じ括弧の位置は開始の位置にあわせること OK if ($count === 1) { } else { } NG if ($count === 1) { } else { } ※FOR文でも同様 ▼インデントは半角スペース4つ スペース派のほうが多いらしい(私もスペース派) ただし、タブ派を否定する論理的な根拠はありません。 参考: https://www.gizmodo.jp/2016/09/tab-vs-space.html
  19. 19. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. 3.コードの書き方 OK if ($count === 1) { // } else { // } NG // if ($count === 1) { } // else { } elseif や else の記述位置を if文の直後にする。 OK $count = count($array); for ($i = 0; $i < $count; ++$i) { } NG for ($i = 0; $i < count($array); ++$i) { } 0番目からカウント数分、ループする書き方。 → カウントして変数にセットした後にループする 私はどちらでもいいと思ってますが一般的には次の書き方を推奨しているようです。
  20. 20. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. 3.コードの書き方 OK if ($count === 1) { NG if ($count == 1) { $countの値が1だったら...という処理結果は同じです。 イコールを3つ重ねる書き方をなぜしないといけないのか。 → === は型(文字列型とか数値型)を意識して判定を行いますが == は型は無視して、中身(値)のみで判定します もう少し掘り下げて説明すると... Javaの場合 int count = 100; というようにcountという変数は数値型にします、、と明示しないといけません。 このため、countに文字列を入れると構文エラーが発生します。 → count = '100'; // 先に数値型と指定したため、100という文字列を入れるとエラーが発生します だがしかし! PHPの場合 PHPには変数に型という概念が存在しないため、 $count = 100; の後に $count = '100'; 数値の100の後に、文字列の100を代入してもエラーが発生せず、 $countは最終的に文字列型の変数として扱われます。 このため、if文で比較するときは === を使用して、明示的に数値として値を判定することで、 バグの発生を抑えることにつながるからです。
  21. 21. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. 3.コードの書き方 JavaScript の history.back は使用しないこと! → history.back とはブラウザの戻るボタンを実行する記述のこと xxx画面 yyy画面
  22. 22. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. 3.コードの書き方 JavaScript の history.back は使用しないこと! → history.back とはブラウザの戻るボタンを実行する記述のこと xxx画面 yyy画面 zzz画面 戻る
  23. 23. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. 3.コードの書き方 JavaScript の history.back は使用しないこと! → history.back とはブラウザの戻るボタンを実行する記述のこと Google xxx画面 yyy画面 zzz画面 検索エンジンから zzz画面に流入してきたとき
  24. 24. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. 3.コードの書き方 JavaScript の history.back は使用しないこと! → history.back とはブラウザの戻るボタンを実行する記述のこと Google xxx画面 yyy画面 zzz画面 戻る 戻り先がGoogleになる。 一般的にサイト内を回遊してほしい。 ブラウザ機能に依存する書き方のため、 ブラウザの種類によって意図しない挙動が 発生する可能性があるため、使わないこと。
  25. 25. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. 4.曼荼羅 最後に、いつもの曼荼羅で確認
  26. 26. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. 4.曼荼羅 曼荼羅
  27. 27. Date: March 11, 2018 Prepared By: TSUKAMOTO, Masahiro Copyright(C)2017 tsukamoto All Rights Reserved. End of document

×