Pull to refresh
0
0
CrazyMan @torrison

Пользователь

Send message

Где SQL инъекция проходит? Какой файл и какая строка? (Код примера 2 летней давности если что)

Наверное вы правы)
.NET компоненты и веб-сервисы — это разные миры.

Ок, негатива я наслушался, но по итогу никакого конструктивного совета не было.

Будем считать этот пост негативным)
Старый пример кода веб-приложения если кому интересно: http://inside.ikiev.biz/
Не вижу смысла обсуждать так как возможно вы бы НЕ сделали то, что делаем мы с той же скоростью и ценой, а было бы дольше и дороже в разы.

И как я понимаю вы специалист НЕ по Web-приложениям и скорее всего работаете с кучей сложного кода, где скорее всего проблема работы с MVC не присутствует.

Есть пример кода с хорошей архитектурой по вашему мнению? Киньте ссылку.

Просто на словах вы так правильно все говорите, интересно какой код вы пишите для веб-приложений.
Like — всмысле «мне нравится» например у поста в ленте ))

ограничения на дизайн


У нас не встречалось этой проблемы

В общем основная цель — это простота.

Если вы считаете, что то что написано бесполезно — Ок!

Возможно в вашей ситуации это не нужно. Вы уже достаточно минусов поставили не так ли?

Вот только судя по просмотрам, остальным в принципе пофиг)

А значит тема не особо актуальна.
общая стоимость поддержки невелика


Думаю на этой точке можно остановить спор.

В вашем опыте не велика, а в нашем убытки от умников хоронят проекты и приносят огромные убытки по итогу.

Тема довольно сложная и как я вижу кроме нашей зарубы никто не участвует, поетому думаю нет смысла обсуждать сложные детали вопроса построения приложения на базе MVC паттерна
Кстати например Like используется одна во всех 3 случаях.

AJAX и API работают одинаково и Cron может GET запросом например давать данные.

Но в нашем случае выносить логику на 2 уровень имеет смысл лишь когда нужно, а не всегда. Тоесть это расширение возможностей для упрощения в большом кол-ве ситуаций.
Кстати сама идея переноса бизнес-логики в контроллер более удобная для веб-сайтов. Так как с ростом технологии AJAX очень много простых запросов к системе и проще отдавать результат сразу прям в контроллере, что бы не усложнять систему.

И так складывается, что практика противоречит теории.
… и нет, добавленные вами «Core Components» не имеют никакого отношения к шаблону MVC.


Тема статьи: Расширенная MVC архитектура

Если мы например добавляем перед запуском контроллера роутер как отдельный класс/объект + напаковуем в абстрактный класс контроллера кучу возможностей, в том числе в контроллере уже может быть например данные о пользователе из Базы данных. То это уже не MVC, а что-то новое на основе MVC

Кроме того, контроллер например может содержать такой код:

if ($_GET['stop_mirror_server']) {
   $this->load->library('server_control');
   $this->server_control->stop();
   $this->load->model('mailer');
   $this->mailer->send_stop_server_noty();
}


server_control может быть вообще адаптером который через командную строку потом вызовет shell который остановит сервер.
А то что надо сразу письмо отправить — это уже бизнес логика.

Суть статьи — предложить расширенное определение MVС для веб приложений.

Просто MVC мало. А «нужная инфраструктура» у каждого своя и часто перегружена и не оптимальна.
CodeIgniter был приобретен Канадский институтом http://www.bcit.ca/ Я думаю там не дураки собрались.)

У людей проблемы с понятиями. Когда слишком много информации, то многие путают их.

Суть в том, что модели бывают разные и стоит их разделить на типы моделей и разложить отдельно. Вынести общее в обязательное Core например. (Да, забыл учесть это изначально при публикации, уже исправил)

И указать что на практике в контроллере часто лежит бизнес-логика так как по сути обработка входной информации — это не математика, а логика которая прямо связана с бизнес-процессами.

Есть пример кода чистой MVC у вас?
Библиотека — это не объект, библиотека — это библиотека (и они не подключаются к контроллеру)


Не соглашусь! Пример как это работает в CodeIgniter:

http://www.codeigniter.com/user_guide/libraries/loader.html

$this->load->library('calendar', NULL, 'my_calendar');
// Calendar class is now accessed using:
$this->my_calendar


MVC противопоказано включать бизнес-логику в контроллеры


Баталии на эту тему проходили тут: https://toster.ru/q/2419

И это реально проблема! Сборка ответа на запрос пользователя из частей — это уже бизнес-логика так как сами части есть предметной областью чаще всего.

Поетому все таки в контроллере будет бизнес-логика 1 уровня, а уже в моделях 2-го и далее.

Ок, тогда вынесем в отдельный элемент архитектуры Core components как вариант. (Еще редактирую)
Хороший коммент на эту тему. Одна из проблем фреймворков — это его избыточность. Но с другой стороны там довольно много полезных компонентов.

Мы остановились на PHP CodeIgniter, отказались от части его функционала, хорошее оставили и дописали большое кол-во того, что реально нужно.

blog.kpitv.net/article/frameworks-1


Там обижают Yii. Говорят он хороший, но в нем тоже довольно много лишнего и некоторые вещи усложняются без весомых на то причин.
Простите, а какая связь между asp.net MVC и Android SDK?


Что бы понять связь, нужно написать программу на том и на том.

Связь в том, что и там и там нужно дописывать ту самую «нужную инфраструктуру» что бы простые задачи решались в 5 шагов за 5 минут.

Android и iOS приложения имеют ту же проблематику и там она еще более ощутима. Там тоже необходимо строить нечто подобное для удобства разработки.

Нет, это никак не решает озвученную вами задачу.


Оно уже решает задачу. К примеру мы делали проект Moow.life: http://moow.life/ и вот Android приложение: https://play.google.com/store/apps/details?id=com.moow

Мы смогли сделать быстрее и дешевле, чем многие другие разработчики нам предлагали. Так как мы изначально построили систему так как описано выше.

А некоторые наши клиенты отказались и заказали в другом месте некоторые сайты, после чего вернулись с «говноархитектурой» которую больше никто не хочет править и надо переписывать весь Back-End.

Проблема в другом: Как переубедить тех, кто усложняет код и заставить их вдумываться в детали процесса проектирования программы, а так-же, что теория не панация и необходимо придумывать что-то новое и лучшее для реальных ситуаций.

«объекты, подключаемые к контроллеру»


Объект — это экземпляр класса. И они бывают разные по сущности. Это может быть библиотека, другой контроллер при HMVC или класс для управления сервисом или адаптер какой-то.

Пробовали разные Frameworks: PHP CodeIgniter, PHP Zend, PHP Yii, PHP Kohana, PHP Symphony, WordPress CMS, На Java пробовали Java Spring MVC, ASP.NET MVC рассматривали и при работе с Android SDK и Objective-C не нашли готовых решений для построения этой самой «нужной инфраструктуры»

По итогу пришли вот к тому, что написано выше. На счет SOA я уже понял, что многие его понимают буквально. Поетому уже изменил текст и детализировал как разновидности объектов подключаемые к контроллеру.
Да, необходима «нужная инфраструктура»

А как ее строить? По каким правилам и шаблонам?

Одного MVC НЕ достаточно. Поетому и цель найти какой-то удобный и оптимальный шаблон.
asp.net MVC — хороший пример.

Но там не совсем так быстро все происходит.

А есть пример кода на нем?
Казалось, что это только часть кода, а html-ки генерируются из БД где-то.

Ок, слишком простая программа для вопроса архитектуры.

Для пример если взять WordPress CMS или Java Spring MVC из коробки, то за 5 действий точно не уложится.

Иногда до 5 часов занимает такая простая 5 минутная задача на некоторых системах, которые НЕ допилены до удобной и расширяемой архитектуры.

Суть вопроса в том, что мало слова MVC, надо детализировать дальше, что бы потом за минимум шагов делать максимум функционала и одно другому не мешало.

Есть у вас какой-то пример кода Веб-сайта для рассмотрения еще?
Кстати, а почему веб-сайт — это НЕ приложение? [ Веб-приложение Wiki ]

Сразу видно, что кол-во не бизнес объектов зашкаливает в отличии от php решений например. Но это C# поетому часть кода нужна в принципе для работы веб-сайта в среде сервера.

Поетому можно дописать еще + Server Environment needs

Допустим как в любой CMS нам нужно ее расширить. Например сделать отдельную страницу /list/ в которую вывести из БД например таблицу товаров.

Вопрос: сколько надо сделать действий в NJekyll этом, что бы такую простое дело реализовать?

Например у нас будет так:

1) Создать контроллер list с index методом (Роутинг определяет метод контроллера для запуска)
2) Создать класс модели с методом SQL запроса или наследовать стандартный, там есть уже получение всей таблицы метод
3) Подключить класс в контроллер и положить в переменную массив
4) Создать View с циклом
5) Подключить VIew к контроллеру + прописать заголовок title странице желательно

5 действий — 5-15 минут времени.

А сколько шагов надо сделать на NJekyll ??
Да, можем рассмотреть Jekyll как пример

Information

Rating
Does not participate
Registered
Activity