Как стать автором
Обновить
0
@vnuk_g_aread⁠-⁠only

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

Отправить сообщение

MVC Framework: большое введение для начинающих

Время на прочтение16 мин
Количество просмотров81K
Необходимое отступление: не так давно я разместил статью предназначавшуюся для печатного издания. Приведенная ниже статья имеет ту же самую судьбу: она не попала в печать в связи с тяжелым положением журнала. Как и в прошлый раз, я решил опубликовать статью на Хабре, благо тематика попадает под формат. Необходимо заметить, что статья оформлена и содержит текст для журнала, если бы она готовилась для Хабра, то некоторые часть могли бы быть изменены. Надеюсь, статья вам понравится.

В последнее время заметно, что компания Microsoft уделяет повышенное внимание развитию своих средств разработки, новым инструментам и механизмам разработки программ на своей платформе .net. Быстро развивается язык C#, четвертая версия которого не за горами. Представлен и активно продвигается новый язык F#. Для разработчиков баз данных разработан Entity Framework, который уже доступен в виде финальной версии в первом сервиспаке к .Net Framework 3.5 и Visual Studio 2008. Microsoft активно занялась и клиентской частью разработки web-проектов. Для нашего внимания предложен путь развития Ajax.Net 4.0. Internet Explorer 8 все больше соответствует стандартам и становится привлекательным инструментом для web-программистов, так например, его вкладка Developer Tools включает в себя профайлер JavaScript. Очень хорошей новостью стало недавно объявление о полной поддержке и включении JavaScript-библиотеки jQuery в следующее обновление Visual Studio. В этом свете возникает вопрос, что же предложено разработчикам ASP.NET? Ответ — MVC Framework. Целью данной статьи рассмотреть некоторые общие проблемы, с которыми могут столкнуться программисты, решившие использовать MVC Framework для своих web-проектов, и их решения.
Читать дальше →
Всего голосов 65: ↑59 и ↓6+53
Комментарии71

Охота на мифический MVC. Построение пользовательского интерфейса

Время на прочтение27 мин
Количество просмотров41K

Детектив по материалам IT. Часть вторая


В этой части я покажу как изначально выглядело деление пользовательского интерфейса и что из себя представляли Вид и Контроллер. Попробую рассказать почему в современных GUI библиотеках используется их объединение и какие вообще интересные решения можно найти в этой области на сегодняшний день. Ссылки на первоисточники приведены в начале первой части.


Начну с Вида. Не смотря на то, что Вид определяется как модуль, отображающий Модель – "а view is a (visual) representation of its model", на практике к Виду, как правило, просто относят все графические элементы GUI, то есть Видом считается все то, что мы видим на экране ЭВМ.


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


View or Controller

Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии32

Реализация MVC паттерна на примере создания сайта-визитки на PHP

Время на прочтение16 мин
Количество просмотров726K
mvc

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

Читать дальше →
Всего голосов 80: ↑46 и ↓34+12
Комментарии175

Создание простой MVC-системы на PHP 5

Время на прочтение18 мин
Количество просмотров208K

Предисловие


В этом руководстве Вы узнаете, как построить простую систему по архитектуре MVC (Model-View-Controller, Модель-Отображение-Контроллер) на PHP 5.1 с использованием возможностей библиотеки SPL (Standard PHP Library, Стандартная Библиотека PHP).

Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии116

Простые MVC-приложения

Время на прочтение6 мин
Количество просмотров46K
Я хотел бы затронуть тему правильной архитектуры приложений на PHP. Статья будет посвящена паттерну проектирования MVC. Написать про MVC меня сподвиг именно тот факт, что понимание этого паттерна является ключевым в становлении PHP-программиста. Так что если вы новичок и хотите начать писать программы правильно, читайте дальше.
Читать дальше →
Всего голосов 32: ↑15 и ↓17-2
Комментарии62

Модели данных для аутентификации пользователей в web-приложениях

Время на прочтение6 мин
Количество просмотров6.1K

Аутентификация пользователей — базовый функционал подавляющего большинства web-приложений. Этот функционал имплементирован с помощью различных языков программирования и поддерживается различными репозиториями ("хардкод", файлы, базы данных, LDAP, ...).


image


В предыдущей своей публикации я высказал смелое заблуждение "Пока же создание очередного web-приложения зачастую начинается с проектирования собственной структуры данных для аутентификации пользователей", на что мне было скинуто несколько ссылок на некоторые имплементации аутентификации (в основном — на PHP). Под катом — сравнение структур User-моделей этих имплементаций.

Читать дальше →
Всего голосов 14: ↑7 и ↓70
Комментарии6

Yii2, быстрый старт. Самый простой сайт на Yii2 со статическими страницами без использования БД

Время на прочтение3 мин
Количество просмотров20K
Сначала я написал пространное предисловие к этому тексту, а потом удалил его. В общем, этот текст для тех, кто как и я, любит сначала сделать, а потом уже разбираться с тем, что же он такое сделал. Чтобы собрать нижеизложенную информацию мне пришлось три дня усиленно рыться в различных источниках. Так что, надеюсь кому и пригодится. Это годная шпаргалка.

1. Устанавливаете Yii2 Basic на сервер, как написано в документации. Описано там всё четко и по делу, добавить мне нечего.

Разве что вот: локально на OpenServer поставилось без сучка, без задоринки. А вот удаленно, на KVM Ubuntu 16.04 с 1Gb оперативки Composer-у не хватило памяти. Бился часа два, так и не осилил. Благо, что с локального сервера на удаленный, сайт можно легко перенести простым копированием.

2. Повторюсь, установка — basic (допустим, в папку /www/site/basic, но далее мы для простоты изложения будем вести отсчет именно от папки basic в которую вы создали проект, как рекомендуется в руководстве).

Папку basic/web сразу устанавливаете как DocumentRoot — как это сделать, тоже есть в официальном руководстве на русском языке.
Читать дальше →
Всего голосов 29: ↑15 и ↓14+1
Комментарии60

Шаблоны проектирования с человеческим лицом

Время на прочтение32 мин
Количество просмотров512K

image


Шаблоны проектирования — это способ решения периодически возникающих проблем. Точнее, это руководства по решению конкретных проблем. Это не классы, пакеты или библиотеки, которые вы можете вставить в своё приложение и ожидать волшебства.


Как сказано в Википедии:


В программной инженерии шаблон проектирования приложений — это многократно применяемое решение регулярно возникающей проблемы в рамках определённого контекста архитектуры приложения. Шаблон — это не законченное архитектурное решение, которое можно напрямую преобразовать в исходный или машинный код. Это описание подхода к решению проблемы, который можно применять в разных ситуациях.

image Будьте осторожны


  • Шаблоны проектирования — не «серебряная пуля».
  • Не пытайтесь внедрять их принудительно, последствия могут быть негативными. Помните, что шаблоны — это способы решения, а не поиска проблем. Так что не перемудрите.
  • Если применять их правильно и в нужных местах, они могут оказаться спасением. В противном случае у вас будет ещё больше проблем.

В статье приведены примеры на PHP 7, но пусть вас это не смущает, ведь заложенные в шаблонах принципы неизменны. Кроме того, внедряется поддержка других языков.

Читать дальше →
Всего голосов 148: ↑134 и ↓14+120
Комментарии98

Иерархические структуры данных и Doctrine

Время на прочтение15 мин
Количество просмотров82K

Введение



Хранение иерархических данных (или попросту — деревьев) в реляционных структурах задача довольно нетривиальная и вызывает некоторые проблемы, когда разработчики сталкиваются с подобной задачей.

В первую очередь, это связано с тем, что реляционные базы не приспособлены к хранению иерархических структур (как, например, XML-файлы), структура реляционных таблиц представляет из себя простые списки. Иерархические же данные имеют связь «родитель-наследники», которая не реализована в реляционной структуре.

Тем не менее, задача «хранить деревья в базе данных» рано или поздно возникает перед любым разработчиком.

Ниже мы подробно рассмотрим, какие существуют подходы в организации хранения деревьев в реляционных БД, а также рассмотрим инструментарий, который нам предоставляет ORM Doctrine для работы с такими структурами.
Читать дальше →
Всего голосов 64: ↑63 и ↓1+62
Комментарии41

Блог а-ля Хабр, выбор платформы

Время на прочтение5 мин
Количество просмотров15K

В предыдущей серии (Как слямзить Хабр по-быстрому) запустил проект на базе Create React App (CRA). Но это SPA, что не очень подходит, когда требуется индексация в поисковиках. Нужен Server Side Rendering (SSR). И желательно из коробки, а не на коленке. Крайне расточительно тратить ресурсы на самостоятельную разработку базовых технологий. Как выбирать платформу с поддержкой SSR? На практике, конечно, POC. Попробую реализовать CRUD с формой ввода на Material-UI, рассматривая кандидатов: React Starter Kit (RSK), NEXT.js и Electrode (не путать с Electron).


Исходники на GitHub.

Читать дальше →
Всего голосов 24: ↑20 и ↓4+16
Комментарии44

Проектирование анимации или как я в дизайнерскую авантюру ввязался

Время на прочтение5 мин
Количество просмотров12K


Вот уже неделя с небольшим минула, как я решил ввязаться в дизайнерскую авантюру! Daily UI это опциональный челлендж для любого профессионального графического разработчика. Каждый день — новый дизайн. Чего угодно: кнопки, таблички, хедеры, карточки, да любой элемент вплоть до целого раздела. По итогам этого “марафона”: во-первых, прокачиваются навыки; во-вторых, прокачивается карма и последователи; в-третьих, да мало ли к каким интригующим последствиям это может привести. Обычно такой марафон длится 100 дней.

Однако, я немного адаптировал условия этого личного соревнования под себя. Количество дней не ограничиваю, в выходные отдыхаю, а результатом каждого дня будет не *.sketch / psd исходники, а HTML/CSS/JS файлы. И, да, вы всё это можете скачать и применять для своих нужд. Именно поэтому в выходные я и отдыхаю! Всё ясно? :)
Тогда читайте дальше...
Всего голосов 20: ↑18 и ↓2+16
Комментарии24

История успеха «Яндекс.Почты» с PostgreSQL

Время на прочтение13 мин
Количество просмотров53K


Владимир Бородин (на «Хабре» dev1ant), системный администратор группы эксплуатации систем хранения данных в «Яндекс.Почте», знакомит со сложностями миграции крупного проекта с Oracle Database на PostgreSQL. Это — расшифровка доклада с конференции HighLoad++ 2016.

Всем привет! Меня зовут Вова, сегодня я буду рассказывать про базы данных «Яндекс.Почты».

Сначала несколько фактов, которые будут иметь значение в будущем. «Яндекс.Почта» — сервис достаточно старый: он был запущен в 2000 году, и потому мы накопили много legacy. У нас — как это принято и модно говорить — вполне себе highload-сервис, больше 10 миллионов пользователей в сутки, какие-то сотни миллионов всего. В бэкенд нам прилетает более 200 тысяч запросов в секунду в пике. Мы складываем более 150 миллионов писем в сутки, прошедших проверки на спам и вирусы. Суммарный объём писем за все 16 лет — больше 20 петабайт.

О чем пойдет речь? О том, как мы перевезли метаданные из Oracle в PostgreSQL. Метаданных там не петабайты — их чуть больше трехсот терабайт. В базы влетает более 250 тысяч запросов в секунду. Надо иметь в виду, что это маленькие OLTP-запросы, по большей части чтение (80%).

Это — не первая наша попытка избавиться от Oracle. В начале нулевых была попытка переехать на MySQL, она провалилась. В 2007 или 2008 была попытка написать что-то своё, она тоже провалилась. В обоих случаях был провал не столько по технически причинам, сколько по организационным.
Всего голосов 113: ↑111 и ↓2+109
Комментарии119

Про организацию Телефонии в Отделе Продаж и интеграцию с CRM

Время на прочтение14 мин
Количество просмотров13K
Телефон — один из важных каналов коммуникаций с клиентами. Хотя и развитие новых технологий ставит под сомнение необходимость его использования (некоторые компании практически полностью исключают такой вид связи со своими клиентами, так как это относительно дорогой вид взаимодействия), большинство людей все еще предпочитают использовать этот традиционный вид связи. Звонок по телефону является одним из существенных каналов получения лидов в компанию.

Не секрет, что появление виртуальных АТС привело к широкому распространению так называемых Облачных сервисов IP-телефонии, которые могут предложить гибкие условия, дешевые тарифы и широкие функциональные возможности, включая интеграцию с CRM. Давайте посмотрим на это глазами предпринимателя малого бизнеса и сформулируем (не в даваясь в технические детали) бизнес требования, которым должна отвечать Телефония для обеспечения эффективного Отдела Продаж.
Читать дальше →
Всего голосов 12: ↑8 и ↓4+4
Комментарии4

JavaScript. Вопросы на собеседовании

Время на прочтение3 мин
Количество просмотров137K
Не так давно озадачился поиском работы, в связи с чем посетил n-нное количество собеседований и услышал много интересных вопросов. По сети гуляет много статей с вопросами по JS, поэтому постараюсь выбрать вопросы, которые ещё не видел. Здесь нет вопросов типа Что такое замыкание?, Наследование в JavaScript или Сделайте ajax запрос на VanillaJS. Кстати советую поискать ответы на эти вопросы, прежде чем читать статью :) Под катом вопросы типа «с подвохом». Вряд ли какой-то из них попадётся вам, но, надеюсь, статья настроит вас на «подвоховое» мышление, и напомнит некоторые скользкие места и подводные камушки javascript.
Читать дальше →
Всего голосов 93: ↑60 и ↓33+27
Комментарии158

4 правила работы в Sketch над крупными проектами

Время на прочтение5 мин
Количество просмотров51K

image


Появление редактора Sketch сильно облегчило работу дизайнеров. Артборды, Символы, Стили, большое количеств плагинов и интуитивно понятный интерфейс — всё это сделало нас немного счастливее. В этой статье постараюсь привести правила и приёмы, которые выработал при работе над проектами, ведь важны не только инструменты, но и правильное их использование.

Всего голосов 41: ↑38 и ↓3+35
Комментарии43

5 вещей, которые необходимо сделать перед выходом стартапа на международный уровень

Время на прочтение3 мин
Количество просмотров2.8K


Тесса Курт, генеральный директор IntelligenceBank говорит о тех проблемах, которые необходимо решить перед выходом стартапа на международный уровень.

Любой быстроразвивающийся стартап стремиться выйти на международный уровень. На самом деле, глобальное доминирование часто входит в миссию компании и является основной причиной заинтересованности инвесторов. Но, в итоге компании осознают, что выйти на международный уровень сложнее, чем кажется. Международное присутствие — это не только наличие канала интернет-продаж и инвестиции в маркетинг, есть более существенные вещи, на которые генеральный директор должен обратить внимание в первую очередь.
Читать дальше →
Всего голосов 11: ↑5 и ↓6-1
Комментарии0

О сортировке контента на основе оценок пользователей

Время на прочтение4 мин
Количество просмотров17K
Написать этот пост меня привлекла эта статья. Многие ее помнят по вот этой картинке.
image
Статья затрагивает правильную тему, однако с точки зрения математики и здравого смысла она в корне не верна.
Читать дальше →
Всего голосов 133: ↑117 и ↓16+101
Комментарии62

33 способа ускорить ваш фронтенд в 2017 году

Время на прочтение20 мин
Количество просмотров85K

enter image description here


Вы уже используете прогрессивную загрузку? А как насчёт технологий Tree Shaking и разбиения кода в React и Angular? Вы настроили сжатие Brotli или Zopfli, OCSP stapling и HPACK-сжатие? А как у вас обстоят дела с оптимизацией ресурсов и клиентской части, со вложенностью CSS? Не говоря уже о IPv6, HTTP/2 и сервис-воркерах.

Читать дальше →
Всего голосов 87: ↑84 и ↓3+81
Комментарии39

Семь отличных ускорителей сайтов для Linux и Unix

Время на прочтение4 мин
Количество просмотров25K
«Производительность веб-проектов» — это, с точки зрения пользователя, скорость, с которой страницы загружаются и отображаются браузером. Что даёт повышение скорости работы некоего сайта? На самом деле – много всего. Здесь и увеличение продаж, и повышение лояльности клиентов, и улучшение впечатлений пользователей от работы с ресурсом. Скорость, с которой веб-ресурс реагирует на запросы, особенно важна для тех пользователей, которые сидят на медленных каналах связи или занимаются веб-серфингом со смартфонов или планшетов.

Читать дальше →
Всего голосов 42: ↑31 и ↓11+20
Комментарии22

Защита больших данных – как правильно начать и минимизировать возможные риски?

Время на прочтение5 мин
Количество просмотров8.2K
Раньше серьезную инфраструктуру для хранения и анализа Больших данных (Big Data) могли позволить себе только масштабные организации, например, государственные структуры или крупные предприятия. Сегодня же, по мере того, как технологии становятся все более доступными, большие данные находят все более разнообразное применение в самых различных областях. При этом, как и в случае многих других новых технологий, развитие больших данных не только открывает возможности, но и сопряжено с многочисленными сложностями, и многие организации задаются вопросом, каким образом им лучше всего поступить с накапливаемыми данными?


Читать дальше: Источники уязвимости и комплексная защита Больших данных
Всего голосов 9: ↑8 и ↓1+7
Комментарии0

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность