Рубрика «Веб-разработка» - 231

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

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

Однако, хотелось, чтобы системой можно было так же легко пользоваться, как и, например, интернет браузером. Переходить на нужные страницы в один-два клика. Видеть путь перемещения по приложению. Чтобы был простой и понятный механизм для всего приложения.

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

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

Многие из вас наверняка заметили, что я пишу книгу о Zend Framework. Недавно я закончил черновики двух глав: «Архитектура приложений на Zend Framework» и «Понимая Zend Framework». В первой главе объясняется архитектурный шаблон Model-View-Controller (MVC) и причины, по которым он стал стандартом де-факто для веб-приложений. Во второй исследуется связь MVC с компонентами Zend Framework, их структурой и взаимодействием.

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

Эта сторона фреймворков никогда не привлекала особого внимания. И все же именно она лежит в основе целого класса проблем в тех приложениях, которые пытаются использовать MVC по образу и подобию фреймворков для веб-приложений. Более того, попытки донести идею модели до других разработчиков нередко напоминают битье головой о стену. Я не хочу сказать, что все разработчики тупые или не понимают саму идею, просто никто из них (вне зависимости от того, работают они с PHP или нет) не связывает модели с той областью, которая наделяет их смыслом — принципами объектно-ориентированного программирования.
Читать полностью »

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

Статья содержит полезную информацию для тех, кто использует капчу на своём сервере, вместо того чтобы довериться стороннему сервису вроде reCaptcha.

А для затравки — если вы считаете, что такая проверка капчи будет работать:
if($_POST['captcha'] == $_SESSION['captcha']) return true; (пример из практики)
то вы глубоко заблуждаетесь.
Читать полностью »

Допустим, у Вас есть некий сайт, написанный на языке Python и Вы хотите прикрутить к нему BitTorrent tracker, наподобие rutracker.org.

Разделение задачи

Задачу можно разделить на две большие функциональности:

  1. Каталог torrent-раздач на сайте (исторически обычно реализуется в виде форума),
  2. Сам Трекер, непосредственно участвующий в процессе раздач.

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

В мире PHP Каталог и Трекер зачастую не разделяются на два выделенных приложения. Например, популярный TBDev Tracker существует в виде приложения, объединяющего Каталог-форум и Трекер. (Автор видимо так устал от популярности своего приложения, что сайт давно не обновляется и скачать приложение с него нереально. Однако в Сети можно найти множество клонов.)

Некоторые реализации Трекера изначально были написаны на Python, но затем переписаны на C++ из соображений производительности. Так что в наши дни Python-трекеров не существует (по крайней мере мне найти не удалось). Поэтому единственное, что остается — установить отдельное приложение Трекера и интегрировать его с Python-Каталогом.

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

Opera тоже переходит на движок Blink

Компания Google вчера сделала громкий анонс о создании более компактного и производительного браузерного движка Blink, оптимизированного для многопроцессной архитектуры Chromium. Новый движок станет результатом большой зачистки: из форка WebKit удалят 7 тыс. файлов и 4,5 млн строк кода.

Издание TNW оперативно взяло комментарий у представителей компании Opera. Они подтвердили неизменность своей позиции по привязке к проекту Chromium. Другими словами, они тоже переходят на open source движок Blink.
Читать полностью »

image
Мы, в компании XIAG, в разных проектах постоянно решаем одну и ту же задачу: как хранить и показывать бинарные пользовательские данные. Это могут быть логотипы компаний, PDF файлы с описанием вакансий или приветственное видео. Причем это содержание нужно показывать на страницах сайта самым разнообразным способом: лого должно быть нужного размера, PDF — в виде маленькой превью-картинки, а из видео нужно показать пару стоп-кадров.

Уверен, такая задача знакома всем веб-разработчикам. В этой статье мы хотим поделиться нашим решением проблемы, опубликованным под открытой лицензией на ГитХабе.

Познакомьтесь с веб-сервисом Barberry (https://github.com/Magomogo/Barberry), который мы успешно используем уже около года. Суть сервиса в том, что он хранит оригиналы загруженных документов и способен по-разному отдавать их, конвертируя на лету.
Читать полностью »

Веб консоль на PHP
Как-то я уже писал о веб-консоли через которую можно управлять Git-ом. Теперь же я решил развить её и сделать универсальную консоль.

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

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

Я — Фёдор furikuretsu Ананьев, веб-разработчик студии Hot Dot, и сегодня я дам несколько простых советов для тех, кто хочет сделать своё JS-параллакс-приложение очень и очень быстрым.
Читать полностью »

imageСо дня моего знакомства с Битриксом мне не давал покоя факт, что я должен вставлять компоненты на страницы с помощью визуального редактора. По началу, после вставки компонента я изменял его настройки в визуальном режиме. Затем, когда разобрался в параметрах компонентов, стал копировать код, генерируемый редактором и править его вручную. Спустя некоторое время, лень взяла своё, и я решил автоматизировать этот рутинный процесс.

Я написал плагин, который в сочетании с модулем для Битрикса позволяет разворачивать код вида bitrix:news.list в полноценный код подключения компонента с параметрами по умолчанию.
Читать полностью »

Подборка инструментов, примеров кода и других ресурсов по теме разработки с использованием WAI-ARIA (Web Accessibility Initiative — Accessible Rich Internet Applications), инициативы обеспечения доступности высокофункциональных Интернет-приложений.
Читать полностью »


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