Python Udemy講座 MVCモデル設計

Python学習【365日チャレンジ!】110日目のマスターU(@Udemy11)です。

昨日は、アシナガバチを駆除したことを紹介しましたが、以前読んだことのあるスズメバチの一生を描いた【風の中のマリア】を思い出しました。

過激な発言で有名な百田尚樹氏の作品ですが、【永遠の0】を読んでからファンになって、ほとんどの作品を読破しました。

【風の中のマリア】では、ハチの専門家の助言を受けつつ、ワーカー(働き蜂)と呼ばれるスズメバチであるマリアの一生を壮大な物語にして、スズメバチの生態系をわかりやすく解説しています。

小説としても、ハチの生態系を理解するための参考書としても楽しく読むことができるので、時間があれば読んでみてください。

風の中のマリア

評価 4.5
著者:
百田 尚樹
価格:
326円

それでは、今日もPython学習をはじめましょう!

昨日の復習

昨日は、アプリケーションを開発する上での基本的な考え方であるMVCモデルを学習しました。

  • Model(モデル)
  • View(ビュー)
  • Controller(コントローラー)

アプリケーションを上記の3つの要素に切り分けて開発することで、分業が可能になったり、エラーの修正やアップデートをスムーズに行えるということでした。

MVCモデルについては、昨日の記事で詳しく解説しているので、参考にしてみてください。

本日は、酒井さんの講座で紹介されていた模範的なMVCモデルを使ったJarvisの設計について考えていきます。

パッケージ構造

MVCモデルで対話アプリ【Jarvis】を設計するにあたって、それぞれどんなパーツに分けるのか考えるのが必要で、今回の対話アプリ【Jarvis】の構造としては、次のような構造が考えられます。

Python Udemy講座 MVCモデル設計

Python学習の最初の頃に習ったように、それぞれのフォルダには、何も記載されていない__init__.pyが必要ですが、この図には入れていません。

それぞれのファイル及びフォルダを個別にみていきましょう。

main.py

このファイルを開くことでプログラムが実行されます。

内容は、controllerフォルダのcontroller.pyファイルの関数を実行するコードです。

main.pyと同じ階層に、MVCモデルのそれぞれのファイルをフォルダにまとめたjarvisフォルダを作っています。

そのjarvisフォルダの中身を見ていきます。

modelフォルダ

Python Udemy講座 MVCモデル Model

次のmodelフォルダですが、対話処理を行うrobot.pyとCSVファイルの処理を行うranking.pyの2つのファイルを格納しています。

これらのファイルは、controller内のcontroller.pyから命令を受けて実行されます。

viewフォルダ

Python Udemy講座 MVCモデル View

viewフォルダ内のconsole.pyは、表示処理を担当するファイルで、templatesフォルダ内のテンプレートを参照する役割を持っていて、model内のrobot.pyから命令を受けて実行されます。

デフォルトで用意されているテンプレートを参照させたり、別にテンプレートを用意して参照させたりすることができます。

controllerフォルダ

Python Udemy講座 MVCモデル コントローラー

このフォルダ内のcontroller.pyは、modelフォルダ内のrobot.pyを実行する関数を持ったファイルです。

用意されているロボットを起動させてコントロールするためのファイルですね。

templatesフォルダ

Python Udemy講座 MVCモデル Templates

デフォルトで用意されているテンプレートを格納しているフォルダで、hello.txt
recommend.txtlike.txtgoodby.txtが用意されています。

まず、robot.pyから命令を受けたview内のconsole.pyTemplatesフォルダのパスを参照します。
その後、robot.pyが指定したファイルが読み込まれ、コンソールに表示されるという流れになります。

パーツ分けが難しい

酒井さんの講座では、パーツごとに分けることで、わかりやすくなるという解説がされていましたが、初めてMVCモデルを学習する人にとっては、ほんと頭の中に【???】が飛び交うくらいわかりにくくなっています。

解説している講師の側からすると、すごく簡単に理解できることなのかもしれませんが、初めて聴く側としては、解説スピードが早すぎて、1回では全く理解できません。

幸いなことに、Udemyは何度でも繰り返して学習することができますし、解説スピードが早ければ、速度を調節することも可能です。

初めてのことを学習するのは難しいのが当たり前なので、何度も繰り返して学習しましょう!

私の解説も、自分の復習用に書いているところもあるため、分かりづらいところがあるかもしれません。

より深くPythonを学習したい方には、酒井さんの講座をおすすめです。

Udemy講師 酒井さん プログラミング Python

今日は、対話アプリJarvisのMVCモデルの設計を学習しましたので、明日からは、それぞれのパーツごとに学習していきます。

それでは、明日もGood Python!