Pull to refresh
2
0
Денис Фокин @mrFox

Программист

Send message

Идеальное пользовательское соглашение: как минимизировать риски для разработчиков

Reading time6 min
Views2.9K
В работе компаний-производителей программного обеспечения есть много рисков, но мало кто отнесет к ним недостаточно проработанное пользовательское соглашение. Однако если подойти к этому вопросу невнимательно и не учесть важные детали, есть риск столкнуться с серьезными последствиями в дальнейшем.
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments4

CSS-функции min(), max() и clamp()

Reading time12 min
Views63K
Поддержка CSS-функций сравнения min(), max() и clamp() появилась в Firefox 8 апреля 2020 года. Это означает, что данные функции теперь поддерживаются во всех основных браузерах. Эти CSS-функции расширяют наши возможности по созданию динамических макетов и по проектированию более гибких, чем раньше, компонентов. Их можно использовать для настройки размеров элементов-контейнеров, шрифтов, отступов и многого другого. Правда, веб-дизайнеру, создающему макеты страниц с учётом возможности использования этих восхитительных функций, может понадобиться научиться думать по-новому.



Сегодня я хочу рассказать об особенностях этих функций, объяснить всё то, что может оказаться в них непонятным, и привести практические примеры их использования.
Читать дальше →
Total votes 24: ↑23 and ↓1+35
Comments11

Гибкая разметка без медиа-запросов: функции min(), max(), clamp()

Reading time9 min
Views13K

Перевод «Flexible layouts without media queries» Dannie Vinther



С момента появления в браузерах в 2017 году, CSS Grid дал веб-дизайнерам и разработчикам новую суперсилу. На данный момент существует множество статей / руководств, иллюстрирующий возможности и преимущества CSS Grid, описывающих всё – от вдохновлённых ASCII-синтаксисом способом разметки Grid-областей до автоматического размещения элементов, делающих медиа-запросы чем-то устаревшим. Тем не менее, медиа-запросы всё ещё играют важную роль и это не может не вызывать некоторые сложности – наверное.

Total votes 10: ↑10 and ↓0+10
Comments8

Простой подход к работе с отзывчивыми изображениями

Reading time10 min
Views18K
Спецификация по отзывчивым изображениям — это фантастический документ, в котором описано множество вариантов использования таких изображений. Но опыт подсказывает мне, что чаще всего при работе с ними нужно знать лишь о том, как отдавать клиенту копии одного и того же изображения разного размера, выбирая их в зависимости от ширины области просмотра страницы. Мы называем это «переключением разрешения». Для решения этой задачи можно воспользоваться атрибутами srcset и sizes.

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



И, кстати, пользуясь отзывчивыми изображениями можно не беспокоиться о браузерной поддержке этой технологии. Интересующие нас атрибуты пользуются прекрасной поддержкой браузеров. И, кроме того, в нашем распоряжении имеется резервный механизм, предназначенный для старых браузеров вроде IE11.
Читать дальше →
Total votes 22: ↑21 and ↓1+34
Comments16

TV first, отзывчивая типографика или как не забыть о всех размерах девайсов

Reading time12 min
Views2.9K

Добрый день, хабровчане! Не так давно я опубликовал перевод статьи "Полностью отзывчивый дизайн — это больше, чем просто медиа-запросы". В той публикации я пообещал рассказать вам, как я применял данную технику в своем проекте, с чем мне пришлось столкнуться и все связанные с этой техникой особенности, на которые обязательно стоит обратить внимание при разработке. В сегодняшней публикации я постараюсь выполнить свое обещание. Если вам интересен опыт практического использования техники отзывчивых шрифтов в реальном проекте, прошу под кат.


Читать дальше →
Total votes 4: ↑3 and ↓1+3
Comments4

Практика CSS Scroll Snapping

Reading time6 min
Views44K

Перевод «Practical CSS Scroll Snapping» Max Kohler


Спецификация CSS Scroll Snap позволяет привязывать положение прокрутки к определённым элементам или местоположению после того, как пользователь прокрутил страницу или элемент. Это отличный способ для реализации следующих решений:


Пример использования CSS Scroll Snapping

Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments6

[в закладки] Работа с изображениями в веб

Reading time18 min
Views113K
Одно из решений, которые приходится принимать фронтенд-разработчику при создании сайта, касается выбора способа включения изображений в состав веб-страниц. Этот способ может заключаться в использовании HTML-тега <img>. Это может быть применение CSS-свойства background или тега <image> элемента <svg>. Выбор правильного подхода к работе с изображениями весьма важен, так как это может очень сильно повлиять на производительность и доступность проекта.



Материал, перевод которого мы сегодня публикуем, посвящён изучению различных способов включения изображений в состав веб-страниц. Здесь будут обсуждены преимущества и недостатки этих способов. Кроме того, мы поговорим о том, когда и почему их обычно используют.
Читать дальше →
Total votes 25: ↑22 and ↓3+35
Comments19

Хранение деревьев в базе данных. Часть первая, теоретическая

Reading time4 min
Views130K
Полгода назад написал бандл ClosureTable для фреймворка Laravel 3. Поводом для написания стала вот эта замечательная презентация Билла Карвина о способах хранения и обработки иерархических данных в MySQL с использованием PHP.

Итак. Существует несколько шаблонов проектирования баз данных для хранения и обработки иерархических структур:
  • Adjacency List («список смежности»)
  • Materialized Path («материализованный путь»)
  • Nested Sets («вложенные множества»)
  • Closure Table («таблица связей»)

Читать дальше →
Total votes 47: ↑41 and ↓6+35
Comments66

32 отличия дизайна мобильного приложения под iOS и Android

Reading time12 min
Views59K
image

Железный дизайнер из Redmadrobot Design Lab Артур Абраров делится наблюдениями.

Адаптировать дизайн под другую платформу — неотъемлемая часть работы дизайнера мобильных приложений. Цель этой работы — органично вписать дизайн в паттерны взаимодействия пользователя. К тому же, проработанная адаптация упрощает разработку за счёт использования нативных компонентов платформы.

Чтобы адаптировать дизайн правильно, нужно соблюдать гайдлайны платформ: Human Interface Guidelines (HIG) у iOS и Material Design у Android. И общаться с разработчиками, в идеале подключать их к дизайну как можно раньше, чтобы они могли сразу задать технические ограничения.

Но в чём именно отличается дизайн под iOS от дизайна под Android? В этой статье я разберу 32 конкретных отличия дизайна под iOS и Android. Они поделены на четыре группы:

  1. Базовые отличия.
  2. Отличия в навигации и паттернах (UX).
  3. Отличия в компонентах (UI).
  4. Прочие отличия.

Особенности iOS будут слева, а Android — справа или сверху/снизу.

Базовые отличия


Human Interface Guidelines vs Material Design


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

Material же имеет несколько основополагающих принципов: материал как метафора; смелый, графический, сознательный; осмысленная анимация; гибкая основа и кроссплатформенность. Если вы не знакомы с гайдлайнами, лучше их прочесть до того, как ознакомитесь со статьёй.

image

image
Total votes 29: ↑29 and ↓0+29
Comments14

Ликбез по техническому заданию

Reading time7 min
Views80K
Польза: получите знания о том, что такое ТЗ и как его составить. Обогатите словарный запас словами: концептуальная модель, data flow, mind card, user flow. use cases, wireframes, ER-model, client-server, API.

Для кого: начинающим разработчикам и желающим чтобы их поняли (заказчикам, стартапам и менеджерам).

Время чтения: 7 минут.

Отправная точка — требования

Хочу пирожное, потом морожное!
Вовка в тридевятом царстве

Существует распространенное заблуждение, что достаточно сказать: “Нужно приложение для музея/кошки/завода” и сразу станет понятно, что вам необходимо.
Total votes 5: ↑3 and ↓2+3
Comments11

Самые популярные структуры данных

Reading time9 min
Views23K
Что такое структура данных?
Проще говоря, структура данных — это контейнер, в котором хранятся данные в определенной компоновке (формате, или способе организации их в памяти). Эта «компоновка» позволяет структуре данных быть эффективной в одних операциях и неэффективной в других. Ваша цель — понять структуры данных, чтобы вы могли выбрать структуру данных, наиболее оптимальную для рассматриваемой проблемы.

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

Читать дальше →
Total votes 16: ↑12 and ↓4+12
Comments8

Борьба с утечками памяти в веб-приложениях

Reading time13 min
Views14K
Когда мы перешли от разработки веб-сайтов, страницы которых формируются на сервере, к созданию одностраничных веб-приложений, которые рендерятся на клиенте, мы приняли определённые правила игры. Одно из них — аккуратное обращение с ресурсами на устройстве пользователя. Это значит — не блокировать главный поток, не «раскручивать» вентилятор ноутбука, не сажать батарею телефона. Мы обменяли улучшение интерактивности веб-проектов, и то, что их поведение стало больше похоже на поведение обычных приложений, на новый класс проблем, которых не существовало в мире серверного рендеринга.


Читать дальше →
Total votes 20: ↑19 and ↓1+32
Comments2

Анатомия каналов в Go

Reading time34 min
Views163K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Anatomy of Channels in Go" автора Uday Hiwarale.


Что такое каналы?


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


Создание канала


Go для создания канала предоставляет ключевое слово chan. Канал может передавать данные только одного типа, данные других типов через это канал передавать невозможно.

Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments7

Простое обнаружение проблем производительности в PostgreSQL

Reading time5 min
Views55K
Существует ли в мире очень большая и крупная база данных, которая время от времени не страдает от проблем с производительностью? Держу пари, что их не так уж много. Поэтому каждый DBA (администратор базы данных), отвечающий за PostgreSQL, должен знать, как отслеживать потенциальные проблемы производительности, чтобы выяснить, что на самом деле происходит.

Повышение производительности PostgreSQL после настройки параметров


Многие думают, что изменение параметров в postgresql.conf — это реальный путь к успеху. Однако это не всегда так. Конечно, чаще всего хорошие параметры конфигурации базы данных очень полезны. Тем не менее, во многих случаях реальные проблемы будут возникать из-за странного запроса, скрытого глубоко в некоторой логике приложения. Даже вполне вероятно, что запросы, вызывающие реальные проблемы, не являются теми, на которые вы обратили внимание. Возникает естественный вопрос: как мы можем отследить эти запросы и выяснить, что на самом деле происходит? Мой любимый инструмент для этого — pg_stat_statements, который всегда должен быть включен по моему мнению, если вы используете PostgreSQL 9.2 или выше (пожалуйста, не используйте его в более старых версиях).
Читать дальше →
Total votes 20: ↑19 and ↓1+25
Comments6

Тензоры в TensorFlow

Reading time6 min
Views30K

image


Основным объектом которым манипулируют в Tensorflow, является тензор. О том, что такое тензор, какие бывают тензоры, какие у них есть свойства и как ими манипулировать читайте в переводном руководстве с сайта tensorflow.org.

Читать дальше →
Total votes 19: ↑15 and ↓4+22
Comments2

Прогрессивные веб-приложения в 2020

Reading time17 min
Views28K

На КДПВ — стикер, созданный командой браузера Samsung Internet


Больше 12 лет прошло с тех пор, как Стив Джобс впервые представил идею веб-приложений, «которые выглядят и ведут себя точно так же, как и нативные приложения». Больше 4 лет прошло с момента появления термина «PWA». Что из себя представляют прогрессивные веб-приложения в начале 2020 года? Что из того, что было добавлено в экосистему в 2019 году, вы могли упустить? Давайте выясним.

Читать дальше →
Total votes 20: ↑18 and ↓2+21
Comments17

[в закладки] 9 инструментов, повышающих продуктивность веб-разработчика

Reading time4 min
Views32K
Интернет — это не только то место, где можно научиться программировать. Тут имеется множество полезных онлайновых инструментов, способных помочь разработчику на разных этапах работы над проектом и таким образом сэкономить немного времени.



Автор статьи, перевод которой мы сегодня публикуем, отобрал 9 таких инструментов.
Читать дальше →
Total votes 31: ↑23 and ↓8+30
Comments12

9 полезных трюков HTML

Reading time4 min
Views24K
Приветствую, Хабр! Представляю вашему вниманию перевод статьи «9 Extremely Useful HTML Tricks» автора Klaus.

У HTML есть много практических секретов, которые могут вам пригодиться.

Нативка от автора
Но я хочу убедиться, что сайт работает в Internet Explorer и других браузерах.

Я использую Endtest для создания автоматизированных тестов и выполнения их в кросс-браузерном облаке.


Netflix использует ту же платформу для тестирования своих веб-приложений.

Умение обращаться с Endtest даже входит в список необходимых навыков для некоторых их рабочих вакансий.

У Endtest есть несколько действительно полезных функций, таких как:

• Кросс-браузерная сетка, работающая на компьютерах с Windows и MacOS
• Редактор без кода для автоматических тестов
• Поддержка веб-приложений
• Поддержка как собственных, так и гибридных приложений для Android и iOS
• Неограниченное количество видеозаписей для выполнения ваших тестов
• Сравнение
скриншотов
• Геолокация
• Оператор if
• Циклы
• Загрузка файлов в ваши тесты
• API Endtest, для легкой интеграции с вашей системой CI / CD
• Расширенные утверждения
• Мобильные тесты на мобильных устройствах
• Тестирование электронной почты с помощью Endtest Mailbox

Вы можете просмотреть документы.


Ниже приведены 9 чрезвычайно полезных трюков HTML.
Total votes 25: ↑16 and ↓9+13
Comments14

20 SEO-мифов, которые должны умереть в 2020

Reading time17 min
Views42K
Хабр читают не только разработчики, и не только люди связанные с IT, некоторые из моих клиентов иногда кидали мне ссылки на Хабр, и среди них были такие, которые совсем далеки от IT. Поэтому в этой статье будет максимально простым языком объясняться некоторые аспекты SEO. К сожалению, тренд последних лет о том, что контент стоит во главе всего, многие мои “коллеги по цеху” воспринимают так, что “вещать” в своем корпоративном блоге можно, что угодно и как угодно. Это рождает массу бредовых мифов о SEO.


Читать дальше →
Total votes 14: ↑10 and ↓4+11
Comments11

Пишем компонент с «материальными» кнопками для Svelte

Reading time3 min
Views5.8K
Вдохновившись статьями SvelteJS: Релиз второй версии, Исчезающие фреймворки и Re: «Сравнение JS-фреймворков: React, Vue и Hyperapp», про «исчезающий» фреймворк Svelte (читается «свелт»), я захотел его попробовать. И, для начала, решил написать небольшой компонентик с кнопками из Materialize.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments2

Information

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