Pull to refresh
53
Karma
0
Rating
Дмитрий Петрик @Flexo

User

  • Followers 6
  • Following 5
  • Posts
  • Comments

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

Mail.ru Group corporate blogWebsite developmentPHPSystem Analysis and DesignDesigning and refactoring
Translation

image


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


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


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

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


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

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

Читать дальше →
Total votes 148: ↑134 and ↓14+120
Views345K
Comments 98

Домашняя автоматизация с ioBroker

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

В данной статье хочу осветить автоматизацию дома и как с помощью Open Source проекта освещать (и не только) свое уютное жилище. Ах да, чуть не забыл сказать, что вся автоматизация происходит на JavaScript!

Для всех любителей JS прошу под кат
Читать дальше →
Total votes 26: ↑20 and ↓6+14
Views44K
Comments 114

Опасный target="_blank"

Information SecurityWebsite development
Большинство создают внешние ссылки через target="_blank" и не знают одного интересного нюанса — страница, на которую мы попадем таким образом, получит частичный контроль над ссылающейся на нее страницей через js свойство window.opener.

Через window.opener.location мы сможем сделать редирект на, к примеру, фишинговую страницу. Это своего рода tabnabbing, только более продвинутый. Так как жертва меньше всего ожидает подмены страницы, в открытой ранее, доверенной вкладке браузера.
Читать дальше →
Total votes 132: ↑126 and ↓6+120
Views187K
Comments 136

7 правил создания красивых интерфейсов. Часть 2

Я люблю ИП corporate blogWeb designTypographyInterfaces
Translation


Недавно мы в «Я люблю ИП» закончили курсы по дизайну от trydesignlab.com. И это одна из самых важных статей, которую нам посоветовал ментор в процессе обучения. Сегодня мы публикуем вторую часть перевода. Посмотреть все наши работы с курсов можно в ВКонтакте по тэгу #design101@iloveip.

Мы говорили о правилах создания чистых и красивых интерфейсов.

Вот эти правила:
  1. Свет падает сверху (Часть 1)
  2. Сначала черное и белое (Часть 1)
  3. Увеличьте белое пространство (Часть 1)
  4. Научитесь накладывать текст на изображения
  5. Научитесь выделять и утапливать текст
  6. Используйте только хорошие шрифты
  7. Крадите как художник

Читать дальше →
Total votes 46: ↑44 and ↓2+42
Views100K
Comments 15

Несколько интересностей и полезностей для веб-разработчика #44

Website developmentCSSJavaScriptHTML
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

ExpandJS



Огромный проект, где спецификация веб-компонентов используется на полную катушку. ExpandJS это набор из более чем 80 компонентов и более 350 различных функций для работы с ними. И все это доступно как каркас, но так же и в трендовом Material Design стиле.

<!-- Import elements -->
<link rel="import" href="../mat-content.html">
<link rel="import" href="../mat-drawer.html">
<link rel="import" href="../mat-header-panel.html">
<link rel="import" href="../mat-shell.html">

<!-- Application scaffold -->
<mat-shell theme="...">

    <mat-drawer>...</mat-drawer>

    <mat-header-panel>
        <mat-header>...</mat-header>
        <mat-content>...</mat-content>
    </mat-header-panel>

    <mat-drawer right>...</mat-drawer>

</mat-shell>

Читать дальше →
Total votes 41: ↑41 and ↓0+41
Views39K
Comments 6

Выводим текст на HTML5 Canvas

Website developmentCanvas
HTML5 Canvas – очень обширная тема со многими “вкусностями”, о многих из которых уже писали и ещё будут писать. Поэтому, я хочу немного рассказать в этой статье, только об одной маленькой, и как на первый взгляд может показаться банальной темой – работа с текстом. Я хочу показать, что с ним почти также можно работать, как с обычным текстом в вебе, т.е. позиционировать, накладывать стили и градиенты, а также писать многострочные предложения легко и без проблем.
Читать дальше →
Total votes 62: ↑56 and ↓6+50
Views87K
Comments 21

Прототип. От идеи до опытной партии. Литье в силикон

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


Читать дальше →
Total votes 168: ↑166 and ↓2+164
Views101K
Comments 75

30 чудных библиотек для PHP программистов

Website developmentPHP
Sandbox
Предлагаю читателям «Хабрахабра» перевод публикации «30 Amazing PHP Libraries for Programmers and Developers». Авторы собрали несколько удивительных PHP-библиотек, которые помогут реализовать некоторые классные вещи, не прилагая много усилий. Цель обзора состоит в том, чтобы преподнести что-то новое, поэтому список не включает популярные библиотеки.
Читать дальше →
Total votes 71: ↑60 and ↓11+49
Views95K
Comments 18

Про Git на пальцах (для переходящих с SVN)

Website development
Год назад мы с командой решили перейти с SVN на Git. Зачем это было надо — писать не буду, т.к. на эту тему уже и так много написано. А хочу я описать типичные алгоритмы работы, понятные человеку, который долгое время пользовался SVN. Ниже — памятка, написанная для команды год назад, чтобы легче было мигрировать. Надеюсь, кому-нибудь пригодится.
Читать...
Total votes 179: ↑175 and ↓4+171
Views274K
Comments 100

Несколько интересностей и полезностей для веб-разработчика #37

Website developmentCSSJavaScriptHTML
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Buzz.js




В последнее время в интернете все чаще и чаще встречаются проекты, где различные интерфейсные элементы сопровождаются определенными звуками. Я бы даже сказал, что UX/UI в вебе переходит на новую ступень эволюции. А Buzz.js одним из первых готов помочь вам в озвучке вашего интерфейса. Это библиотека для работы с HTML5 Audio API с рядом подходящих обработчиков событий.

var mySound = new buzz.sound( "/sounds/myfile", {
    formats: [ "ogg", "mp3", "aac" ]
});

mySound.play()
    .fadeIn()
    .loop()
    .bind( "timeupdate", function() {
       var timer = buzz.toTimer( this.getTime() );
       document.getElementById( "timer" ).innerHTML = timer;
    });


Читать дальше →
Total votes 57: ↑52 and ↓5+47
Views41K
Comments 5

Usability — один плагин Redmine, предоставляющий массу полезных мелочей

InterfacesUsability

Используя Redmine в корпоративной среде, всегда сталкиваешься с тем, что в интерфейсе чего-то не хватает. То где-то ссылочку нужно подменить, то список задач не влазит на экран планшета, то картинки не открываются в новом окне.

Исправляя все эти мелкие неприятности, мы родили плагин Usability. Дальше я расскажу вам об этом плагине, которым готов поделиться с сообществом.

Плагин позволяет включать или отключать полезные опции. Расскажу о них и о предпосылках, в результате которых возникли опции, поподробнее.
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Views28K
Comments 29

Рисуем анимированную сцену с помощью css

Website developmentCSSJavaScriptHTML
Tutorial
Передохнём от верстки всяких пользовательских интерфейсов и просто порисуем на CSS. Рисовать будем такую вот сцену:



Смотреть на jsfiddle.

В статье я попробую описать пошаговое создание этой сцены.
Поехали
Total votes 51: ↑44 and ↓7+37
Views48K
Comments 23

01 Ссылки для UX-специалистов

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


Читать дальше →
Total votes 60: ↑57 and ↓3+54
Views92K
Comments 13

58 признаков хорошего интерфейса

Interfaces
Translation
У хорошего интерфейса пользователя высокая конверсия и его просто использовать. То есть, он хорош и для бизнеса, и для использующих его людей. Вот список опробованных нами идей.

1 Один столбец вместо нескольких


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

image
Читать дальше →
Total votes 226: ↑182 and ↓44+138
Views368K
Comments 102

15 лучших JavaScript-библиотек для построения диаграмм и сводных таблиц

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

В этой статье я покажу вам некоторые из лучших JavaScript библиотек для построения диаграмм/схем (и сводных таблиц). Эти библиотеки помогут вам в создании красивых и настраиваемых графиков для ваших будущих проектов.

Хотя большинство библиотек являются бесплатными и свободно распространяемыми, для некоторых из них есть платные версии с дополнительным функционалом.

Читать дальше →
Total votes 71: ↑65 and ↓6+59
Views281K
Comments 17

AngularJS 1.x – перевод курса от CodeSchool

JavaScriptAngular
Sandbox
Данная публикация является переводом оригинального курса CoodSchool с небольшими дополнениями, которые показались мне уместными в данном контексте. Публикация рассчитана на тех, кто только начинает знакомится с Angular.

Введение


AngularJS — популярная JavaScript библиотека, предназначенная, главным образом, для создания одностраничных веб-приложений с динамически обновляемым содержимым. Библиотека была написана словацким программистом Мишкой Хевери, который, работая в Google, получил от своего шефа задание выучить JavaScript. Он решил, что лучший способ изучить язык — это создать на его основе собственный фреймворк. Angular (звучит как «Ангула» и дословно переводится как «Угловатый») использует концепцию разделения данных и их представления, известную как MVC (M — model (данные), V — view (представление), С — controller (контролер, управляющая прослойка между ними обеспечивающая логику работы приложения).
Читать дальше →
Total votes 50: ↑44 and ↓6+38
Views73K
Comments 20

Подборка интересных CSS рецептов «Голые пятницы #3»

Wargaming corporate blogCSSHTML
Tutorial
голые пятницы

Здравствуй, дорогой читатель хабра!
Сегодня мы поговорим о градиентных границах, режимах наложения, о том, как рациональнее сверстать стандартную иконку меню. А так же откроем для себя заново старое css-свойство visibility и рассмотрим новое медиа-выражение @Supports.
Читать дальше →
Total votes 43: ↑40 and ↓3+37
Views49K
Comments 14

Семь принципов создания современных веб-приложений

AjaxWebsite development
Translation
Tutorial
Эта статья основана на моей презентации с конференции BrazilJS в августе 2014 года. Она базируется на идеях, о которых я писал в блоге недавно, в основном, в связи с UX и производительностью.

Я хочу представить 7 действенных принципов для веб-сайтов, которые хотят применить JavaScript для управления UI. Эти принципы являются результатом моей работы как веб-дизайнера, но также как давнего пользователя WWW.

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

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

  • Должен ли JavaScript использоваться как замена функциям браузера: история, навигация, рендеринг?
  • Умирает ли бэкенд? Нужно ли вообще рендерить HTML?
  • Правда ли, что будущее за приложениями на одной странице (Single Page Applications, SPA)?
  • Должен ли JS генерировать страницы на веб-сайте и рендерить страницы в веб-приложениях?
  • Нужно ли использовать техники вроде PJAX или TurboLinks?
  • Каково точное отличие между веб-сайтом и веб-приложением? Должно ли остаться что-то одно?
Читать дальше →
Total votes 108: ↑99 and ↓9+90
Views181K
Comments 33

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №132 (27 октября — 2 ноября 2014)

Zfort Group corporate blogWebsite development
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


Читать дальше →
Total votes 60: ↑43 and ↓17+26
Views45K
Comments 10

Инсталлятор CyanogenMod появится в Google Play, разработчики получили $7 млн инвестиций

SmartphonesSoftware


Компания Cyanogen, разработчик популярного мода на основе Android, сообщила большие новости. Во-первых, она получила $7 млн инвестиций на развитие, что позволило увеличить штат до 17 человек и серьёзно ускорить разработку.

Во-вторых, компания заявляет о гигантских планах — увеличить аудиторию CyanogenMod до 50 млн человек и стать третьей мобильной платформой после Android и iOS.
Читать дальше →
Total votes 208: ↑200 and ↓8+192
Views114K
Comments 119

Information

Rating
Does not participate
Location
Томск, Томская обл., Россия
Date of birth
Registered
Activity