タグ

MVCに関するa-hamahamaのブックマーク (30)

  • まだMVC,MVP,MVVMで消耗してるの? iOS Clean Architectureについて - Qiita

    <この記事は「Money Forward Advent Calendar 2015」の22日目の記事です> この記事は、iOS Clean Architectureと実際にコードへ適用した内容について紹介します。 コードについては、改善の余地があるため随時修正していくと思います。 → github: https://github.com/koutalou/iOS-CleanArchitecture iOS開発においてよくある問題点 「ビジネスロジックはModelに置くべき」と言うが、開発者によって理解や意見がバラバラで統一的な実装ができない 度重なる仕様変更や複雑な仕様に対応するためにViewControllerや特定のModelが肥大化し、ビジネスロジックの質を見失う MVC,MVP,MVVMだけで考えると、どこかのレイヤが複数の責務を持つことになり依存度の高い複雑なコードが生まれてし

    まだMVC,MVP,MVVMで消耗してるの? iOS Clean Architectureについて - Qiita
  • ~OSSから学ぶ~ MVCフレームワークの保守性がモリモリ上がるクラス設計 - dely Tech Blog

    こんにちは、delyコマース事業部エンジニアの小川です。 先月11月に入社し、エキサイティングな毎日を過ごしています。 この記事はdely Advent Calendar 2019 - Qiitaの24日目の記事です。 昨日はSREの松嶋さんが「AWS RunCommandを使ってEC2上に監視ダッシュボードをサクッと作る(Ansible+Terraform+Grafana編)」という記事を書いてくれましたので是非そちらも読んでみてください! tech.dely.jp コマース事業部では、現在「事業開発」と「ソフトウェア開発」がほぼ同時に進行しており、プロジェクトにおける確定要素と不確定要素が複雑に絡み合っています。 スピード重視でゴリゴリ実装していくのも興奮しますが、変化に耐えづらい実装をしてしまうと、その後の開発スピードに影響していまい、事業のスピードが落ちるなんて事にもなりかねません

    ~OSSから学ぶ~ MVCフレームワークの保守性がモリモリ上がるクラス設計 - dely Tech Blog
  • ソフトウェアアーキテクチャの歴史 - tasuwo's notes

    改めて ソフトウェアアーキテクチャ GUI のアーキテクチャの歴史を調べてみたくなった。来の MVC とは何か?何が正しくて何が間違っているか?も重要なのだが、それよりは、なぜそれが生まれたのか?何を解決しようとしたのか?どのような問題点が生まれて、それをどう工夫して解決・発展してきたのか?を知りたい。しかし、そういうことがまとまっている日語の情報が少ないので、自分で色々かいつまんでメモしておく。 MVC の原点は 70 年代にまで遡り、実装としては Smalltalk-80 のクラスライブラリとして実装されたのが最初だと思われる。しかし、後世に大きな影響を及ぼしたポイントをいくつか持ちつつも、当時のアーキテクチャが現代においてそのまま利用されているケースはほぼないといっていい。したがって、単に MVC といった時には大抵最初期の MVC を指すことは少なく、区別するために最初期の M

    ソフトウェアアーキテクチャの歴史 - tasuwo's notes
  • 開発中のアプリをMVVMからMVCに戻した理由 MVVM×RxSwiftでの開発で得られた教訓

    2018年12月12日、株式会社サイバーエージェントにて「CA.swift」の 第7回が開催されました。AbemaTVやAmeba、AWAなどを担当しているiOSエンジニアが登壇し、それぞれのチームの開発ノウハウを惜しみなく語るイベント。今回は、『iOSアプリ設計パターン入門』の著者2名を含む5人のエンジニアが、iOS開発における知見を披露します。プレゼンテーション「なぜうちのチームは開発中のアプリをMVVMからMVCに戻したのか」に登壇したのは、株式会社ゆめみの史翔新氏。講演資料はこちら 開発中のアプリをMVVMからMVCに戻した理由 史翔新氏:先ほど紹介に預かりました史と申します。ふだんの勉強会では、loveeとか、星野さんと呼ばれているので、お気軽にどれでも好きな呼び方でお願いします。 というわけで、「なぜうちのチームは開発中のアプリをMVVMからMVCに戻したのか」というタイトルで

    開発中のアプリをMVVMからMVCに戻した理由 MVVM×RxSwiftでの開発で得られた教訓
  • 図解!どのサイトを見てもわからなかった人のためのMVC - Qiita

    MVCとは UIを持つアプリケーションソフトウェアを実装するためのデザインパターンである。 MVCではプログラムをModel、View、Controllerの3つに分割して書くことで機能の独立化・可読性の向上を図ることができる。 MVCを調べるとこんな感じの説明がでてきたと思います。 でも最初はピンとこないかもしれません。「デザインパターン?」「機能をなんで独立させなくちゃいけないの?」「結局なんのためにMVCにするの?」 今回は10サイトくらい見ても結局わからなかった人のためになるべく難しい言葉を使わずに、図解してわかりやすくMVCについて説明していきます。 日常生活に即して例をみていきましょう 一旦プログラムから離れて、わかりやすいところからMVCについて解明していくことにします。 おじさんのレストラン 子供のころから自分の店を開くことを夢見ていたおじさんが、ついにレストランを開業しま

    図解!どのサイトを見てもわからなかった人のためのMVC - Qiita
  • Ruby on Railsの「えせMVC」の弊害

    先日のエントリーでも少し触れたが、Ruby on Railsの最大の問題点は、それが持つ「一見そのフレームワークがMVCの形をとりながら、MVCの最も大切なところを外している『えせMVC』である」点にある。MVC(Model View Controller)がなぜ必要かを根底の部分でちゃんとと意識せずにRailsアプリケーションを作ると、後々ひどい目に会うので注意が必要である。 その意味では「RailsでMVCを学ぶ」などもっての他だし、「JavaにもRailsと同じようなフレームワークを作って業務用アプリの開発を効率化しよう」などという発想もとても危険である。 ということで、今日はまずはMVCの解説から。 MVCの発想の根底には、「モジュール化と情報の隠蔽により、プログラムがスパゲッティ化するの(コード間の相互依存関係が複雑に入り込んでしまってにっちもさっちも行かない状態になること)を避

  • えせMVCについてそろそろ一言言っておくか - ひがやすを技術ブログ

    Ruby on Railsの最大の問題点は、それが持つ「一見そのフレームワークがMVCの形をとりながら、MVCの最も大切なところを外している『えせMVC』である」点にある RailsのえせMVC疑惑で盛り上がってますね。Railsが「えせMVCフレームワーク」ではないのは、みんな知っていると思うので、記事、コメントをみて勘違いしている人が多そうな部分に一言書いておきます。 まず、おかしいのはsatoshiさんのこの意見。 PhotoShareは主にRailsで作られているので、ModelはActiveRecordが担当しているわけだが、Modelのレイヤーが非常に薄いために(O/Rマッピングをしているだけ)、データベースの整合性の責任がController側にある。そのため、ちょっとした機能変更のたびにAPIレベルでのテストを大量に走らせなければならないし、それでもどうしてもミスが生じてし

    えせMVCについてそろそろ一言言っておくか - ひがやすを技術ブログ
  • ファットコントローラはFacadeパターンで撲滅しよう - はむはむエンジニアぶろぐ

    MVCのコントローラのレガシーコードによくあるのが、ファットコントローラです。 最初は、単純なロジックだけだったのでコントローラに書かれていたロジックが月日を追うごとに肥大化して誰も読めなくなったというのはあるあるです。 ファットコントローラのビジネスロジックのテストコードを書くのはViewが絡む為、難しいです。 なので、ファットコントローラ = テストがないと言ってもいいでしょう。 そんな、ファットコントローラさんはGoFのデザインパターンの一つFacadeで撲滅できます。 ファットコントローラ 今回、撲滅したいファットコントローラ。 要件 ユーザがべ物と購入数を指定し支払額を送信すると、購入額の計算をし商品の支払いを行う クーポンの発行も行う 何かしらエラーが発生したらログを残す <?php class TopController { public function buy() {

    ファットコントローラはFacadeパターンで撲滅しよう - はむはむエンジニアぶろぐ
  • MVCパターン再考 - よちよち歩きのITエンジニアのメモ

    MVCパターン再考 著者: ふじさわゆうき 更新日: 2016/10/14 背景 Java, Groovy, C++, C#などいろいろな言語使ってアプリケーションを作成するなかで、MVCパターンを常に意識して開発してきました。 自分的な解釈だと、上記のような大雑把の分類です。 Model: ビジネスロジック、データベース処理、データオブジェクトなど View: 画面出力 Controller: ViewとModelの仲介役、ユーザーの入力をModelに渡すなど しかし、あるセミナーで「ネイティブアプリでは、MVCは合わない」という話を聞き、改めて、MVCがどこまで適用できるものなのか、そもそもMVCってなんだろう?と再考したくなりました。というわけで、MVCModelを再考してみます。 MVCと一言で言っても・・・ 改めて調べて分かったのですが、一口にMVCといっても、以下、分類があるこ

    MVCパターン再考 - よちよち歩きのITエンジニアのメモ
  • 基本: MVC のベストプラクティス

    モデル・ビュー・コントローラ (MVC) は、ほとんど全てのウェブ開発者が知っている言葉ですが、実際のアプリケーション開発において MVC を正しく使う方法を知らない人がいまだに沢山います。 MVC の背後にある中心的なアイデアは、コードの再利用性と関心事の分離 です。 この節では、Yii アプリケーションを開発するときにより良く MVC を守るための一般的なガイドラインをいくつか説明します。 ガイドラインをより良く説明するために、ウェブアプリケーションは以下のようないくつかのサブアプリケーションから構成されるものと仮定します。 フロントエンド: 一般のエンドユーザのための公衆に向けられたウェブサイト。 バックエンド: アプリケーションを管理するための機能を提供するウェブサイト。これは、通常、管理スタッフにのみアクセスを許すものです。 コンソール: アプリケーション全体をサポートするために

    基本: MVC のベストプラクティス
  • これが最強のMVC(iOS) - Qiita

    前に、MVCについての記事を書かせて頂いたのですが(おデブになりがちな、UIViewControllerをスッキリさせる魔法のルール)、色々調べ考えている内に「間違ってるぞ」ということに気づきました。 それを踏まえ、実際にUITableViewを使った実際に良くありそうなコードを具体例に上げご説明したいと思います。 そもそもMVCとは MVCとは、有名なこのスライドに書かれている通りこれ「やはりお前らのMVCは間違っている」です。 しかしほとんどの世に出ているiosアプリのMVCの構造を見ると以下の図の様になっています。 (これはこのスライドの中で全力でdisられているMVCです) そして私は、「なんだよ、みんなMVC間違ってんじゃん、ははーん」と思い前回の記事を書きました。 おデブになりがちな、UIViewControllerをスッキリさせる魔法のルール この記事鵜呑みにした人ごめんなさ

    これが最強のMVC(iOS) - Qiita
  • 「Railsでシステム作ってます。MVCでMとCの境目がよくわかりません(><)」への回答を試みる - Qiita

    これがわからない理由 恐らくあなたは コントローラが依存しているHTTPの世界の要素についての理解 「疎結合にする」という目 のどちらかを持っていないと想像できる。 簡単な解説 コントローラについて コントローラはHTTPの仕様に依存したものが入っている。例えば下記のようなものだ。 リクエスト(GET引数やPOST引数、Header、etc...) レスポンス(WEB用のHTMLの描画、リダイレクト、etc...) セッション つまり、コントローラは「このシステムがWEB用のシステムである」という事実に立脚している。 疎結合について システムには変更がつきものだ。だからなるべく変更しやすさを残しておく設計が望ましい。例えば 今までPC用のViewしか無かったが、これからはケータイ用のViewも必要になる。 これまで人が画面側で入力していた値があったが、これからはその取得がセッションからも行

    「Railsでシステム作ってます。MVCでMとCの境目がよくわかりません(><)」への回答を試みる - Qiita
  • ASP.NET MVC コントローラの分け方

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 質問 2013年12月18日水曜日 4:51 お世話になります。 ASP.NET MVCのコントローラの分け方について質問させて下さい。 例えば、複数人のスケジュール(TODOリストのような)を管理するソフトを作るとします。 このソフトには、スケジュールを閲覧・編集するための次のようなビューがあります。 選択ビュー:スケジュールを閲覧・編集したいメンバーを選択する 日次ビュー:選択したメンバーのスケジュールを1日分表示する 週次ビュー:選択したメンバーのスケジュールを1週間分表示する 月次ビュー:選択したメンバーのスケジュールを1ヶ月分表示する 日次・週次・月次ビューは、それぞれ表示される情報量が異なり、日次

    ASP.NET MVC コントローラの分け方
  • Backbone.js ではじめるクライアントサイド MVC プログラミング | CYOKODOG

    MVC と言えば Apache Struts をはじめとするサーバサイド・フレームワークを想像しますが、 今回は JavaScript による大規模開発の際に採用されるクライアントサイド MVC フレームワーク「Backbone.js」の使い方についてまとめてみました。 (厳密にはクライアントサイドの場合、MVC とは呼ばず MVVM とか MV* とか呼ばれてるようです。) 前提 Backbone.js の構成を簡単に言ってしまうと 単一データの管理を行うモデル 複数件のモデルの管理を行うコレクション 画面の管理を行うビュー の3つの主要モジュールを軸に構成されており、Underscore.js、jQuery(Zepto)に依存するかたちで動作するようになっています。 利用の際は、underscore.js、jquery.js、backbone.js の順で読み込みます。 //cdnjs

  • Twisting the MVC Triad - Model View Presenter (MVP) Design Pattern

    In this post we’ll review the way in which MVP (Model View Presenter) design pattern evolved from Smalltalk’s old fashion 'Classic MVC' and 'Application Model MVC' patterns (see above) and the way in which it has developed and varied during the years that followed. Hopefully, after reviewing the pattern and its variations against its MVC predecessors we'll be able to distinguish MVP from MVC and u

    Twisting the MVC Triad - Model View Presenter (MVP) Design Pattern
  • Model-View-Controller page

  • はらぺこ日誌» ブログアーカイブ » Observer パターンでコンソール MVC っぽいことをやってみる – C++ のための API デザイン

    ライブラリ API の設計手法を学ぼうシリーズの第2弾です。前回の記事はこちら。以下の教材を利用しています。 C++ APIデザイン さて、API のラッピングパターンについてはざっと読むだけで終了とし、今回は Observer パターンについてさらってみました。 MVC っぽいことをやってみたい。 書では、オブザーバーパターンの説明に入る前に、 MVC アーキテクチャについての説明がありました。 シンプルなアプリケーションでは、コントローラはユーザ入力に基づいてモデルへの変更に影響を与え、こうした変更をビューに通信して、UIを更新できるようにする。しかし、実際のアプリケーションでは、通常、水面下のモデルへの追加変更を反映するために、ビューも更新する必要がある。(…中略…)とはいえ、先ほど述べたように、モデルコードはビューコードを静的にバインディングして呼び出すことはできない。そこでオブ

  • サービス終了のお知らせ - NAVER まとめ

    サービス終了のお知らせ NAVERまとめは2020年9月30日をもちましてサービス終了いたしました。 約11年間、NAVERまとめをご利用・ご愛顧いただき誠にありがとうございました。

    サービス終了のお知らせ - NAVER まとめ
  • MVCモデル

    MVCモデルという用語は、今時のIT関係のエンジニア(=エンジニアと言ってもピンキリですが...)の方なら誰でも名前くらいは聞いたことがあると思いますが、大抵の人は「アレだろ?入出力と他のロジック切り離して...云々」みたいな認識でしょう。勿論間違いではありません。でも、具体的にどう実践しているかというレベルの話になると、仕事で使っている開発環境が対応してるからとかStrutsでWebアプリを開発して...といった感じではないかと思います。 ここではMVCモデルを使ってデスクトップアプリケーションの仕様を決定して実装する方法を解説します。

  • iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い

    iOS/Androidアプリを作る際に理解しておいて欲しい「Model」という役割について説明します。わりと意識していないケースがあるので、チェックしてみてください。Read less

    iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い