Где-то полтора года назад я начал заниматься web разработкой. Начинал с функционального программирования. Примерно пол года назад я перешел на ООП и стал использовать MVC архитектуру проектирования. Недавно появилась задача оптимизировать работу с базой данных, т. к. вся связь и работа с базой осуществлялась через один класс. Это было неудобно потому, что все время приходилось вручную писать SQL — запросы. Читать полностью »
Метка «mvc» - 5
Генератор SQL запросов на PHP
2012-10-09 в 17:27, admin, рубрики: model, mvc, php, sql, ооп, метки: model, mvc, PHP, sql, оопQt виджет для добавления и удаления строк в таблицe QTableView
2012-10-01 в 8:18, admin, рубрики: c++, GUI, mvc, opensource, qt, Qt Software, Программирование, метки: gui, mvc, opensource, Qt
В этой статье я хотел бы поделиться своим опытом разработки одного виджета (элемента графического интерфейса), попутно осветив некоторые технологии и техники Qt.
Очень часто бывает необходимо дать пользователю возможность вставки строк и столбцов в таблицу или удаление их из неё. Как правило это реализуется так: надо выделить строку кликнув по хидеру и выбрать пункт в меню: select > menu > insert | delete. Это не совсем очевидно и интуитивно, как и то что строка вставляется перед текущей а не, например, после неё. Поэтому я написал виджет который снимает эту проблему.
Виджет выглядит как четыре кнопки, следующие за курсором по границе таблицы (хаха, это совсем как те пчелки, которые бегали за курсором на сайтах в эпоху вэб 1.0!). Можно было бы перегрузить QTableView, но тогда придется изменять все инстансы; вместо этого я написал отдельный виджет которые представляет из себя как бы панельку которая прикрепляется к уже имеющемуся QTableView. Читать полностью »
Вступление
Система, разработанная мною, имеет схожую структуру с фреймворком Symfony. Изначально была написана как базис для любой последующей разработки.
Когда-то прочитал мнение, которое меня развеселило и имело оно примерно такой смысл: «Компьютеры стали мощнее и мы начали компенсировать это фреймворками». Выходом из этой ситуации, по-моему, было написание такого «костяка», который позволит с легкость организовать маршрутизацию и модуляцию сайта.
Хочу сказать, что это не является альтернативой Symfony framework, а лишь моим взглядом на решение мелких задач.
Читать полностью »
Вышел PhpStorm 5 — еще больше умных полезных штук
2012-09-12 в 20:14, admin, рубрики: css, debug, drupal, jade, javascript, less, mvc, phar, php, phpunit, preview, sass, scss, sql, symfony2, yii, базы данных, Блог компании JetBrains, Веб-разработка, метки: css, debug, drupal, jade, javascript, less, mvc, phar, PHP, phpunit, preview, sass, scss, sql, symfony2, yii, базы данных
Продолжая делать упор на анализ и качество кода мы наконец добрались и до фреймворков. Работа над IDE уже продолжается, а прямо сейчас мы предлагаем попробовать:
- Новый анализатор типов — меньше неверных предупреждений без дополнительных аннотаций
- Больше предупреждений о runtime errors прямо в редакторе
- Больше подсветки неиспрользуемого кода и конструкций
- Панель сущностей MVC-фреймворков — пока Symfony 2 и yii, остальные по мере готовности
- Прозрачная поддержка PHAR
- Поддержка callbacks в литералах (call_user_func, etc) — включая поиск использования и рефакторинг
- Серезные улучшения консоли БД — для всех баз данных — рефакторинг, экспорт, процедуры
- Форматирование кода по стандартам PSR1/2, Symfony, Drupal
- LiveEdit — редактирование PHP/HTML/CSS/JS видно в браузере в реальном времени без перезагрузки страницы
- Серезно улучшена поддержка CSS/SASS/SCSS/LESS — анализ, дополнение, форматирование
- Поддержка шаблонов Jade
Шпаргалка по MV-паттернам для проектирования веб-приложений
2012-09-11 в 0:59, admin, рубрики: amd, hmvc, mvc, mvp, mvvm, patterns, web, Веб-разработка, паттерны, шпаргалка, метки: amd, hmvc, mvc, mvp, mvvm, patterns, web, паттерны, шпаргалка
В Интернет можно найти множество различающихся реализаций и схем, уже набившего оскомину, паттерна MVC. В разных книгах я также встречал разные схемы. Это порождает некоторую путаницу и комментарии к моей предыдущей статье: "Реализация MVC паттерна на примере создания сайта-визитки на PHP" тому подтверждение. В поисках истины, я попытался расставить все по местам… перечитал некоторую литературу и статьи по паттернам проектирования и написал дополнение к упомянутой статье. Но решил запостить это дополнение, как отдельный топик в надежде на фидбэк. Под катом вы найдете несколько часто встречающихся схем MVC и MVP с описанием жизненного цикла приложения, а также описание менее популярных паттернов HMVC, MVVM и схемы AMD (Asynchronous Module Definition), которая актуальна для клиент-сайд приложений. Разумеется, некоторые из перечисленных паттернов применимы не только к веб-приложениям, но в статье они рассматриваются именно в этом контексте.
Читать полностью »
web и MVC: разбор полетов
2012-09-10 в 7:48, admin, рубрики: mvc, web-разработка, Программирование, метки: mvc, web-разработка, ПрограммированиеНавеяно топиком о смерти MVC.
Чтобы разобраться в том, что происходит, давайте пойдем от принципов ООП.
Класс объектов в ООП инкапсулирует данные объекта с его поведением.
Вся сложность в разделении предметной области на объекты.
Здесь под «предметной областью» я понимаю также техническое окружение (БД, сеть и т.д.)
Распространенной практикой в наши дни стало создание легковесных POJO-объектов и их proxy, нам которыми работает некоторая логика, разнесенная по всем частям MVC (по M, V и C соответственно).
Это удобно с точки зрения реализации различных технологий для M, V и C частей приложения соответственно. На выходе имеем M-framefork'и, V-framefork'и и C-framefork'и (иногда наблюдается смешение). В этой парадигме переносить логику в POJO-классы модели, которые отражаются (mapping) на БД, было бы самоубийством.
Какие у нас есть альтернативы?
Zend Framework, субъективные впечатления
2012-09-03 в 12:22, admin, рубрики: mvc, php, Zend Framework, велосипедостроение, ооп, метки: mvc, PHP, zend framework, велосипедостроение, оопНедавно мне было поручено разработать некое веб-приложение. Не буду вдаваться в подробности, а лишь скажу, что приложение связанно с планированием перевозок. Есть общедоступная часть, воспользоваться которой может любой посетитель сайта. Есть внутренние интерфейсы для операторов системы. Есть информеры для размещения на сторонних сайтах. С технической точки зрения это несколько десятков экранов, множество различных форм, табличек. Часть экранов используют ajax, кастомные компоненты, написанные на javascript, и всякие красивости типа drag-and-drop. Данные, как обычно, хранятся в реляционной БД в виде полутора десятков таблиц. В общем не совсем примитивное приложение, но и очень сложным назвать его тоже не могу.
По работе мне, мне достаточно часто приходится проектировать или лично кодить подобные приложения. Однако в данном проекте было одно важное требование. Приложение должно быть разработано на базе серьезной и проверенной платформе, а именно на Zend Framework. Использование самописных “велосипедов” — недопустимо. Скажу честно, опыта реальной работы с Zend Framework у меня до сих пор не было. Но платформа известная и за ней стоит известный разработчик. Многими разработчиками Zend Framework вообще рассматривается как стандарт веб разработки. Так что, тем более, есть повод освоить что то новое и солидное. Поэтому я с энтузиазмом взялся за этот проект.
Читать полностью »
Пишем реализацию MVC для Backbone
2012-08-27 в 8:46, admin, рубрики: backbone.js, javascript, mvc, метки: backbone.js, javascript, mvc
Одним пасмурным утром я подумал, что было бы неплохо хорошенько прорефакторить один из моих старых проектов. Это некоммерческое легковесное приложение для кастомизации HUD в одном 3Д шутере. Писал я его 2 года назад, был горяч и неопытен. В результате куча отменного спагетти-кода, который, несмотря на все свои недостатки, делал своё дело :) Став мудрее и опытнее, я решил полностью переписать приложение, дать ему новую архитектуру, упростить поддержку и обновление. Как это сделать? Ответ казался простым — использовать MVC, разделить на уровни и связать всё в единое целое. Так я столкнулся с проблемой выбора простого и эффективного фреймворка, который станет прочным фундаментом. После быстрого исследования я выбрал backbone.js. Очень понравился своей простотой и гибкостью. Можно просто открыть исходники и понять, как всё устроено и работает. Единственный нюанс, который не радовал — MV-паттерн. Размазывать логику по многочисленным views очень не хотелось, так родилась идея написать свой велосипед, который предоставит недостающие части головоломки. Плюс, создание чего-то нового — это всегда увлекательно и интересно. Недолго думая, я приступил к реализации контроллеров для backbone.
Создаем прототип микрофреймворка на PHP. Часть 3: админка, авторизация и темизация
2012-08-27 в 3:04, admin, рубрики: cmf, framework, mvc, php, site, Веб-разработка, метки: cmf, framework, mvc, PHP, site
В предыдущих статьях: часть 1 и часть 2 мы реализовали шаблон MVC и «набросали» простой роутер. Сегодня мы реализуем доступ в админку с помощью контроллера авторизации. Эта статья — заключительная.
Читать полностью »
Создаем прототип микрофреймворка на PHP. Часть 2: реализация роутинга, разделение видов
2012-08-27 в 3:03, admin, рубрики: cmf, framework, mvc, php, site, Веб-разработка, метки: cmf, framework, mvc, PHP, site
В предыдущей статье мы построили простейший MVC каркас и убедились в легкости и элегантности этого архитектурного шаблона. У нас был всего один контроллер — контроллер главной страницы с единственным действием (метод index) для отрисовки вида. В этой статье мы добавим класс для работы с маршрутами и модифицируем класс Load для разделения вида на общий для всех страниц шаблон и шаблон контента.
Читать полностью »