失敗しない!初めてのアジャイル開発②〜アジャイル 開発について知ろう〜

前回の記事をご覧になってアジャイル 開発や、アジャイル 開発のメリットデメリットについてご理解いただけたでしょうか。
今回は、アジャイル 開発ででてくる用語について見ていきましょう。ただでさえ横文字が多い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以外のフレームワークでも活かせる知識を身につけましょう
PHPフレームワークLaravelをMacにインストールしてブラウザに表示させる方法

プログラミングの勉強を始めて
「Laravelを使用して開発したい!!」
「でもLaravelのインストール方法がわからない」
という方に向けて、プログラミング初心者でもLaravelをインストールできる手順をまとめました。MacにLaravelをインストールし、ブラウザにLaravelのスタート画面を表示させます。
- Laravelをインストールする準備をする
- Laravelをインストールしてプロジェクトを作成する
- プロジェクトを実行しLaravelのスタート画面をブラウザに表示する
1.Laravelをインストールする準備をする
1-1.Homebrewをインストール

Homebrew公式サイトにてコマンドをコピーし、ターミナルで実行します。
Homebrew公式サイト:https://brew.sh/index_ja
実行後、brew -v コマンドを実行し、バージョンが表示されるとインストール完了です。
1-2.Composerをインストール
ターミナルにて brew install composer を実行します。
composer -v を実行し、バージョンが表示されるとインストール完了です。

1-3.Laravelインストーラをインストール
ターミナルにて composer global require “laravel/installer” を実行します。
cd ~/.composer/vendor/bin を実行し、 lsを実行します。laravalと表示されるとインストール完了です。
1-4.Laravelインストーラを呼び出す
export PATH=$HOME/.composer/vendor/bin:$PATH を実行します。
laravel -v を実行し、バージョンが表示されるとインストール完了です。
2.Laravelをインストールする
2-1.プロジェクトを作成
プロジェクトを作成するディレクトリに移動します。
laravel new プロジェクト名 を実行しプロジェクトを作成します。
「laravelapp」という名前でプロジェクトを作る場合
laravel new laravelapp と実行します。
laravelのバージョンを指定したい場合は
composer create-project “laravel/laravel=バージョン” プロジェクト名
と実行しバージョンを指定してプロジェクトを作成出来ます。
Laravelのバージョンが「6.0」系、プロジェクト名が「laravelapp」というプロジェクトを作成する場合
composer create-project “laravel/laravel=6.*” laravelapp
と実行します。
3.プロジェクトを実行しブラウザに表示させる
作成したプロジェクトにディレクトリを移動します。
php artisan serve と実行しサーバーを起動します。
Webブラウザから以下のアドレスにアクセスします。
http:localhost:8000/

上記のようにページが表示されると完了です。動作を確認したらCtrlキー+「C」キーを押すとサーバーが停止します。
まとめ
いかがでしたでしょうか。今回はプログラミング初心者向けに、phpのフレームワーク人気No.1のLaravelのインストールとブラウザに表示する方法をまとめました。
次回から新しくLaravelのプロジェクトを作成する場合は、Laravelをインストールする準備が終了しているので、「2.ララベルをインストールする」からの手順でプロジェクトを作成することが出来るので、快適にPHP開発を進めましょう!
Laravelをインストールされた方は、次の記事のLaravelのルーティングの書き方とパラメータの使い方にてルーティングについて解説していますので是非見てみてくださいね。
秋のプログラミング発表会を開催しました
株式会社Knocknoteが運営している子ども向けプログラミング教室で、自作ゲームの発表会を開催しました。
新型コロナウイルス感染症の影響を受け、11月14日〜11月29日で6回に分け、それぞれの日程に別れて少人数で行いました。
発表会までに、何を作るか・どんな人に遊んでもらいたいか計画を立て、試行錯誤を繰り返しながら作品を完成させ、作ったゲームの内容をスライドに表し、発表の練習を行い、本番に挑みました。
発表方法
発表はスクラッチコース、Unityコースの生徒は分けず行いました。
それぞれの発表後に作ったゲームを遊ぶ時間を設け、お互いの作品の理解を深めることができました。
スクラッチコースの生徒はUnityで出来ることや、可能性の大きさに興奮し、Unityコースの生徒はスクラッチの意外な使い方や、柔軟な思考に驚き、今後の参考や刺激に大いになったと思います。
プログラミング発表会の様子
それでは、発表会の様子を一部ご紹介します。









当日はみんな緊張した様子を見せながらも、準備した成果をしっかりと発表できていたと思います。
お互いのゲームで遊ぶ際も遊び方をレクチャーしたり、コツを教えたりとそれぞれコミュニケーションを取り理解が深まった発表会となりました。
受賞者
小学生部門受賞者
三科亮太さん

スクラッチで全都道府県が出てくる脱出ゲームを作った三科さん。各都道府県の名産や特色もわかる作品でした。発表はスライドを見やすくきれいにまとめ、聞き取りやすいスピードと声の大きさで発表していました。
下津龍人さん
スクラッチで電車ゲームを作った下津さん。電車の動きや速さ、デザインにこだわりを感じる作品でした。発表はハキハキと大きな声で発表し、質問にもしっかりと答えていました。
中学生部門受賞者
寺内悠樹さん

スクラッチで戦闘機対戦ゲームを作った寺内さん。戦闘機やフレアのモーションその他の見た目など、細かい部分のこだわりが光る作品でした。発表後のそれぞれの作品をプレイする時間では、低学年の生徒にも丁寧に遊び方を教えていました。
神垣匡伸さん

Unityでジャンプアクションゲームを作った神垣さん。見た目やジャンプの動きなど、販売されているゲームさながらの完成度の高い作品でした。発表はスライドの様々な機能を使い、惹きつける見せ方をしていました。
発表会を終えて
受賞の皆さんおめでとうございます。個性が光る作品をそれぞれの工夫がされた発表をできたことが受賞に繋がったと思います。
受賞者以外の作品も素敵なものばかりで、素晴らしい発表会となりました。
今後も発表会は開催予定です。次回の発表会もお楽しみに。
【ただいま期間限定お得なキャンペーンを実施中】
ただいまTETRA UPでは体験授業や入会金などが無料になる、プログラング春得キャンペーンを実施しています。
この機会に体験教室に是非ご参加ください。
【重要】新型コロナウィルス感染拡大に伴う「緊急事態宣言」の対応について(5月30日12:00更新)
平素よりKnocknoteEducationをご利用いただき
6月3日(水)より、
つきましては、
・入室される際は、生徒様・保護者様ともに、
・入室される際は、アルコール消毒をお願いします。
・体調がすぐれない場合及び、
また、当教室におきましても以下感染拡大防止策を徹底します。
・スタッフの出勤時に手洗い及び消毒を行います。
・スタッフの体温測定、健康状態チェックを行い、
・スタッフはマスクの着用をし授業を行います。
・毎授業前後のパソコン周辺機器および教室の消毒を行います。
・定期的な窓の開放による教室の換気を行います。
上記事項について、ご不明な点等ございましたら下記番号または、
受付時間:水曜日~日曜日 10:00~18:30
弊社の営業方針は引き続きホームページまたは、
LINE https://lin.ee/q7XqbM4
Facebook https://www.facebook.com/
Twitter https://twitter.com/KnocknoteE
■当教室では、
皆様には、ご不便をお掛けいたしますが、何卒ご理解・
【重要】新型コロナウィルス感染拡大に伴う「緊急事態宣言」の対応について(5月6日12:00更新)
平素よりKnocknoteEducationをご愛顧賜りまして誠にありがとうございます。
新型コロナウイルス感染症に伴う弊社の対応方針について、お知らせいたします。
まず、この度の新型コロナウイルス感染症の拡大により、影響を受けている方々にお見舞い申し上げます。
記
■緊急事態宣言を受けた今後のサービス方針のご案内について
緊急事態宣言の延期のため、教室の再開は当初、5月7日からの予定でしたが、
6月3日(水)に延長させていただきます。
つきまして、先日お知らせいたしました内容の変更をいたします。
(1) 3月~5月の授業のお振替について
こちらは変更はございません。8月末までお振替可能とさせていただきます。
(2) 4月8日(水)~5月6日(水)までの期間のオンラインレッスンについて
通常授業と同じ料金でマンツーマンのオンラインレッスンの受講可能期間を5月31日(日)まで延長いたします。
(3) 4月8日(水)~5月6日(水)の期間、教室での普通授業の休校について
休校期間を5月31日まで延長いたします。
教室での普通授業の再開日は6月3日(水)を予定とさせていただきます。上記事項について、ご不明な点等ございましたら下記番号または、LINEにてお問い合わせください。お電話がつながりにくくなる場合や、ご返信にお時間をいただく場合がございます。
TEL:03-6709-8725
受付時間:水曜日〜日曜日 10:00~18:30
また、内容や期間は政府の方針により変更となる場合がございます。
弊社の営業方針は引き続きホームページまたは、SNSでお知らせいたします。
公式ホームページ https://education.knocknote.jp/
LINE https://lin.ee/q7XqbM4
Facebook https://www.facebook.com/KnocknoteEducation/
Twitter https://twitter.com/KnocknoteE
■当教室では、生徒様及びスタッフの安全を第一に考え運営方針を定めてまいります。
皆様には、ご不便をお掛けいたしますが、何卒ご理解・ご了承賜りますよう、お願い申し上げます。