Laravel入門その1「開発環境を整える(XAMMP編)」

さぁLaravelを始めよう。

まずは、開発環境構築なわけだが、一番簡単なのは、なんだかんだで、XAMPPなのかなって思う。結局これが最速で開発環境を整えられる方法かと。

www.youtube.com

環境構築の流れ

1.XAMPPをインストール

2.composerのインストール

3.Laravelのインストール

では、1から順番に説明する。

OSはWindows10(64bit)っていう前提で説明する。

1.XAMPPをインストール

XAMPPのサイトにアクセス

・「Windows向けXAMPP 7.2.5」(PHP7.2.5)(←2018年5月13日現在)というボタンをクリックしてインストーラーをダウンロードする。

・ダウンロードされた「xampp-win32-7.2.5-0-VC15-installer.exe」というインストーラーをクリック(もしくはダブルクリック)。

・「はい」とか「OK」とか「Next」とか「Finish」を押す。アメリカの国旗を選択し「Save」を押す。

・XAMPPコントロールパネルのApacheのStartボタンを押す。緑色になればOK。

・ブラウザに「http://localhost」と入力してEnterボタンを押す。何かXAMPPの画面が出たらOK。

2.composerのインストール

composerのサイトにアクセス。「Download」をクリック。

・「Download and run Composer-Setup.exe - it will install the latest composer version whenever it is executed.」の「Composer-Setup.exe」リンクをクリック。

・ダウンロードした「Composer-Setup.exe」をクリック(もしくはダブルクリック)する。「はい」とか「Next」を押し続けてインストールを完了させる。

・コマンドプロンプトを起動する。画面左下のテキスト入力に「cmd」と入力すると候補が出るので、それをクリックしたりして起動する。

・「composer -v」と入力してEnterボタンを押す。composerのバージョン情報が出たらOK。

3.Laravelのインストール

・「C:\xampp\htdocs」配下のフォルダ&ファイルを全削除する。

・コマンドプロンプトで「cd C:\xampp\htdocs」実行。

・「composer create-project --prefer-dist laravel/laravel test」コマンド実行。(testの部分はなんでもよい)。すると「test」というフォルダが作成され、その中にLaravel一式がインストールされる。

・「C:\xampp\apache\conf」フォルダ内の「httpd.conf」ファイルを編集する。「DocumentRoot」で検索して、249行目の「DocumentRoot "C:/xampp/htdocs"」を「DocumentRoot "C:/xampp/htdocs/test/public"」に変更して上書き保存して、XAMPPコントロールパネルからApacheを再起動する。(Stop & Start)

・ブラウザに「localhost」と入力しEnterを押して、「Laravel」と大きく書かれたちょっぴりお洒落なトップページが表示されることを確認。

 

「働き方完全無双」に見るひろゆき氏の地主思想

ひろゆき氏の著作って結構少なくて、最初はたしかホリエモンとの共著だと思うんだけど、ひろゆき氏単独の書籍って多分2冊しかないよね。ということで、多産で内容が薄くなってきている堀江本よりも、ひろゆき本の方が今は熱いのかなって。

先日紹介した堀江&落合の「10年後の仕事図鑑」と比較しても、ひろゆき本の方が相当ちゃんとした妥当な内容の本かと思う。

堀江さんは譲歩しないのね、例えば学校については「不要だから、ガラガラポンするしかない。」というのがホリエモンの考えで、「けど、学校は現在あるし、いきなり無くせないよね」という世論に対して一歩も譲歩しないのね。

一方、ひろゆき氏は現実的な落としどころを探って僕たちに提示してくれている気がする。ひろゆき氏は、意外と保守的な考えを持っている。例えば「貯金」は良いこととしており、自由になるための手段としている(仕事が辞めやすい、など)。むやみにお金を使わない節約思想もあり、日本人に馴染みやすい。

そして何より思ったのは、ひろゆき氏ってすごく「地主」的思考をしていること。経営者というよりも、投資家・資産家つまりは地主っぽい発想をしているなと。ビルマネジメントとかビルメンテナンスみたいな。

実はホリエモンと落合氏って労働者体質なのかなって。

ホリエモンってすごく努力家で、すごく仕事する人なんだよね。ホリエモンチャンネルとか、動画を毎日配信してるし、有料メルマガも毎週配信してて、ものすごい数の質問に回答してるわけ。めちゃくちゃ大変だよ。それのみならずホリエモン大学校も運営している。

落合氏もそう。頭も賢ければ労働時間もすごく長いし、スキマ時間に仕事する、すごい努力家なの。

一方、ひろゆき氏ってできるだけ仕事しないでどうやって収入を得て生きていくかっていう地主っぽい考えを持ってる。ここがすごく違うとこだね。

だから、これから沈みゆく日本をどうしたらいいかっていう提案もすごく地主っぽいのね。つまり、そのまま経済を停滞させて、観光地にして、海外からリッチな観光客に来てもらって、たくさんお金落としてもらおうよっていう考え。

ひろゆき氏って今何してるのかというと、

「未来検索ブラジル」という会社の業務と、「4chan」という匿名掲示板サイトの管理人業務をしている

 

そうな。具体的には、

動画の生放送などで大きなトラブルがあったときに技術的なアドバイスをしたり、FBIや裁判所から書類のサインを求められたときの法的な対応などを主にしている

 

そうな。また、

決算のときに資料を作って税理士の人に送ったりする

 

そうな。

ルーティンワークは他の人に投げて、そのルーティンワークがうまく回っている限り、僕はやることがない

 

んだそうな。この地味な感じ。彼自身、ウェブ上の地主・管理人なのだ。

多くの日本人労働者が持っていない地主思想をのぞき見るのに、本書は最適ではなかろうかと。

システム常駐案件(PHP)で学んだこと

去年12月から4月末までの5ヵ月間システムの常駐案件で働いていた。

一人でやる時と違うことが多々あり、今後も常駐案件をする可能性が100%くらいあるので今後に生かすためにも、過去の案件で学んだこと、気付いたことなどをつらつらと書いていく。

■ウォーターフロー開発

常駐案件の開発フローって高い確率でこのウォーターフロー開発手法だと思うのね。具体的に言うと、要件定義があって、基本設計があって、詳細設計があって、製造(コーディング)があって、単体テストがあって、内部テストがあって、結合テストがあって、運用テストがあって・・、その先は知らないし、知らなくてもいいかもね。

この一連の流れと、その内容を理解しておくべきだろうね。

■関心の分離

画面設計においては、設計者とお客さんとのやりとりとか、予算の都合で1画面に5画面くらいの機能が凝縮されてしまう場合があって、高い確率で炎上するのね。ていうかしたのね。

こういう画面のコーディングを任された時に、どう対応するかっていうのは大事かも。クラスを分けて、機能単位にファイルを分割するとか、バリデーション専用のクラスを作って別ファイルにするとか、共通関数を作るとか。

■自分の進捗を把握し、常に報告できるネタを用意しておくこと

特に進捗が悪い場合や、期日が迫っている場合には、しっかりと自分の担当している画面のコーディング状況を把握しておく必要がある。

これが結構難しい。というのは、進捗を把握するのにも時間がかかって、コーディングが遅くなってしまうから。けど、これはやらないとダメなんだろうね。

急がば回れ」ってやつかな。

■進捗が悪い場合は、できればこまめに、自分から進捗報告を行うべし

口頭でもメールでもよいが、上長に進捗報告をするようにすべき。順調でない時ほど、自分から、こまめに、いわゆる「ホウ(報告)・レン(連絡)・ソウ(相談)」をすべきだった。これは正直どう訓練したらいいかが分からない。

■画面確認も含めて実装完了とせよ

コーディング完了が決められた期日に間に合わないとしても、画面を確認しないままコードだけを書いて、「コーディング完了しました~」って言うのは、かなり良くないことらしい。(当たり前?)。きちんと画面確認を行って、きちんと動くことを確認できて、はじめてコーディング完了、実装完了と進捗報告してよいわけである。

Oracleをあまり知らなければ、Oracle案件は避けるべきかも

SQL文とかほぼほぼMySQLと同じなんだけど、意外と面倒なので、知らないならやめといたほうがいいかも。

MySQLについての理解を深めるべし

オライリー本を買うとかドキュメントを読むなどしてMySQLの理解をさらに深めた方が良さそう。例えばCASE WHENとかの構文とか今いち理解できていないので、複雑なSQLとかを理解した方がよさそう。トランザクションロールバックとかね。

■POST値は必ず検証する

例えばPOST値に1~5の数字しか入ってこない場合は以下のようにチェックするべし。

if( !in_array($_POST['id']), [1,2,3,4] ){

    // エラー画面へ遷移させるなど

}

■if ~ elseif ~ else

場合によるが、if elseifだけの場合はelseも必要かどうかを確認する。まぁ、よく分かっていないけど長いことC言語やってた人がここ指摘してた。

■==と===

例えば

$value = 0;

として、

if($value == false){

    // 条件に入る

}

if($value === false){

    // 条件に入らない

}

if($value == null){

    // 条件に入る

}

if($value === null){

    // 条件に入らない

}

==は緩めの一致で、===は厳格にデータ型まで一致していないとtrueにならない。場合によっては==でもいい場合もあるし、場合によっては===じゃないと危険な場合もある。基本的には===を使った方が安全な気がする。

■関数実行時は戻り値を変数で受けてfalseなどの場合はエラー処理

関数は多くの場合戻り値を返す。その戻り値を変数でうけるべし。

$str = getSomeString( $val );

if( $str === false ){

    // エラー処理

}

// 以下は文字列が返って来る前提の処理なので、falseが返るとあまりよろしくない。

$string = '結果は' . $str . 'でした!';

■テストについての理解

例えば、テスト駆動開発の概要とか、PHPUnitの使い方とか、テストに関する理解をある程度持った方がいいのかなって思った。案件で実際にPHPUnitを使わないとしても、どういう風にテストを行うものなのかっていうのは分かっておいた方がよさそう。

おっすオラ、筋力をつける

自分は自信がない。なぜ自信がないかというと、自分の能力が高いと思わないからだ。たまに自分は天才だと思うこともあるが、比較的失敗したら落ち込みやすい。典型的な自分に自信が持てないタイプの人間である。

なんの根拠もないのに自信を持っている人もいるが、自分はどうも根拠がないのに、自信を持つことができない。

成功は自信につながるし、自信は成功につながる。成功するためには、自信が必要である。

仕事をするにも、スポーツをするにも、恋愛をするにも、バイナリーオプションをするにも、自信とか精神的強さが必要だ。

精神的強さとか、自信とかってどうやって鍛えたらいいかがいまいちよく分からない。目に見えないからよく分からない。

だから、「肉体と精神はつながっている」という説に立って、「肉体的強さが精神的強さに繋がる」って考えて、つまり自分の精神力を強め、自信をつけるために、ひたすら筋トレして筋力を高めようと思うの。

だから、ジムにまた通おうと思う。ひたすら筋肉を増やしていくよ。ここは思いっきり投資していこうと思う。自分の筋力投資によって自己の価値を高めるわ。

僕のやりたいこと

自分が好きなことや趣味、が大きな成功につながるらしいので、僕の好きなことピックアップしてみる。

・音楽系

幼いころ僕はあまり外で遊ばずおもちゃのレコード再生機でレコードをずっと聞いていたらしい。中学校は野球部だったが、友達の影響でギターを始めて、中3で親にエレキギターを買ってもらった。高校時代はラグビー部だったが、家でずっとギターを弾いていた。大学でも友達は音楽の趣味の合う人と仲良くなることが多かった。大学時代に家庭教師の生徒がライブ活動をしていて、ベースでサポートで参加して、かなりライブで演奏した。100回超えるくらいは演奏したと思う。

・プログラミング

大学4年生くらいからプログラミングを始める。Javaの授業は取ったことあるけど、よくわからなかった。10冊くらい本読んでみたけど、結局身につかなかったな・・。そのかわりPHPはいけた。あと当時はやっていたFlashのActionScriptを大学時代は一番頑張ったかな。

・バイナリーオプション

2年前くらいからバイナリーオプションを始めた。ハイローオーストラリアというサイトがよくできていたので。でも結局は200万円くらい損した。つい最近も1日で18万円損した。昔に比べると成長した。損が少なくなっている笑

・教えること

小学校時代の夢は「学校の先生」だった。大学時代も家庭教師のバイトをずっとやっていた。そして教職免許を取るべく、教職の授業にも出ていた。最後の教育実習で生徒の前でうまくしゃべれないことが判明し、挫折した。また、制度が変わって、結局免許を取ることができなかった。だけど、教育にはどうも興味関心があり、プログラミング教育のなんちゃってyoutubeチャンネルを開設した。バイナリーオプションを教えるチャンネルも開設した。ギターを教えるチャンネルも開設しよっかなーと思っている。

・youtubeを見ること

これもみんなそうだよね。うちの子供もそうだよ。ビジネス系とか自己啓発系の動画が好きなので、そういうのをこのブログに紹介するくらいかな。

・ホリエモンの動画を見たり、本を読むこと

大学時代からホリエモンが好きで、「稼ぐが勝ち」からの本を読んでいる。最近はキャッチアップしていない本もあるけどね。というのも内容がほとんど同じだから。

以上を参考にビジネスを考えていこうと思う。

以上

「10年後の仕事図鑑」を読んだ感想→やや粗い

ホリエモンと落合陽一さんが一緒に書いている本って(多分)他にないので、興味本位で買ってみた。

僕はフリーITエンジニア(?)なので、この仕事が今後どうなるのかも気になって読んでみた。

ホリエモンも落合氏も頭が賢くて、特に人波外れているところって情報収集能力なんじゃないかなって。

ホリエモン曰く、圧倒的な情報収集を行うことで相対的未来が見えるらしい。つまり他人と比べて先が見えるということ、たしかにホリエモンがはるか昔に言っていることが後になって実現されることはとても多い。だから彼らの10年後の仕事予測、つまりは未来予測本は、かなり当たるのではないかと僕は思っている。

以下、僕が読んでみて、引っかかったキーワードとか文を引用する。

・仕事は「引き受ける」ものから「作る」ものへと変わっていく。

→仕事を作るっていう感覚ってほとんどの人が持っていないと思う。これからは持たなければいけないのかなぁと。

・ユーチューバーの台頭に見られるように、誰もが「遊び」でお金を稼げるようになる。

→たしかにヒカキンとかはボイパの動画投稿で億万長者?になったわけで。遊びを突き詰めていくことが大切なのかなぁと。

・思いを持って毎日発信すること。

→まぁね。発信しないと何も始まらないかもね。これは営業とも言える。

・エンジニアは安くなる。

→これはショック。今のうちに稼ごうと思う。

・自動運転によって、車内で仕事をしたり、メールを打ったり、音楽を聴いたりと、居住空間にも近い状況が生まれる。

→これはいいね。まぁ、別のことをすると、酔いそうだけど、極力酔わないような運転をAIがしてくれることを願う。それかもうお酒を飲んで酔ってしまうとか。車内セックスも今後盛り上がっていきそうだ。

・AI時代であっても、「簿記」はぜひ理解してほしい知識。

→これはホリエモンが最初に出した「稼ぐが勝ち」からずっと言っていること。それくらい大事ってことなんだろうね。だから僕は簿記2級まで取ったよ。全員簿記2級取るべき。3級でもいいよ。

・結局、お金を借りられる人が一番強い。

→お金を借りれるってことは、それくらい信用されているってことだからね。ちなみに今の僕はPITAPAすら作れない。。泣

・「食べていくために」安い仕事で我慢している人の存在がなくならない以上、労働単価が上がることはない。

→全員筋トレするしかないね。

・人間はもう面白くない仕事をしなくてもよくなってきた。

→まじで?僕はあんまり面白くない仕事ばかりしている。早くそうなって欲しいな。

粗いと感じた部分

本をパラパラと読んでいて思ったのは、精度に欠けるというか、粗かったのね。粗いポイントをいくつか挙げていくよ。

P84:「それなら、プロ野球選手を目指したほうが成功確率は高いかもしれない。」

→これは粗すぎる。野球選手になれる確率って宝くじ当たるくらいの確率なので、例えが悪い。さすがに野球選手よりかはエンジニアの方が成功確率高いっすよ。これを信じちゃってエンジニア辞めて、野球の練習を始める人が可哀そすぎるよ・・。

P249:「未来を恐れず、過去に執着せず、今を生きろ」

→本書の最後をこの言葉で締めているが、近大の卒業式でホリエモンが言った最後の言葉と思いっきり被っている。本の最後のメッセージってすごく大事なのに、過去にyoutubeで人気になった動画の発言と完全に被らせるというのは全く理解ができない。嘘でもいいから今までにホリエモンが発したことのない言葉を書いて欲しかったし、それが無理であればこの本を出版しないで欲しかった。それぐらい最後の言葉って大事だよ。(まぁ、いい言葉だけどね。)

ということで、私からホリエモンと落合氏にこの言葉を送りたい。

「神は細部に宿る」

大阪在住フリーエンジニアの悩み

クラウドワークスで仕事を受注していくスタイルで頑張る大阪や地方のフリーエンジニアには悩みがある。

それは、多くの案件、特に高額な案件は、条件として「都内にミーティングに来れる人」ということ。

大阪に住んでいると、なかなか東京に頻繁にミーティングに行けない。新幹線だと往復で3万円以上かかる。

でもお客さんの気持ちもわかる。実際のミーティングって、最近は批判対象にもなるけど、ものすごく意味のあることだと思っている。

在宅で東京のお客さんとお仕事する時は、スカイプとかチャットワークとかを使って進めるが、意思疎通がうまくできなかったりする。

場合によっては、スカイプよりも、実際にミーティングした方がいい場合もあるということだ。

そういうこともあって、僕は東京に移住したいということである。まぁ、首都圏まで電車で通える場所でもよいだろう。

VRとかARのイノベーションでこの「都内ミーティング必須」項目が消滅することを僕は心から祈っている。

まぁ、そうなると、海外のエンジニアも含めてライバルが増えるだろうけどね。