Метка «web-разработка» - 17

Навеяно топиком о смерти MVC.

Чтобы разобраться в том, что происходит, давайте пойдем от принципов ООП.
Класс объектов в ООП инкапсулирует данные объекта с его поведением.
Вся сложность в разделении предметной области на объекты.
Здесь под «предметной областью» я понимаю также техническое окружение (БД, сеть и т.д.)

Распространенной практикой в наши дни стало создание легковесных POJO-объектов и их proxy, нам которыми работает некоторая логика, разнесенная по всем частям MVC (по M, V и C соответственно).
Это удобно с точки зрения реализации различных технологий для M, V и C частей приложения соответственно. На выходе имеем M-framefork'и, V-framefork'и и C-framefork'и (иногда наблюдается смешение). В этой парадигме переносить логику в POJO-классы модели, которые отражаются (mapping) на БД, было бы самоубийством.

Какие у нас есть альтернативы?

Читать полностью »

image

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

Собственно, рады поделиться нашим впечатлениями — устроим небольшой баттл?
Читать полностью »

LilacServer - всё необходимое в одной коробке

В данной статье мне хотелось бы рассказать о новом программном продукте, который на днях стал доступным конечным пользователям. Автором этого программного продукта являюсь я, и поэтому мне вдвойне приятно поделиться с читателями информацией, которая наверняка кому-нибудь покажется интересной и полезной. Я работал над этим проектом 4 года (а то и больше, смотря от какого момента считать).

Итак, что же такое LilacServer?
Это веб-сервер, написанный на Java с использованием технологии Java NIO. Главным отличием его от прочих веб-серверов, созданных на Java (например, Tomcat или Resin), состоит в том, что это не только веб-сервер…
Читать полностью »

Здравствуйте!

Хочу поделиться результатом собственного исследования, проводимого мной на протяжении недели в среде существующих CMS. Цель у меня была проста и прагматична — выбрать лучшую систему для создания корпоративных сайтов. Такая необходимость возникла в связи с постоянно растущим количеством заказов на сайты. С одной стороны, это не может не радовать, а с другой — заставляет максимально тщательно и с полной ответственностью отнестись к выбору движка, которому и предстоит сопутствовать не слишком опытному программисту в вопросе создания сайтов.
Читать полностью »

Наконец-то в Москве пройдет настоящий Facebook Hack! Да-да, в том формате, в каком проводятся Facebook хакатоны во всем мире.

Facebook Developer Hack в Москве

Facebook Developer Hack Moscow станет завершающим мероприятием в серии World Hack.
Итак — 1 октября, Москва, ты и Facebook. Это твой шанс отправиться в Калифорнию!

Читать полностью »

Я решил написать цикл статей, под названием «Сложно о простом». Этот цикл будет посвящён языку JavaScript. Почему «сложно о простом»? Потому что всё, что я буду рассказывать я буду рассказывать учитывая особенности работы интерпретатора, начиная с типов данных. Всё это будет делатья для того, что бы потом можно было рассказать просто о сложном, например, о способах наследования в JavaScript и прочих патернах.
Читать полностью »

Наверное, вы уже слышали о таких вещах как CSS3 Pie, Selectivizr, HTML5 Boilerplate, CSS3 Media queries и т.п. Речь пойдет о том, как использовать все эти инструменты вместе: дело в том, что неоднократно были замечены конфликты между ними. Ну, а если вы не совсем понимаете, зачем вам HTML 5 и CSS 3, тогда не стану навязывать эти технологии; просто скажу, что они позволяют сократить время верстки (хотя, это не единственный плюс).
Читать полностью »

Disclamer: Это моя вторая статья на Хабре. Я программист и литературно писать статьи (даже на техническую тему) у меня пока получается плохо.

Статья написана после очередной вакансии «PHP программист», в которой в обязанностях было все: дизайн, проектирование баз данных, логика, верстка…
Читать полностью »

Допускаю что эту статью могут читать люди, не представляющие о чем идет речь. Для них кратко поясню, что простой пары логин/пароль возможно и достаточно для входа к примеру на любимый вебсайт с т.н. «надежного» компьютера. Например домашнего или рабочего, о которых вы с высокой долей вероятности можете предполагать, что благодаря определенным мерам они чисты от вирусов, шпионских программ, кейлогеров и т.д. и т.п. Но если вы используете «ненадежный» компьютер например в интернет-клубе, библиотеке или другом общественном месте, то очень высока вероятность того, что ваши логин/пароль могут быть похищены кейлогером, установленном на таком компьютере (не будем обсуждать откуда он там может появиться). Для таких случаев и предусмотрена т.н. двухфакторная аутентификация, которая предполагает, что в дополнение к паре логин/пароль вас просят ввести еще один одноразовый пароль-код на один сеанс.
Предлагаю довольно простой и «недорогой» вариант решения для обеспечения двухфакторной аутентификации далее.
Читать полностью »

В свое время озадачился вопросом — как защитить страницы сайта от повторной отправки данных формы во время обновления страницы (если перед этим была отправка, естественно).
Каждый веб-мастер и разработчик наверное знает, что если на сайте вы нажали кнопку «отправить», заполнив какую-либо форму, то после отправки, если попытаться обновить страницу браузер выдаст сообщение с подтверждением повторной отправки.
В некоторых моментах это бывает недопустимо. Например, в случае элементарной формы обратной связи. Когда пользователь заполнил форму и отправил сообщение, а потом по какой-то ему одному известной причине обновил страницу, письмо ушло снова. Это может, конечно, и не такой фатальный случай, просто как пример. Все гораздо болезненнее, например, при отправке заказа в интернет-магазине.
Так вот задался вопросом поиска решения этой проблемы и понял, что решение только одно: использование перенаправления после отправки формы header (‘location: адрес’). Т.е. все просто – после отправки вызываем перенаправление (можно даже на ту же страницу) и все! Обновление страницы будет чистым, без всяких заполненных POST-ов и GET-ов.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js