Обновить
512K+

Веб-разработка *

Делаем веб лучше

330,76
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Опыт использования генератора статических сайтов Hugo

Время на прочтение6 мин
Охват и читатели22K

Делюсь 2-х летним опытом использования генератора статических сайтов Hugo. Заметка ориентирована на начинающих, но в этой заметке не будет инструкций "как установить Hugo" или "как создать первый пост". Эта заметка будет полезна тем, кто выбирает и сравнивает альтернативы для ведения блога.

Читать дальше →

Почему Битрикс — Битрикс

Время на прочтение6 мин
Охват и читатели14K
После недавней статьи про то, что Битрикс не нравится разработчикам, меня посетила мысль что всё не так просто, и я захотел разобраться, за то ли мы ругаем Битрикс, и нужно ли его ругать. Ниже мы порассуждаем что не так, но начну я с предыстории.

Читать дальше →

Открываем сезон PHP-митапов в Нижнем Новгороде 2 ноября

Время на прочтение2 мин
Охват и читатели1.7K
В прошлую пятницу Илон Маск добавился в чат PHP Russia (как тебе такое, краснодарский форум), ростовское комьюнити завело свои телеграм-стикеры, а мы снова открыли регистрацию на первый митап нижегородского сообщества, которую закрыли по ошибке.

Картинка вдохновлена серией работ “гигантские коты захватили Нижний” художницы Nastya W

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

Каскадная инвалидация кэша. Часть 2

Время на прочтение7 мин
Охват и читатели5.8K
В первой части перевода материала, посвящённого каскадной инвалидации кэша, мы обсудили сущность проблемы и рассмотрели один из вариантов её решения, который заключается в использовании карт импорта. Его плюс — лёгкость реализации. А минус — слабая поддержка браузерами. Сегодня поговорим о других способах решения этой проблемы.


Читать дальше →

Создаем простой сервис коллтрекинга, часть 1

Время на прочтение10 мин
Охват и читатели4.5K
В рамках статьи будет рассмотрен один из возможных вариантов реализации коллтрекинга на сайте. Данный материал написан сугубо в образовательных целях и не несет в себе цели замены существующих специализированных сервисов, предоставляющих услугу «calltracking».

Требования к функционалу


  1. Сервис должен предоставлять возможность подстановки номера (номеров) по источнику перехода на сайт — переход из поисковых систем, переход по рекламе, переход по ссылкам с utm метками.
  2. Сервис должен закреплять показываемый номер за посетителем сайта и отображать данный номер при дальнейшем посещении.
  3. При инициации звонка на показываемый номер сервис должен инициировать создание события в Google Analytics.
Читать дальше →

Server Side Rendering для React App на Express.js

Время на прочтение7 мин
Охват и читатели45K
На написание этой статьи меня сподвигло отсутствие какого-либо более-менее полного мануала, как же сделать Server Side Rendering для React приложения.

Когда я столкнулся с этой проблемой, у меня было 2 варианта это сделать, либо Next.js фреймворк, либо используя Express.js.

На инвестигейт Next.js было потрачено около 100 часов, чтоб завести его для нашей готовой крупной OTT платформы, но проблем было настолько много, что мы от него отказались (по этому поводу напишу статью еще), остался выбор за малым, Express.js, про который я и хочу рассказать.

Полный код демо-примера, рассматриваемого в статье, тут.
Читать дальше →

Полная жизнь на Svelte

Время на прочтение8 мин
Охват и читатели13K

У Радислава Гандапаса есть отличная книга Полная Ж. В ней говорится о том, как оценить направления своей жизни, и как разработать план развития.


Мне захотелось создать инструмент, который будет в моем смартфоне и поможет составить мой радар.


image

Читать дальше →

Дайджест свежих материалов из мира фронтенда за последнюю неделю №386 (21 — 27 октября 2019)

Время на прочтение3 мин
Охват и читатели12K
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.


Читать дальше →

Как проводить Code Review по версии Google

Время на прочтение5 мин
Охват и читатели145K
Вопросы код-ревью меня интересуют очень давно. Много раз возникали те или иные проблемы то с качеством кода, то с климатом в коллективе. И действительно, code review — это если не единственное, то одно из самых главных мест для возникновения конфликтов в коллективе разработчиков.

И вот недавно при подготовке к очередному выпуску подкаста "Цинковый прод" я узнаю, что Google опубликовал свод правил по проведению Code Review, битком набитый ценными мыслями. Весь материал довольно объемный и не влезет в одну статью, поэтому я постараюсь выделить наиболее интересные (мне) мысли.


Итак, поехали

Читать дальше →

Прощай HTML, привет QML

Время на прочтение3 мин
Охват и читатели52K

HTML mess


Как можно создать web приложение без использования HTML? Для этого нам понадобится: новый браузер, QML и back-end на Java.

Читать дальше →

Компоненты-агностики в Angular

Время на прочтение11 мин
Охват и читатели25K

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


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


bruce lee

Читать дальше →

DartUP 2019: конференция по Dart и Flutter в Петербурге 23 ноября

Время на прочтение4 мин
Охват и читатели2.8K


23 ноября русскоязычное сообщество разработчиков на Dart и Flutter при поддержке Wrike и Google снова проводят DartUP, конференцию, в прошлом году ставшую самой крупной в DART/FLUTTER мире. В этом году постараемся сделать еще ярче, интереснее и многочисленнее.
Читать дальше →

Каскадная инвалидация кэша. Часть 1

Время на прочтение6 мин
Охват и читатели9.7K
Вот уже несколько лет, как почти каждая статья о передовых подходах к кэшированию рекомендует пользоваться в продакшне следующими методиками:

  • Добавление в имена файлов информации о версии содержащихся в них данных (обычно — в виде хэша данных, находящихся в файлах).
  • Установка HTTP-заголовков Cache-Control: max-age и Expires, управляющих временем кэширования материалов (что позволяет исключить повторную валидацию соответствующих материалов для посетителей, возвращающихся на ресурс).



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

filename: '[name]-[contenthash].js'

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

Ближайшие события

Плюсы и минусы Django

Время на прочтение3 мин
Охват и читатели37K

Прим. перев.: Эта статья рассчитана в основном на тех кто только выбирает фреймворк для веб-разработки. Опытные разработчики на Django вряд ли узнают что-то новое.



Django описывают как «веб-фреймворк для перфекционистов с дедлайнами». Его создали, чтобы переходить от прототипов к готовым сервисам как можно быстрее.


Фреймворк поможет разработать CRUD приложение под ключ. С Django не придется изобретать велосипед. Он работает из коробки и позволит сосредоточиться на бизнес-логике и продуктах для обычных людей.


Плюсы Джанго


Принцип «Всё включено» («Batteries included»)


Фраза «всё включено» означает, что большинство инструментов для создания приложения — часть фреймворка, а не поставляются в виде отдельных библиотек.


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


  • ORM
  • Миграции базы данных
  • Аутентификация пользователя
  • Панель администратора
  • Формы
Читать дальше →

Работаем с куки как с классом javascript

Время на прочтение3 мин
Охват и читатели3.8K
Всем привет! Сегодня я хочу рассмотреть очень популярный вопрос: как работать с куки? Везде предлагаются очень разные методы, но вот какой лучше? Определенного ответа на этот вопрос нет, но я хочу предложить очень удобный способ, и если ты заинтересовался — добро пожаловать под каст.
Читать дальше →

Python и быстрые HTTP-клиенты

Время на прочтение7 мин
Охват и читатели78K
В наши дни, если вы пишете некое Python-приложение, то вам, скорее всего, придётся оснащать его функционалом HTTP-клиента, который способен общаться с HTTP-серверами. Повсеместное распространение REST API сделало HTTP-инструменты уважаемыми жителями бесчисленного множества программных проектов. Именно поэтому любому программисту необходимо владеть паттернами, направленными на организацию оптимальной работы с HTTP-соединениями.



Существует множество HTTP-клиентов для Python. Самым распространённым среди них, и, к тому же, таким, с которым легко работать, можно назвать requests. Сегодня этот клиент является стандартом де-факто.
Читать дальше →

Как AWS «варит» свои эластичные сервисы. Масштабирование сети

Время на прочтение9 мин
Охват и читатели9.7K
Масштаб сети Amazon Web Services — это 69 зон по всему миру в 22 регионах: США, Европа, Азия, Африка и Австралия. В каждой зоне находится до 8 ЦОД — Центров Обработки Данных. В каждом ЦОД тысячи или сотни тысяч серверов. Сеть построена так, что все маловероятные сценарии перебоев в работе принимаются в расчет. Например, все регионы изолированы друг от друга, а зоны доступности разнесены на расстояния в несколько километров. Даже если перерубить кабель, то система перейдет на резервные каналы, а потери информации составят единицы пакетов данных. О том, на каких еще принципах построена сеть и как она устроена, расскажет Василий Пантюхин.



Василий Пантюхин начинал Unix-админом в .ru-компаниях, 6 лет занимался большими железками Sun Microsystem, 11 лет проповедовал дата-центричность мира в EMC. Естественным путем эволюционировал в приватные облака, потом подался в публичные. Сейчас, как архитектор Amazon Web Services, техническими советами помогает жить и развиваться в облаке AWS.

В предыдущей части трилогии об устройстве AWS Василий углубился в устройство физических серверов и масштабирование базы данных. Nitro-карты, кастомный гипервизор на базе KVM, база данных Amazon Aurora — обо всем этом в материале «Как AWS «варит» свои эластичные сервисы. Масштабирование серверов и базы данных». Прочитайте, чтобы погрузиться в контекст, или посмотрите видеозапись выступления.

В этой части речь пойдет о масштабировании сети — одной из сложнейших систем в AWS. Эволюция от плоской сети к Virtual Private Cloud и ее устройство, внутренние сервисы Blackfoot и HyperPlane, проблема шумного соседа, а в конце — масштабы сети, backbone и физические кабели. Обо всем этом под катом.

Дисклеймер: всё, что ниже — личное мнение Василия, и оно может не совпадать с позицией Amazon Web Services.
Читать дальше →

Логи не нужны?

Время на прочтение10 мин
Охват и читатели38K
Разработка сильно изменилась за последние годы. Вместо монолитных приложений пришли микросервисы и функции. Базы данных из универсальных промышленных монстров переродились в узконаправленные. Docker изменил взгляд на деплой. Но изменилось ли наше представление о логах?

Одна из больших проблем в Яндекс.Вертикалях были логи — 18 ТБ в день и 250 000 логов в секунду, все пишется в файлы. Логи разнородные, потому что много языков: Scala, Java, Python, Go. Потом их собирает Fluent Bit, пишет в Kafka, на одной железной машине работают обработчики, собирают из Kafka и пишут всё на диск. При этом это уже вторая версия логов.



Как следствие, возникает проблема долгого поиска. По этим логам поиск идет с помощью grep. На некоторых сервисах grep может достигать часов. Если у вас есть проблемы в продакшн, вы не будете часами искать свои логи. Чтобы решить проблему, в Яндекс решили написать свой велосипед доставки логов для поиска. Что из этого получилось, расскажет Алексей Данилов (danevge) — разработчик команды инфраструктуры в Яндекс.Вертикалях. Разрабатывает, пишет и поддерживает проекты auto.ru и Яндекс.Недвижимость.

Дисклеймер. Статья рассказывает о современной разработке и подходит для микросервисной архитектуры. Здесь представлены различные продукты — это инструменты, которые используют в Яндекс.Вертикалях. Под другие условия возможны аналоги удачнее, но они выполняют практически те же функции.
Читать дальше →

Не потерял ли GraphQL актуальности в эпоху HTTP/2?

Время на прочтение8 мин
Охват и читатели21K
Недавно Фил Стерджен опубликовал твит, который сильно задел любителей GraphQL. В этом твите речь шла о том, что GraphQL — это, по определению, технология, которая противоречит сущности HTTP/2. О том, что уже вышел стандарт HTTP/3, и о том, что автор твита не очень понимает тех, кто, выбирая GraphQL, идёт путём несовместимости. Для того чтобы лучше понять причины такого отношения Фила к GraphQL — взгляните на этот материал.



Примерно в то же самое время было сделано сообщение о появлении проекта Vulcain. В это сообщение входили такие слова: «TL/DR: GraphQL вам больше не нужен!». И наконец — вышла замечательная статья Марка Ноттингема, посвящённая мощным возможностям HTTP/2, и тому, что эти возможности означают для тех, кто проектирует API. Ссылкой на эту статью поделился со своими подписчиками Даррел Миллер.

Происходящее заставило меня задуматься о GraphQL и об HTTP/2. Если всё вокруг начнёт работать с использованием HTTP/2 (и HTTP/3), будет ли это значить, что у нас не останется причин использовать GraphQL? Вот это мне и хотелось бы сегодня выяснить.
Читать дальше →

Фриланс-вебдев — как и с кем НЕ стоит работать

Время на прочтение6 мин
Охват и читатели23K

imageКДПВ взята отсюда


Часто слышу истории вида "пробовал фрилансить — не понравилось" и встречаю много заблуждений по поводу этого типа работ, потому что люди просто начали "не с той стороны". Постараюсь исправить ситуацию этим постом.


Сразу оговорюсь — большая часть того, что здесь написано, неизменно приходит с опытом и уже описано на просторах интернета. Только часто оно встречается в виде коротких и категоричных советов вроде "не работай с мудаками". И я тоже встречал эти советы, но вот проблема — в таком виде они не работают. Вообще. Наоборот, хочется сказать, как же мол так, человек тебе работу предлагает, готов деньги платить (больше, чем грузчикам на морозе), а ты его оскорбляешь, пусть даже заочно. Кажется, автор такого высказывания просто привык "получать", а не "зарабатывать" и обладает чересчур завышенной самооценкой. И только по прошествии многих неудачных проектов приходит осознание, что какая-то мудрость в тех словах всё-таки была.

Читать дальше →