Model View Control。オブジェクト指向プログラミング言語の元祖のひとつ「Smalltalk」にも使用されていたアプリケーション・アーキテクチャ。アプリケーションをModel(ロジック)、View(プレゼンテーション)、Controller(通信、制御)の3つの部分に分割して、それぞれを独立して開発していくというもの。
Eloquent(エロクエント) .NET Core MVC で当てはめるとしたら、Serviceだなと思いました。 Controllerに記述すると書いてあるけど、こちらの参考サイトの内容だと、いわゆる「CRUD機能」の内容で、 それはつまり、Service に書くことですね。 というか、公式ドキュメントのEloquentの準備:Laravel 10の冒頭で、ORMだと紹介している。 かつ、それに続く以下の文章の内容で、Service だとハッキリとした。 Eloquentを使用する場合、各データベーステーブルに対応する「モデル」があり、 そのテーブル操作に使用します。 Eloquentモデ…
初めに アプリの構造を考えたときに、MVCかMVVMかどちらにするか悩むことがあると思います。私はこれまでJavaのSpringBootの業務アプリばかり作ってきましたので、MVCにはなじみがあり理解しているつもりですが、MVVMは実務で触ったことがなく、あまりなじめずにいました。 ただ、最近フロントエンド開発にも関わりだし、Reactを触る機会がありました。その中でなぜMVVMがよくわかっていなかったのかつかめたので、忘れないうちにまとめておこうと思います。同じようなことで悩まれている方の参考にあれば幸いです。 MVCとは MVCとは、Model/View/Controllerの3要素で成り…
こんにちは! スマレジ テックファームのMichiです! みなさんはFlaskというフレームワークをご存知でしょうか? FlaskはPython製のマイクロWebフレームワークで、MVTモデル(Model, View, Template)というアーキテクチャを採用しています。 ですが、「やっぱり使い慣れたMVCの枠組みで実装したい!」ということで、今回はFlaskを無理やりMVCっぽく運用する方法を解説します。 解説 ディレクトリ構成 基本設定 認証系 コンフィグ データベース Flaskインスタンスの作成 モデル ルーティング コントローラ まとめ 解説 アプリのサンプルはFlask公式ドキ…
こんにちは! スマレジの テックファーム(SES 部門)のWebエンジニア やまて(@r_yamate) と申します。 はじめに 前回の記事(④登録機能の作成)で、商品データを Products テーブルに登録する、登録機能を作成しました。 本連載の目次 本連載では以下の順序で進めています。 ① Docker での開発環境構築 ② Zend Framework のインストール ③ 一覧画面の作成 ④ 登録機能の作成 ⑤ 編集・削除機能の作成(今回) ⑥ バリデーションメッセージの日本語化 目次 はじめに 本連載の目次 目次 本記事完了時点のソースコード 商品管理ページの構成 1. 編集機能の作…
こんにちは! スマレジの テックファーム(SES 部門)のWebエンジニア やまて(@r_yamate) と申します。 はじめに 前回の記事(③一覧画面の作成)で、Webサービスのトップページとなる一覧画面を作成しました。 本連載の目次 本連載では以下の順序で進めています。 ① Docker での開発環境構築 ② Zend Framework のインストール ③ 一覧画面の作成 ④ 登録機能の作成(今回) ⑤ 編集・削除機能の作成 ⑥ バリデーションメッセージの日本語化 今回は、商品データを Products テーブルに登録する、登録機能を作成します。 目次 はじめに 本連載の目次 目次 本記…
こんにちは! スマレジの テックファーム(SES 部門)のWebエンジニア やまて(@r_yamate) と申します。 はじめに 前回の記事(②Zend Framework のインストール)で、Zend Framework の Welcome 画面を表示できました。 本連載の目次 本連載では以下の順序で進めています。 ① Docker での開発環境構築 ② Zend Framework のインストール ③ 一覧画面の作成(今回) ④ 登録機能の作成 ⑤ 編集・削除機能の作成 ⑥ バリデーションメッセージの日本語化 目次 はじめに 本連載の目次 目次 本記事完了時点のソースコード 商品管理ページ…
ER図は以下のツールを使いました。とても便利でした。無料です。 Flowchart Maker & Online Diagram Software 1対1のリレーション hasOne() イメージはこんな感じ Tweet_userモデルでTweet_contentを用意する public function Tweet_content() { return $this->hasOne('App\Tweet_content'); } このようにすることでプロパティにアクセスする感覚でリレーション先の値を得ることができる。 Tweet_content()と定義したが、以下のように()はいらない。 T…
モデルクラス内の入力必須プロパティを、局所的に無効化する方法です。
プログラミングを学ぶ上で 重要なフレームワークの1つである 「MVC」とは何かを プログラミング初心者の目線から 説明していきたいと思います。 MVCとはModel、View、Controllerを 略したものあり それぞれプログラムの設定を記載する フォーマットみたいなものです。 このMVCの設定をすることで Webアプリが動くのです。 では、それぞれにどのような 設定がされることによって、 僕たちが普段利用している Webアプリは動いているのでしょうか。 僕たちは普段、Webアプリケーションに触れるとき、 どのような情報を扱うでしょうか。 今まさに目にしているのは 文章という文字情報ですし…
・IT(ネットワーク)の学習記録 ・WEBサイトを見るには クライアント(PC)がwebサーバにHTTPリクエストを送信し、webサーバがクライ アント(PC)にHTTPレスポンスを返すことで、WEBサイトは閲覧可能となる。 https://www.google.com(/index.html)→()については通常は省略されている。 ・WEBサイトのシステム ・静的WEBシステム →サーバに予め用意された(html)ファイルがリクエストに応じて返されるWEBシス テム。 ・動的WEBシステム →サーバにあるフレームワークがリクエストに応じて(動的にhtml)ファイルを作成 して返すWEBシステ…
エンジニアの渡邉です。普段はLIFULL HOME'Sの売買領域のエンジニアチームにて技術リーダーとして開発を担当しています。好きなNginxのモジュールはngx_small_lightです。 ここ数年、LIFULLの開発部門では「開発生産性」と「品質担保」の重要性が再注目されています。 LIFULL HOME'Sの主要なリポジトリは、10年以上にわたり運用され続けており、数多くの開発者が日々の改善に尽力しています。 しかし、長年にわたる蓄積によって、アプリケーションの要件を満たすための実装が複雑化し、現在では実装時に調査、開発、レビュー、テストのすべての工程でそれぞれ必要以上に時間がかかる結…
昨年末、アドベントカレンダー記事用に実験的に「GitHub Codespaces + LINE OpenAPI による C# での LINE Bot 開発がすぐ始められるテンプレート」を作っていました。 himanago.hatenablog.com 明日このハンズオンイベントをやるので(準備がギリギリすぎる) linedevelopercommunity.connpass.com ここで使えるように以前の課題を克服してある程度使えるように改良してみました! 今回作ったテンプレートリポジトリ こちら。使い方は README に簡単に書きました。 最新の LINE Messaging API の…
こんにちは王子です。 最近は恐竜が闊歩するオープンワールドで過酷なサバイバルに挑むアクションゲーム「ARK: Survival Ascended」にハマっています。 旧Arkもひたすら遊んだので目新しさはありませんが、最初からIslandでプレイしてテリジノサウルスやアルゲンタヴィスをテイム&ライドするくらいまで進みました。 打倒!ブルードマザー!! さて、ここ数日、SSR(Server-Side-Rendering)方式の実現方法について調査する機会がありました。 SPA/SSR/SSGについては本記事の主題ではありませんので、先に簡略な表現で記載すると下記のようになるでしょうか。 SPA(…
RSpecを用いて、テスト駆動開発(TDD)を行う方法をChatGPTに聞きました。 各テストケースで用いるマッチャーについては、機会を改めて聞こうと思います。 RSpecについて教えてください。 contextの使用例も見たいです。 上の例では、describeの引数にクラスのリファレンスを渡している箇所がありますが、このリファレンスはコードの振る舞いや出力にどのような作用を及ぼしますか? subjectやlet、before、afterなどのヘルパーメソッドの使い方も知りたいです。 これらのヘルパーメソッドの適用単位である「各テストケース」というのはどのように定義されていますか? befo…
Rubyistに、俺はなる!?ということで、以前にRubyを触った記事が実に6年前の2018年! ただ、この時は本当に触りだけ、四則演算やputsメソッドで文字を出力しただけです。 この度、6年ぶりにRubyおよびRuby on Railsをがっつり触りたく、思い立ちました!
はじめに みなさんこんにちは、torihaziです。 最近疲れが溜まってまともにできていませんでしたが、 爆睡して回復してなんとか今日から爆速で巻き返していきたいと思います!! Webエンジニアになるために!! RailsとかGoを手なづけるためにも今日からまた頑張ります!! 今日からRails tutorial を行います! 著作権に引っかからないように パクリには気をつけます! それではltg!! はじめに 最初から流し読み Hotwire MVC アーキテクチャ render メソッド デプロイする 終わりに 最初から流し読み Hotwire Hotwireとは?|猫でもわかるHotwi…
はじめに みなさん、こんにちは torihaziです。 今回は 2週間くらい前から Ruby on railsを学習しています。 ちゃんとしたフレームワークを学ぶのは これが初めてになりますがなんとかノリでやっていこうと思います! 今回はいつもとテイストを変えて 授業のノートのように 不明点や詰まったところを中心に 1章1章まとめていこうかと思います。 丸パクリだけは気をつけて頑張ります! それでは ltg はじめに 学習したこと 1章 Rails の前に Rubyを学ぶ 全てがオブジェクト メソッドとは null ではなく nil if キーワード引数 クラスとモジュール & ぼっち 2章 …
「こんな感じのAPIサーバー立てといて」なんて言葉、開発してれば日常茶飯事です。 そんな「APIサーバーを立てる」と言ってもいろんな種類がありますね。 今回はよくあるAPIサーバーを一通りPythonで立てるだけ立ててみようと思います。 ランキング参加中Python ランキング参加中プログラミング
応用情報の過去問を解いた時のメモ ディスプレイ 有機EL:電圧、発光素子 ブラウン管:電子ビーム 液晶:透過する光 プラズマディスプレイ:放電、紫外線、蛍光体 略語(言語) DDL:Data Definition Language。データベースの定義に使われるSQL。 HDL:Hardware Description Language。デジタル回路の構成を文章で記述。FPGA、直接論理構成 UML:Unified Modeling Language。オブジェクト指向開発。 XML:eXtended Markup Language。システム間のデータ交換。利用者が自由に定義。 DisplayPo…
皆様、こんにちわ。U_OK_2023 です。 本日も、夕方からWEB面接がありました。結果は後日とのことです。 本日もオリジナルアプリの作成をしました。前回、フォームに情報を入力できるところまでをしたので、本日は、その入力した情報をテーブルに保存するところまでを実装しました。 まず、フォームで入力した情報をテーブルに保存するためには、MVCの流れを意識します。 1️⃣ルーティングでcreateアクション設定する。2️⃣コントローラーにcreateアクションを定義し、 保存するために入力した情報を paramusで許可をする処理を記述する。3️⃣情報を入力するビューのform_with に @モ…
このメモは、2024年3月16日から3月17日に、アメリカの東海岸ニューヨーク州で開催されるStreet Fighter VI(ストリートファイター6)大会「Red Bull Kumite 2024 NEW YORK」に関する情報メモです。 ※この画像は下記のサイトのスクリーンショットですhttps://www.start.gg/tournament/red-bull-kumite-2024-new-york/detailsこの記事は2024年3月15日に更新しました。フランス勢Valmasterの不参加、彼の代役としてMisterCrimsonの本戦出場決定。MisterCrimsonはPL…
皆様、こんにちわ。 U_OK_2023 です。 本日も、朝から就活のために求人を探したり、メールや通知の対応をしておりました。 その合間に、オリジナルアプリの続きをしております。内容は、タスク投稿機能です。 早速、 エラー発生 ルーティングを設定し、コントローラーを記述し、対応するビューを作成。ビューが表示されるか確認するために、 localhost:3000/tasks/new へアクセスしたところでエラーが発生 ①何が問題でどうしたい エラーを解決し、tasks/new ページを表示させたい ②現在(位置) MVCにおけるV ③問題点 モデル が nil であるということ ④仮説 unde…
まだtextしか返していないので、HTMLを返せるようにしよう。というわけで、 入門 | Spring MVC で Web コンテンツの提供 を読んでいこう。 といっても、このページに書いてあるのは大した話じゃない。前回作ったRestControllerを普通のコントローラーにして、受け取ったパラメータをそのまま画面に返す様なメソッドを作る。こんな感じ。 @Controller public class HelloWorldController { @GetMapping("/greeting") public String greeting( @RequestParam(name="name…
という勉強会をやることになった。そういうことをやってみたい、教えてほしいという若者が多いのである。 そういう若者を相手にすると、勉強になるのは私である。若者は私がちょちょいでそんなことが出来ると思っているようだが、そんなことやる機会は普通に仕事していたらないのである。だいたい困っている現場に呼ばれるだけだからな。だいたいの知識はあるつもりだけども断片的だし、最初からやるとしたらどうするのがベストとか、よく知らないのである。というわけで、一番ためになっているのは私であり、若者をダシに知識の整理をして楽しもう。 とはいえ、プログラミングの学習も、環境を作ってHello Worldするまでが一番難し…
Play Framework 3.0.x (以下、Play) を始めたばかりの方向けに、サンプルを進めるうえで困ったところを共有する目的で書いています。 Play にて、エラーレスポンス(クライアント、サーバー)の表示画面を、変更したときのメモです。 以下、目次 背景 方針 結果 ほかのページと統一感のあるページを表示する onClientError, onServerError を明示的なNotFound 等にも利用する できてないところ 参考にしたところ 背景 ドキュメント にあるとおり、Play では、 リクエストに対して、自動的にclient error を検出する アプリでの例外スロ…