料金改定(一部値下げ)のお知らせ
平素より、プログラミング教室 Knocknote educationをご利用いただきましてありがとうございます。
2021年4月1日より、下記の料金改定を行わせていただきます。
よりお手ごろな料金での受講が可能となりますので、この機会に是非ご利用いただければと存じます。
■Createコース
月8時間コース 20,000円(税抜)/月 → 18,000円(税抜)/月
■Unityコース
学生割引 4,000円/月 → 2,000円/月
※2021年3月31日現在で学生割引が適応されている生徒様におかれましては、割引金額の変更はございません。
■オンラインコース (1回90分)
各回90分の回数制を廃止し、各コースの料金に +2,000円(税抜)/月 で受講可能になりました
※キャンペーン価格。通常価格は+5,000円(税抜)/月
■入会金
9,800円(税抜) → 10,000円(税抜)
また、総額表示義務化に伴い、ホームページ・パンフレット・その他お知らせなどの料金表記を、2021年4月1日より税込みでの表示に変更いたしますので、併せてご認識いただけますようお願い申し上げます。
急なお知らせとなり恐縮ではございますが、ご了承いただけますようよろしくお願い申し上げます。
Knocknote education 運営事務局
中学生プログラミング発表会受賞者インタビュー Unityコース
株式会社Knocknoteが運営している子ども向けプログラミング教室で、自作ゲームの発表会を開催しました。
発表会受賞者のインタビューをお送りしていきます。
今回は神垣 匡伸さんです。
-受賞した感想を聞かせてください。
神垣さん:嬉しいです!
-スライドを作る時に頑張ったこと、工夫したところはありますか?
神垣さん:スライドの機能のアニメーションをいっぱい使いました。
アニメーションをいっぱい使ったことでスライドの見え方にインパクトが生まれたと思います。
-ゲーム制作で工夫したところはありますか?
レゴのテンプレートを使ったけど、そのまま使うのは嫌だから多少いじって使いました。
テンプレートをいじる時に崩れないように気をつけました。
-ハキハキと発表できていましたが緊張などしましたか?
久々の発表だったけど、練習して臨んだのでうまくできたと思います。
-プログラミングを使って次に作りたいものはありますか?
次はテンプレートに頼らずFPSを作りたいです。その中で銃を打った後の弾痕とかも実装したいです。
-発表会や普段の授業も踏まえてプログラミングは楽しいですか?
楽しいです。
-ありがとうございました。
ただいまTETRA UPでは体験授業や入会金などが無料になる、お得なキャンペーンを実施しています。
この機会に体験教室に是非ご参加ください。
詳細は↓をクリック
中学生プログラミング発表会受賞者インタビュー スクラッチコース
株式会社Knocknoteが運営している子ども向けプログラミング教室で、自作ゲームの発表会を開催しました。
発表会受賞者のインタビューをお送りしていきます。
今回は寺内 悠樹さんです。
-受賞した感想を聞かせてください。
寺内さん:何ヶ月か時間をかけてゲーム制作をしたから受賞できて嬉しいです。
-発表をしてみてどうでしたか?
寺内さん:緊張してやりたいことができませんでした
-スライドを作る時に頑張ったこと、工夫したところはありますか?
寺内さん:アドリブでも考えつつ、大きな声を出しみんなにわかるようにしました。最後にプレイする時間では遊び方を教えた人が、爆発モーションにハマってずっとやっていたのが嬉しかったです。
-ゲーム制作で工夫したところはありますか?
寺内さん:選択画面を頑張りました。あと、フレアの見た目とかも結構こだわって、そこに時間をかけました。
-次に作りたいものはありますか?
寺内さん:ちょっと前に将棋の電王戦っていうのを見て、将棋のAIを作ってそれと戦うプログラムを今度は作ってみたいと思います。
-発表会や普段の授業も踏まえてプログラミングは楽しいですか?
寺内さん:プログラムが完成して遊んで確認するところとか、遊んでて、バグとかを見つけて、なんでこうなるか考えて直した時や見た目を変えて面白くした時が楽しいです。
-ありがとうございました。
ただいまTETRA UPでは体験授業や入会金などが無料になる、お得なキャンペーンを実施しています。
この機会に体験教室に是非ご参加ください。
詳細は↓をクリック
小学生プログラミング発表会受賞者インタビュー スクラッチコース②
株式会社Knocknoteが運営している子ども向けプログラミング教室で、自作ゲームの発表会を開催しました。
発表会受賞者のインタビューをお送りしていきます。
今回は下津 龍人さんです。
-受賞した感想を聞かせてください。
龍人さん:受賞できたのは自分的にもすごいと思っております。まだまだ未熟なのに受賞できたのはすごく嬉しいと思っています。このロボットをくれたのはマジで感謝しています。ありがとうございました 。
-とても上手に発表できていましたが、緊張はしましたか?
龍人さん:なんていう言葉で表せばいいのか分からないんですけど、なんか大丈夫かなって思っていました
-スライドを作る時に頑張ったこと、工夫したところはありますか?
龍人さん:ゲームを作るのは簡単っていうわけではないんですけど、パッと思いついちゃう時も多いのでそういうところはいいんですが、スライドにはどういう風に書けばいいかを考えるのかっていうのが、めちゃくちゃ難しくて個人的には一番難しかったです。
どうやって説明するかとか、その内容とかを考えて工夫しました。
-ゲーム制作で工夫したところはありますか?
龍人さん:電車の見た目にこだわって作りました。
-プログラミングを使って次に作りたいものはありますか?
龍人さん:次はまんじゅう大戦争を作ってみたいです。
-発表会や普段の授業も踏まえてプログラミングは楽しいですか?
龍人さん:授業がめちゃめちゃ楽しいです。楽しいです。楽しいです。
-ありがとうございました。
ただいまTETRA UPでは体験授業や入会金などが無料になる、お得なキャンペーンを実施しています。
この機会に体験教室に是非ご参加ください。
詳細は↓をクリック
失敗しない!初めてのアジャイル開発②〜アジャイル 開発について知ろう〜
前回の記事をご覧になってアジャイル 開発や、アジャイル 開発のメリットデメリットについてご理解いただけたでしょうか。
今回は、アジャイル 開発ででてくる用語について見ていきましょう。ただでさえ横文字が多いIT業界ですが、アジャイル 開発でも様々な単語がでてきます。
そんなに多くないので覚えてきましょう。
チームについて
プロダクトオーナー
プロダクトの価値最大化に責任をもつ人です。プロダクトバックログ(必要な機能)と優先順位の明確化を行います。プロダクト自体に責任を持つ人がなることが多いです。場合によっては外部の人もあり得ます。
スクラムマスター
スクラムの促進と支援に責任をもつ人。チームから障害を取り除き、ファシリテート及びコーチングします。スクラムマスターはアジャイル経験者にお願いしましょう。
開発チーム
職能横断的でプロダクトに必要な専門家で構成。責任自体はチームで負います。問題VS私たち。
開発について
インセプションデッキ
「なぜ我々はここにいるか」などのWHYやトレードオフスライダーなどのHOWをチームで向き合い理解を揃えるためのデッキ。目的やミッション、約束事や優先順位などを明確にしておきます。チームに求められる「期待」を可視化するのです。
ワーキングアグリーメント
チーム開発で前提としておく決まりやルールの共通理解です。本番リリースはペアでやる、ユーザーのFBを最優先におくなどです。多すぎても運用できないので全体で7つ程度を目安に入れ替えたり、内容を改めます。
ユーザーストーリー
「要件」です。ユーザー目線でユーザーにとって価値があり、本当に実現すべきこととなります。「前回と同じ商品を買いたい」「人気順や新着順で並べ変えたい」など機能をユーザー目線でポストイットなどに洗い出していきます。
ユーザーストーリー・マッピング
ユーザーの行動を時系列に書き出し、発生する課題やそれを解決する機能を洗い出します。例えばユーザーが「前回と同じ商品を買いたい」という行動に対しては、購入履歴の表示という機能が思い浮かびますよね。
イテレーション
イテレーションとは開発サイクルのことです。アジャイル開発は反復的(iterative)にサイクルを繰り返し、改善を少しずつ続けていきます。イテレーションはXP(エクストリームプログラミング)で使われる用語です。スクラムにおいてはスプリントと呼ぶことが一般的で、1〜2週間が目安です。
スプリント
イテレーションと紛らわしいスプリントですが、同じくアジャイル 開発の1サイクルの期間の単位です。こちらはスクラム(開発においての仕事の進め方を意味するフレームワーク)で使われます。
プロダクトバックログ
作るべき物一覧です。タスクの見える化が目的です。必ず優先順位をつけ意思決定をスムーズにしなくてはなりません。
注意点
- それぞれが独立していて明確で他項目に依存しない
- 項目毎の内容を小さく(1日以内)
- 優先順位で並べ何からやればいいか明確にする(入れ替え可能)
スプリントプランニング
- 【WHATの計画作り】これからのスプリントにおけるゴールを話し合い必要となる機能をプロダクトバックログから選択
- 【HOWの計画作り】選択したプロダクトバックログをどのようにして実現するのか、そのために必要なものの洗い出しを行う
計画したことをなぁなぁにせず、いかに「やりきる」ことを反復し続けられるかが成功の鍵となります。定義→開発→テストにおいて何をもってOKなのかを予め箇条書きで明確にしておきましょう。
スプリントレビュー
スプリントプランニングで立てた計画がどのように実行されたか、レビューし次の構想を練るのがスプリントレビューです。関係者全員が参加します。
- 進捗についてプロダクトオーナーが説明。完成、未完成機能について
- 今回のスプリントの成果物をお披露目。開発チームがデモを行う
- デモの結果に対してフィードバックを集める
- 今後必要な機能について構想を練りプロダクトバックログを改訂する
スプリントレトロスペクティブ
プロダクトだけでなくチームも共に成長し作り上げていくもの。アジャイル 開発ではチームも成果物として考えます。スプリントレトロスペクティブでは、チームの内省を行い振り返り、改善していきます。
プランニングポーカー
ベテランも新人も一緒にチーム全員で工数の見積もりを行う手法です。マネージャーが勝手に全てを決めてしまうと、齟齬が生まれがちです。
とはいえ実際プランニングポーカーを行うとバラバラな工数になることがほとんどです。ですが、これ自体がミソで、何故そう思ったかをお互いの経験や憶測を踏まえ、納得いくまで話し合って決めます。それにより最初から認識のズレを解消するということです。
ポイント
見積もる規模感で使われる単位。あくまでも絶対的な時間ではなく相対的なものなのでポイントといった単位を使う。プランニングポーカーでは、(1)、1、2、3、5、8、13、21、34、、と前2つの数字を足すという規則の数列のフィボナッチ数列が広く使われています。仮に10、11、12、13、、と続くと感覚が狭く比較がうまくできなくなるためです。最初は細かく刻みすぎず、2、8、13、21のように大まかに始めてみるのもいいでしょう。
ベロシティ
チームの開発速度のことです。1スプリントにこなせたチームのポイントの合計です。次のスプリントの計画で、前のスプリントを振り返り達成可能であるかどうかを判断にするためのものがベロシティです。
さらに全体でどれくらいの工数となるかの見積もりが可能となります。全体のストーリーの合計が100だとして、チームのベロシティが10なら、100÷10で10スプリントとなります。1スプリント週間とする場合10週で完了すると見込みと言えます。
ベロシティは直近のものだけでなく、平均で見るようにしましょう。例えば直近3スプリントのベロシティが10、12、8でしたら8ではなく10とカウントするべきです。
朝会(デイリースクラム・たちっぱ)
進捗報告と問題の早期発見のために毎朝行います。デイリースクラムやたちっぱともいいます。基本的には以下項目を共有します。
- 昨日やったこと
- 今日やること
- 障害となっていること
そして、他の案件や家の事情で早退や途中で抜ける場合も朝会で共有します。透明性をもち、顔を合わせ決まった時間に繰り替えし集まりリズムを整える事が大切です。その際は、それぞれのPCを見るのではなくボードや、一つのディスプレイに集中しましょう!
ポイントとしては会議中に詳細に発展し、長くなってしまう時は、朝会の後に関係者のみで話すようにしましょう。二次会といったりします。
ペアプログラミング
一つのPC及びディスプレイで、2人でプログラミングを行うことです。高い集中力を保ったまま、レビューを同時に行う事となり、書き直しも少なくなるペアプログラミングは効率的です。
KPT
スプリントの最後にチームで振り返ることはとても重要な作業です。その際の手法にKPT(Keep/Problem/Try)があります。読み方はケプトと呼びます。
- Keep →よかった事・続ける事
- Problem→悪かったことや問題点
- Try→KeepやProblemをもとに挑戦する事
作業手順としては以下のようになります。
- KeepとProblemをそれぞれポストイットに書き出しておく
- Keepを貼りだしスクラムマスターが共有
- Problemを貼りだしスクラムマスターが共有
- それらを元にTryをチームで考案し、貼る
- Tryに例えば各自3票ずつなどを投票し、上位3項目を目安に優先順位及び担当者、期日を確定
更に、GKPT(Goodのシェア)や、KPTのあとに各メンバーへの感謝を示すなどというオリジナリティを追加する文化も素敵ですね。
まとめ
いかがでしたでしょうか。今回は前回の記事に引き続きこれからアジャイル 開発を始める方にむけて、アジャイル の用語を解説しました。次回はいよいよ実際にアジャイル開発の実例や運用方法を学びつつ、実際にアジャイル 開発をはじめていきましょう。
小学生プログラミング発表会受賞者インタビュー スクラッチコース①
株式会社Knocknoteが運営している子ども向けプログラミング教室で、自作ゲームの発表会を開催しました。
発表会受賞者のインタビューをお送りしていきます。
今回は三科 亮太さんです。
-とても上手に発表できていましたが、緊張はしましたか?
三科さん:最初は緊張したけど、段々やっていくうちに慣れて、ほぐれてきました。
学校で日直の時にスピーチをしていて、伝わりやすい速度、声の大きさを教えられていたのでよく聞こえたのだと思います。
-スライドを作る時に頑張ったこと、工夫したところはありますか?
三科さん:スクロールの仕方をみんなに知ってもらえたら良いなと思って、重点的に説明しました。
-ゲーム制作で工夫したところはありますか?
三科さん:最初に何県ですと表示したかったけどできなかったから、リストで何県があるかわかるようにしたり、スライドごとに県の名前をローマ字で入れたり、特産品と何県かわかるようにしました。
あと、全部の県を出すようにスプレッドシート使って確認しました。
-プログラミングを使って次に作りたいものはありますか?
三科さん:このプログラムは完成していないので、まずはこれを完成させたいです。
-発表会や普段の授業も踏まえてプログラミングは楽しいですか?
三科さん:すごく楽しいです。
スクラッチの場合はブロックだから、一個一個組み立てたり、止まったりしてもすぐに治せるし直した時の達成感もあって楽しいです。
-将来の夢はなんですか?
三科さん:鉄道会社を作って電車を走らせたいです。
-ぜひ叶えてくださいね!ありがとうございました。
ただいまTETRA UPでは体験授業や入会金などが無料になる、お得なキャンペーンを実施しています。
この機会に体験教室に是非ご参加ください。
詳細は↓をクリック
BS11「どっぷりアプリ」にて弊社アプリ『あなたは大丈夫?知らないと恥ずかしいビジネスマナー』を取り上げていただきました。
BS11「どっぷりアプリ」(2021年1月26日(火)23:00-23:30)にて弊社iOS・androidアプリ『あなたは大丈夫?知らないと恥ずかしいビジネスマナー』を取り上げていただきました。
※2021/2/9まで見逃し配信で全編無料でみれますので是非ご覧になってください。(11:07~) https://vod.bs11.jp/video/doppuri-apuri/U6lDOm/
番組で紹介していただいたバージョンから、続編として『あなたは大丈夫? 知らないと恥ずかしい ビジネスマナー plus』をリリースしました。 続編は大きなスマホ画面にも対応し、問題を追加してます。 是非ダウンロードして遊んでみてください♪
【iOS】
https://apple.co/3acPKhR
【android】
https://play.google.com/store/apps/details?id=jp.co.knocknote.BusinessMannerPlus
こちらのアプリは教室でも学べるUnityで開発してます。今度は生徒さんが作ったアプリがメディアで特集される日が今から楽しみです。
期間限定で、無料体験教室のキャンペーンも行っておりますので是非一度ご参加してみてください。
【Unityコース】
https://education.knocknote.jp/unity.php
【キャンペーンページ】※ご応募はこちら
https://education.knocknote.jp/programming…/campaign.php
オンラインでのプログラミング体験教室も開催しておりますので、お気軽にご参加ください♪
ーーーーーーー
【番組概要】
BS11『どっぷりアプリ』
毎週火曜日 11時00分〜11時30分
出演者:木本武宏(TKO)、前田希美、山田麻莉奈
番組URL:https://www.bs11.jp/entertainment/doppuri-apuri/
失敗しない!初めてのアジャイル開発①〜アジャイル 開発について知ろう〜
プロダクト開発のご依頼をいただいたり、自社開発で新プロジェクトを立ち上げることになったあなた。
アジャイル 開発という開発手法を聞いたことはあるけれど、実際どうすればいいの?何から始めればいいの?と困ってませんでしょうか。
このシリーズではそんな初心者エンジニアの方やPMになりたての方に向けて、アジャイル開発での経験や失敗を繰り返してきた筆者が、アジャイル開発について説明していきます。
- アジャイル 開発について
- アジャイル 開発のメリット・デメリット
- アジャイル 開発の用語 (失敗しない!初めてのアジャイル開発②〜アジャイル 開発について知ろう〜)
- アジャイル 開発で失敗しないために
- アジャイル 開発の最強のチームとは
- アジャイル 開発おすすめ運用法
読み終わる頃には、上記がある程度理解できて、早速アジャイル 開発に取り掛かれる状態を目標とします。※ものすごくざっくりと簡潔に書くので詳細はこちらの本などから勉強をおすすめします。
アジャイル開発とは?
アジャイル 開発について知るためには古くからあるもう一つの開発手法について触れておく必要があります。大きく分けて二つある開発手法のうちのもうひとつ、ウォーターフォールモデルです。
要件定義>設計>実装>テスト>運用
このように滝のように工程が決まっている開発手法となります。要件定義で、クライアントの要求に対して、ソフトウェアで実現することを決めます。
そして基本設計で機能やどう実現するかを決め、実装で開発に入ります。
開発が終わると単体テスト(単体機能)と結合テスト(機能間)、総合(システム)テストを行った後、ようやくリリースとなります。ローンチともいったりしますね。その後運用フェーズに入っていきます。
いかがでしょうか。とても納得感のある開発手法に思いませんか?要件定義や設計から順番になされ、スケジュール通りにピシッと進めていく。抜け漏れなく工程を管理し、レベルの高いスケジュール及び品質管理が要求されます。
開発において最も重要なQCD(Quality:品質、Cost:コスト、Delivery:納期)の見通しや精度も高くクライアント側も安心して任せられそうですね。
その反面、あることが絶対にできなくなっています。
それは、工程の後戻り、仕様変更です。
そして工程にあわせた分業化により、予算があり最適な人材配置ができる大規模開発にはむいていますが、仕様変更や予期せぬトラブルなどの不確実性には弱いです。つまり小規模のWEB開発やアプリ開発、頻繁な仕様変更が予測されるゲーム開発などはウォーターフォールは向いていないと言えます。
では、アジャイル 開発をみてみましょう。
アジャイル 開発のメリット・デメリット
アジャイル 開発のメリット
ウォーターフォールでは、要件定義>設計>実装>テスト>運用の工程の一つ一つの成果物が完成品となり、例えば設計段階で「そもそもこの機能いらなくない?」となっても要件定義には戻れないのです。
その点アジャイル 開発では以下の図のように開発工程が進んでいきます。1〜4週間のイテレーション(反復)と呼ばれるサイクルを繰り返します。
1.柔軟な軌道修正が可能
もともとAgileとは「機敏な、回転の速い」という意味です。
アジャイル 開発では、小さくスプリント という一定の期間を繰り返し進んでいくので、PDCAサイクルを回しながら柔軟に進めていくことができます。
早い段階でシステムに触れ、フィードバックを得ることができ、柔軟かつ機敏な軌道修正が可能です。
2.素早くスピーディに開発ができる
ウォーターフォールに比べ、がっちがちにスケジュールを組んだりする必要がありません。設計から開発に移行する早さが、とても早くスムーズです。後述しますが、ドキュメントの量も最小限であるため、その分開発の速度もスピーディです。
3.ドキュメントが最小限
ウォーターフォールと比べ途中で仕様変更などある前提でプロジェクトが進みます。なので、予め文書作成を細かくやる必要がありません。そして分業もウォーターフォールほどしていないため、「あのドキュメントはどうだ」「この実装はどうだ」など、チーム内での不毛な評論が発生しにくいともいえます。
さらにドキュメントが少ないので工数が削減され、低コストで短納期の実現にもつながります。中小企業ですと低コストでスピーディな開発を要求されることも多いので、アジャイル 開発はむいていると感じます。
アジャイル 開発のデメリット
1.納期遅れが多い
柔軟な分、かっちりと決まっていないため、スクラムマスターはじめチームが自律し主体的に動いていないとすぐにスケジュールがぶれます。日本の企業では上が設計した作業をこなすという工程が多いので、言葉を選ばずにいうと思考停止でも仕事がもらえ、なんとなくこなしていればどうにかなるという一面がありますよね。
アジャイルの場合、毎日のスクラムなど始め、チーム全員で決めることも多いので、プロダクトに対してある程度前のめりな姿勢が要求されます。その分チーム自体のレベルが低いと納期遅れが頻発するのも事実です。柔軟な分、無駄な贅肉(価値を生まない機能)を開発してしまったり、迷走した結果納期に遅れてしまうことも多いのです。
2.ブレやすい
スプリント毎に振り返り、見直します。その際陥りがちなのが機能のブレです。これも必要じゃない?これ本当にいる?など様々な意見が飛び交うのは悪いことではありません。しかし、そもそもなんのために作るのかというところをしっかりチームで共有していないと余計な機能を開発することになったりと、ブレがちなのも事実です。
3.難易度が高い
正直これが一番ネックではないでしょうか。チーム全体でストーリーポイントをフィボナッチ数列で見積もったりと議論する場が多くなります。そのため、チーム全体のレベルがモロに見積もりやスケジュールに反映されます。
また、プロダクトの管理も柔軟だからこそ難易度が相当高いです。会議に当てる時間もある程度割かなくてはいけないため、マネージャーは予算管理や工数管理も、バッファをもった計画を立てる必要があります。
まとめ
いかがでしたでしょうか。今回はアジャイル 開発が初めての人に向けて、ざっくりとアジャイル開発の全体像について説明しました。ウォーターフォールとの違い、アジャイル 開発のメリット・デメリットについて理解していただけたかと思います。次回「失敗しない!初めてのアジャイル開発②〜アジャイル 開発について知ろう〜」はアジャイル 開発で出てくる用語を知り、より実戦に向けた詳細を学んでいきましょう。
[MVCモデル]とは?Laravelにも使われる概念を初心者に向けて解説
今回はLaravelにも使われている「MVCモデル」と呼ばれるアーキテクチャ(構造)について解説します。
「そもそもMVCとはなんのこと?」
「MVCとは何を行っているの?」
という方に向けて、MVCモデルの概要とそれぞれの役割について、主に下記の2点について解説します。
- MVCとは?
- MVCのそれぞれの役割
前回はルーティングについて解説しました。ルーティングについては前回の記事Laravelのルーティングの書き方とパラメータの使い方にて解説しています。
1.MVCとは?
MVCとは(Model-View-Controller)の略で、処理をモデル(Model)、ビュー(View)、コントローラ(Controller)の3つに分けて記述する考え方です。機能ごとにファイルを分けることによって処理を見やすくしています。
3つそれぞれの役割は、おおまかに以下のようになっています。
- モデル(Model):データベース系の処理を行う
- ビュー(View):画面表示を行う
- コントローラ(Controller):モデルとビューの橋渡しなど、全体の制御を行う
では、「Model」、「View」、「Controller」それぞれの役割について解説します。
2.MVCのそれぞれの役割
2-1.モデル(Model)
モデル(Model)とは、「データベースとのアクセスの処理」を担当しています。
Controllerからデータを受け取る命令が出され、命令に合うデータをデータベースから探します。そして受け取ったデータをControllerに送ります。
2-2.ビュー(View)
ビュー(View)とは、「Webブラウザに表示する見た目の生成」を担当しています。
まずルーティングで、アドレスとControllerのアクションメソッドを紐付けます。ルーティングに関してはLaravelのルーティングの書き方とパラメータの使い方にて解説しています。
ユーザーがリクエスト(アドレスにアクセス)するとControllerのアクションメソッドの処理が実行されます。
Controllerがリクエストに合うデータをViewに渡します。
ViewがControllerから受け取ったデータをレンダリング(見た目を整えて表示)してユーザーに渡します。
2-3.コントローラ(Controller)
コントローラ(Controller)とは、「ユーザーからリクエストを受け取り、ModelとViewの橋渡し」を担当しています。
ユーザーからのリクエストを受け取り、リクエストに合うデータをモデル経由で受け取ります。その後モデル経由で受けとったデータをViewに渡します。
まとめ
いかがでしたでしょうか?今回はMVCの概要とそれぞれの役割を解説しました。まとめると下記の4点です。
- MVCとは、処理を3つに分けて記述する考え方
- Modelとは、「データベースとのアクセスの処理」を担当
- Viewとは、「Webブラウザに表示する見た目を生成」を担当
- Controllerとは、「ユーザーからリクエストを受け取り、ModelとViewの橋渡し」を担当
Laravelで開発を行うにはMVCの知識が必要になってきます。MVCそれぞれの役割をしっかり理解し、効率的にアプリケーションの開発をしましょう!
Laravelのルーティングの書き方とパラメータの使い方
Laravelの勉強を始めて「ルーティング」という言葉が出てくると思いますが
「正直、ルーティングについてよく理解できていない」
「ルーティングの書き方がわからない」
という方に向けて、Laravelの勉強を始めたばかりでもルーティングの基本を理解し、パラメータを使用してルーティングを記述する方法をまとめました。下記の3点について解説します。
- ルーティングの基本について理解する
- ルーティングを記述してアクセスする
- パラメータを受け取って使用する
前回の記事ではLaravelをMacにインストールする方法について解説しました。まだインストールされていない方はPHPフレームワークLaravelをMacにインストールしてブラウザに表示させる方法にて解説しています。
1.ルーティングとは?
特定のアドレスにアクセスしたとき、どの処理を呼び出して実行するかを管理するのが「ルーティング」です。
「https://~/◯◯というアドレスにアクセスしたら□□という処理を呼び出す」というアドレスと処理の紐付けを行っているのが「ルーティング」です。
デフォルトで用意されているトップページのルート情報を見てみましょう。作成したプロジェクトの「routes」フォルダの中にあるweb.phpを開くと下記のコードが記述されています。
この場合、「’/’というアドレスにアクセスしたらfunction内の処理を実行する」となります。
function内の「return view(‘welcome’)」については後で解説しますが、ここでは「トップページをブラウザに表示させている」と思っていてください。
2.「routes」フォルダとは
ルーティングの情報が入っているフォルダが「routes」フォルダです。この中にはいくつかのファイルがありますが、基本的にWebページとして公開するものは全て「web.php」にルート情報を記述します。
3.ルーティングを記述する
3-1.ルート情報(GETアクセス)
Route::get(アドレス , 関数や「コントローラ、コントローラのアクションメソッド」など);
GETアクセスのルート情報は、Routeクラスの「get」というメソッドを使って設定します。第1引数に割り当てるアドレスを、第2引数にアドレスにアクセスした時に呼び出される処理を用意します。第2引数には関数を指定する他に、「コントローラとコントローラのアクションメソッド」と呼ばれるものを指定する場合もあります。
- Routeクラスの「get」というメソッドを使って設定
- 第1引数、割り当てるアドレス
- 第2引数、それによって呼び出される処理(関数を指定する場合と「コントローラとコントローラのアクションメソッド」を指定する場合がある)
gerメソッドでアドレスと処理を割り当てる、ということがルート情報設定の基本になります。
3-2.トップページのルート情報
デフォルトで用意されているトップページのルート情報がどのように設定されているか確認しましょう。
第1引数に’/’というトップページのアドレス、第2引数に関数を指定しています。この関数の中で「return」を使用して戻り値を指定しています。この「return」で返される値が、そのアドレス(今回の場合は’/’)にアクセスした際に送られます。
viewという関数はファイルをロードし、そのファイルをブラウザに表示するという関数です。
この場合は「welcome.blade.php」というファイルを表示しています。
「welcome.blade.php」というファイルは「resources」フォルダの中にある「views」フォルダに用意されています。
3-3.ルート情報を追加する
実際にルート情報を追加します。routesフォルダの中にあるweb.phpを開き、コードを追加します。
http://localhost:8000/sample にアクセスします。
上記のような画面が表示されます。この画面が追加したルート情報によって表示された画面です。
ここでは、第2引数のreturnでHTMLのコードを直接返してWebブラウザに表示されています。
3-4.ヒアドキュメントを使用して表示する
ヒアドキュメントとは、<<<EOF~EOF;の間に書いたコードをひとつにまとめて変数などに代入できます。
web.phpに下記のコードを追加します。
http://localhost:8000/sample にアクセスします。
上記のような画面が表示されます。このように<<<EOF~EOF;の間に書いたコードを「$heredoc」に代入し、returnで「$heredoc」を返してブラウザに表示させることができます。
4.ルートパラメータを使用する
Route::getは、アクセスする時にパラメータを設定し値を直接渡すことができます。第1引数のアドレス部分に{パラメータ}という形で値を用意し、第2引数の関数では、パラメータの値を受け取る変数を引数として用意します。
web.phpに下記のコードを追加します。
http://localhost:8000/sample/HELLO!!にアクセスします
上記のような画面が表示されます。この第1引数{cmt}、第2引数$cmtがパラメータとなります。sample/{cmt}の{cmt}の値が、$cmtに代入され、受け取った値を表示させる事ができます
5.任意パラメータに変更する
先ほど書いたルートパラメータは「必須パラメータ」と呼ばれ、パラメータを設定しないとエラーになります。
先ほどのコードでhttp://localhost:8000/sample/とアクセスするとエラーになります。
第1引数{cmt}、第2引数$cmtが必須パラメータとなっているので、アドレスにパラメータを入力しないとエラーになります。
パラメータを入力しないでもアクセスできる方法が「任意パラメータ」になります。
先ほどのコードのルーティングの引数を下記のように変更します。
- {cmt} → {cmt?}
- ($cmt) → ($cmt = ‘パラメータを受け取っていません!’)
http://localhost:8000/sample/にもう1度アクセスします。
cmtパラメータは、「任意パラメータ」となり、アドレスにパラメータを入力せずにアクセスすると「’パラメータを受け取っていません!’」が表示されます。アドレスにパラメータが入力されている場合は、パラメータの値が引数に代入されます。
まとめ
いかがでしたでしょうか。今回はLaravelのルーティングの基本とパラメータについて解説しました。まとめると下記の3点です。
- ルーティングとは、アドレスと処理の紐付けを行い管理する
- ルート情報の基本は、メソッドでアドレスと処理を割り当てる
- ルートパラメータを使用して、アドレスに値を設定できる
今回は「Route::get」メソッドのみで解説しましたが、他にも「Route::post」や「Route::resouce」などのRouteクラスも存在します。また、同じPHPフレームワークの「CakePHP」でもルーティングを使用していますので、ルーティングの基本をしっかり覚えてLaravel以外のフレームワークでも活かせる知識を身につけましょう
Warning: include(/var/www/html/tetraup.com/knocknote.jp/tmpl/aside.html): failed to open stream: No such file or directory in /var/www/html/tetraup.com/news_topics/wp-content/themes/news/archive.php on line 24
Warning: include(): Failed opening '/var/www/html/tetraup.com/knocknote.jp/tmpl/aside.html' for inclusion (include_path='.:/usr/share/pear7:/usr/share/php') in /var/www/html/tetraup.com/news_topics/wp-content/themes/news/archive.php on line 24