Как стать автором
Обновить
12
0
Павел @pavelgvozdb

NodeJS, PHP

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

Шрифты, общие для всех (актуальных) версий Windows, и их Mac-эквиваленты

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

Введение


В данном списке перечислены шрифты, общие для всех актуальных на данный момент операционных систем Windows (фактически начиная с Windows 98), и их эквиваленты в Mac OS. Такие шрифты иногда называют «безопасными шрифтами для браузеров» (browser safe fonts). Это небольшой справочник, которым я пользуюсь, когда делаю Web-страницы и думаю, что он будет полезен и Вам.
Читать дальше →
Всего голосов 69: ↑58 и ↓11+47
Комментарии24

Ускоряем Nginx за 5 минут

Время на прочтение5 мин
Количество просмотров281K
image
Попытайтесь повторить это сами

Как правило, настроенный должным образом сервер Nginx на Linux, может обрабатывать 500,000 — 600,000 запросов в секунду. Но этот показатель можно весьма ощутимо увеличить. Хотел бы обратить внимание на тот факт, что настройки описанные ниже, применялись в тестовой среде и, возможно, для ваших боевых серверов они не подойдут.

Минутка банальности.

yum -y install nginx

На всякий пожарный, создадим бэкап исходного конфига.

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig
vim /etc/nginx/nginx.conf

А теперь можно и похимичить!
Бдыжь-бдыжь
Всего голосов 203: ↑138 и ↓65+73
Комментарии127

Как выбрать договор на разработку ПО

Время на прочтение3 мин
Количество просмотров21K
На практике нам часто приходится сталкиваться с различными договорами на создание программного обеспечения. Обычно для оформления заказа на разработку программных продуктов используются договор возмездного оказания услуг, договор подряда либо договор авторского заказа (авторский договор).

Какой из них верный и чем грозит ошибка при выборе договора?
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии4

Как программировать если совсем не хочется? План спасения на случай перегорания или дедлайна

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


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

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

Введение в React, которого нам не хватало

Время на прочтение17 мин
Количество просмотров40K
React — это самая популярная в мире JavaScript-библиотека. Но эта библиотека не потому хороша, что популярна, а потому популярна, что хороша. Большинство существующих вводных руководств по React начинается с примеров того, как пользоваться этой библиотекой. Но эти руководства ничего не говорят о том, почему стоит выбрать именно React.

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



Этот материал (вот, если интересно, его видеоверсия) написан для тех, кто хочет найти ответ на следующие вопросы: «Почему React? Почему React работает именно так? С какой целью API React устроены так, как устроены?».
Читать дальше →
Всего голосов 44: ↑40 и ↓4+36
Комментарии14

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

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



Сегодня я хочу рассказать об особенностях этих функций, объяснить всё то, что может оказаться в них непонятным, и привести практические примеры их использования.
Читать дальше →
Всего голосов 37: ↑36 и ↓1+35
Комментарии11

5 библиотек для Vue.js, без которых мне не обойтись

Время на прочтение10 мин
Количество просмотров31K
Опытные разработчики знают о том, что иногда, пытаясь сэкономить время и решить какие-то задачи своего проекта с помощью пакета, созданного кем-то другим, можно, в итоге, потратить больше времени, чем было сэкономлено. Библиотеки, жёстко регламентирующие реализацию неких механизмов и не позволяющие решать с их помощью необычные задачи, выходящие за рамки того, что кажется правильным их авторам, заставляют нас, буквально сразу же после их установки, жалеть о том, что мы вообще решили их попробовать.



Хотя со мной такое случалось довольно часто, у меня, всё же, есть небольшой список любимых библиотек, которые я использовал во множестве проектов, и которые за долгое время доказали свою крайнюю полезность. Я испытал множество подходов к решению тех задач, которые решают эти библиотеки. На мой выбор повлияло удобство работы с библиотекой, разнообразие её возможностей, хороший внешний вид того, что получается при её применении. В итоге у меня и появился тот список, которым я хочу с вами поделиться.
Читать дальше →
Всего голосов 45: ↑43 и ↓2+41
Комментарии26

Разгоняем Google PageSpeed до 100 и больше

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

Простые и полезные советы, которые позволят вам максимально разогнать сайт без необходимости закапываться в метриках Google PageSpeed и Lighthouse.
Читать дальше →
Всего голосов 21: ↑17 и ↓4+13
Комментарии65

Создаем современное веб приложение. Знакомство с проектом и подготовка к работе. Часть 1

Время на прочтение6 мин
Количество просмотров18K
image
В этой серии статей мы пройдем полный цикл создания клиентской части приложения и напишем небольшую библиотеку компонентов с использованием современного стека технологий.
Читать дальше →
Всего голосов 22: ↑18 и ↓4+14
Комментарии16

Нянчим проект на React-redux с пелёнок

Время на прочтение20 мин
Количество просмотров66K
intro
В начале этого года мы в HeadHunter начали проект, нацеленный на автоматизацию различных HR-процессов у компаний-клиентов. Архитектурой этого проекта на фронте выбрали React-Redux стек.

За 9 месяцев он вырос из небольшого приложения для тестирования сотрудников в многомодульный проект, который сегодня называется “Оценка талантов”. По мере его роста мы сталкивались с вопросами:

  • хранения стейта, его нормализации;
  • построения масштабируемой архитектуры проекта, удобной иерархии — как в структуре, так и в бизнес-логике.

Это проявлялось в изменении подхода к построению компонентов, архитектуры редьюсеров.

Давайте поговорим о том, как мы развивали проект и какие решения принимали. Некоторые из них могут оказаться “холиварными”, а другие, напротив, “классикой” в построении большого проекта на redux. Надеюсь, что описанные ниже практики помогут вам при построении react-redux приложений, а живые примеры помогут разобраться, как работает тот или иной подход.
Читать дальше →
Всего голосов 32: ↑29 и ↓3+26
Комментарии32

Организация маршрутов в Laravel

Время на прочтение3 мин
Количество просмотров18K
Здравствуй, Habr. Недавно я согласился на ревью сайта, заказанного на фрилансе. Я ожидал увидеть контроллеры, которые делают вообще все и занимают 200+ строк (и прочие проявления плохого кода), но все было вполне прилично. Валидация не лежала в контроллере, что встречается достаточно часто. Иногда, конечно, встречались некоторые несоответствия PSR-2, но все выглядело нормально, пока я не заглянул в файл с маршрутами. Он занимал несколько экранов и имел комментарии о группах маршрутов. Я связался с разработчиком и он сказал, что все немного «разрослось» и согласился поправить. В следующей версии я увидел, что он создал несколько классов со статическими методами, в которые переложил код и вызвал их, как это обычно делается, с авторизацией. Тут я вспомнил, что уже сталкивался с подобным и встречал такую аргументацию: «В документации ничего не говорится о вынесении маршрутов в разные файлы». Буквально через пару минут я нашел статью и отправил разработчику. Через пол часа я получил маршруты в нормальном виде и принял решение, что многим новичкам эта статья будет полезна. Так родился этот вольный перевод.

Если вы ни разу не правили файл RouteServiceProvider, добро пожаловать под кат.
Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Комментарии29

Пишем блог на микросервисах – часть 1 «Общее описание»

Время на прочтение4 мин
Количество просмотров16K
В этой статье хочу поделится нашими c SergeyMaslov наработками решения типовых задач с использованием микросервисной архитектуры на примере задачи «создание блога» (в надежде, что читатель представляет как устроен блог и это не должно вызывать вопросов по функциональности:)
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии18

Что такое ассертивность и зачем она нужна

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

Что такое навыки ассертивности, как их развивать и зачем это нужно? Как отставивать личные границы, не нарушая границ других? Почему ассертивные сотрудники ценны для компаний? Разбираемся вместе с психологом Марией Берлин.


Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии14

Поучительные эпизоды из сериала «Кремниевая долина» (1-й сезон)

Время на прочтение7 мин
Количество просмотров31K
Сериал «Кремниевая долина» (Silicon Valley) является не только увлекательной комедией про стартапы и программистов. Он содержит массу полезных при развитии стартапа сведений, изложенных простым и доступным языком. Я всегда рекомендую обязательно посмотреть этот сериал всем начинающим стартаперам. Для тех, кто не считает нужным тратить время на просмотр сериалов, я подготовил небольшую выборку наиболее полезных эпизодов, которые обязательно стоит посмотреть. Возможно, прочитав эту статью, вы захотите посмотреть это шоу.
Читать дальше →
Всего голосов 33: ↑31 и ↓2+29
Комментарии14

React Native: делаем draggable & swipeable список

Время на прочтение6 мин
Количество просмотров11K
Сегодня трудно кого-то удивить возможностью свайпать элементы списка в мобильных приложениях. В одном нашем react-native приложении тоже была такая функциональность, но недавно возникла необходимость расширить её возможностью перетаскивать элементы списка. А поскольку процесс поиска решения стоил мне некоторого количества нервных клеток, я решил запилить небольшую статью, чтобы сэкономить драгоценное время будущим поколениям.


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

Публичные выступления. Коротко о главном

Время на прочтение3 мин
Количество просмотров2.1K
Публичные выступления – это оружие в битве покорения умов. Если вы не завоеватель – оно вам не к чему. В противном случае – вот вам «чертежи» этого оружия!
Читать дальше →
Всего голосов 13: ↑6 и ↓7-1
Комментарии3

Архитектура веб-интерфейсов: деревянное прошлое, странное настоящее и светлое будущее

Время на прочтение14 мин
Количество просмотров11K
image

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

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

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

NB: В качестве примеров в статье будут использоваться только те фреймворки, с которыми непосредственно имел дело автор, и существенное внимание здесь будет уделено React и Redux. Но, несмотря на это, многие описываемые здесь идеи и принципы носят общий характер и могут быть более-менее успешно спроецированы на другие технологии разработки интерфейсов.

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

Что нужно знать о массивах JavaScript

Время на прочтение14 мин
Количество просмотров24K
Представляем вам перевод статьи автора Thomas Lombart, которая была опубликована на сайте medium.freecodecamp.org. Перевод публикуется с разрешения автора.


Пример использования метода reduce для сокращения массива

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

Несмотря на эффективность, большинство этих методов все еще малоизвестны и не очень популярны. Я проделаю для вас трудную работу и расскажу о самых полезных. Считайте эту статью своим путеводителем по методам массивов JavaScript.
Читать дальше →
Всего голосов 39: ↑27 и ↓12+15
Комментарии13

Ускоряем сайт с JivoSite. Отложенная загрузка онлайн-консультанта

Время на прочтение3 мин
Количество просмотров18K
При оценке скорости загрузки сайта сервисом Google, обратил внимание, что довольно много очков теряем из-за установленного онлайн-консультанта JivoSite. При удалении кода онлайн-консультанта с сайта, проект набирает на 16 очков больше для мобильной версии и на 19 очков больше для ПК версии.

Поэтому встал вопрос об отложенной загрузке онлайн-консультанта. Причем отложенная загрузка должна работать для Google теста скорости и не мешать работе онлайн-консультантов. Например, в случае если диалог уже начался, и пользователь переходит с одной страницы на другую, код онлайн-консультанта нужно грузить сразу, и грузится он будет из уже из браузерного кеша, т.к. был скачан на первом хите.
Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Комментарии18

Принципы построения REST JSON API

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

Эта памятка писалась для внутренних нужд (открыть глаза менее опытным в вебе коллегам). Но, т.к. я насмотрелся велосипедов от довольно уважаемых, казалось бы, контор, — выкладываю на хабр. Мне кажется, многим будет полезно.


Зачем


Надеюсь, читающий уже понимает, зачем ему вообще нужен именно REST api, а не какой-нибудь монстр типа SOAP. Вопрос в том, зачем соблюдать какие-то стандарты и практики, если браузеры вроде бы позволяют делать что хочешь.


  • Стандарт HTTP это стандарт. Его несоблюдение вредно для кармы и ведёт к постоянным проблемам с безопасностью, кэшированием и прочими "закидонами" браузеров, которые совсем не закидоны, а просто следование стандарту.
  • Велосипеды со всякими {error: "message","result":...} невозможно нормально тестировать и отлаживать
  • Поддержка большим количеством готовых клиентских библиотек на все случаи жизни. Те, кто будет вашим api пользоваться, скажут большое человеческое спасибо.
  • Поддержка автоматизированного интеграционного тестирования. Когда сервер на любые запросы отдаёт 200 ОК — ну, это такое себе развлечение.
Читать дальше →
Всего голосов 71: ↑55 и ↓16+39
Комментарии207
1

Информация

В рейтинге
Не участвует
Откуда
Алматы (Алма-Ата), Алма-Атинская обл., Казахстан
Дата рождения
Зарегистрирован
Активность