Как стать автором
Обновить
20
0
Владимир @vtikunov

Программист

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

Как мы сделали PHP 7 в два раза быстрее PHP 5. Часть 1: оптимизация структур данных

Время на прочтение18 мин
Количество просмотров37K
В декабре 2015 вышел PHP 7.0. Компании, которые перешли на «семерку» отметили, что увеличилась производительность, а нагрузка на сервера — уменьшилась. Первыми перешли на семерку Vebia и Etsy, а у нас Badoo, Авито и OLX. Для Badoo переход на семёрку обошелся в 1 млн. долларов экономии на серверах. Благодаря PHP 7 в OLX средняя нагрузка на сервер снизилась в 3 раза, повысилась эффективность и экономия ресурсов.

Дмитрий Стогов из Zend Technologies на HighLoad++ рассказал, благодаря чему повысилась производительность. В расшифровке: о внутреннем устройстве PHP, об идеях в основе версии 7.0, об изменениях в базовых структурах данных и алгоритмах, которые и определили успех.

Disclaimer: На март 2019 года 80% сайтов работают на PHP, и 70% из них — на PHP 5, хотя с 1 января 2019 эта версия не поддерживается. Доклад Дмитрия от 2016 года про принципы, благодаря которым произошел двукратный скачок производительности между PHP 5 и 7, — актуален и в марте 2019. Для половины сайтов — точно.
Всего голосов 121: ↑116 и ↓5+111
Комментарии20

Умный дом: новое измерение комфорта и стремление к совершенству. Часть первая

Время на прочтение10 мин
Количество просмотров17K
Эта статья – логическое продолжение поднятой ранее темы мониторинга систем загородного дома. Тому, кто не читал предыдущую статью, некоторые мысли в данной статье могут показаться странными. Напомню: уже в процессе проектирования и выбора базовых компонентов стало понятно, что мониторингом работы систем загородного дома дело не закончится и что нужно делать не просто мониторинг, а фундамент умного дома. Теперь посмотрим, как развивались события. Как и прежде, я не буду приводить полные листинги программ или детальные схемы. Моя задача – показать ход мысли и, возможно, инициировать дискуссию.


Читать дальше →
Всего голосов 27: ↑24 и ↓3+21
Комментарии32

Литье пластмасс в силикон — доступное мелкосерийное производство в домашних условиях

Время на прочтение8 мин
Количество просмотров346K
Многие из тех, кто печатает на 3D-принтере сталкиваются или с необходимостью получить партию моделей в короткие сроки, или скопировать удачно получившуюся деталь, или получить изделия с прочностными характеристиками, превосходящими таковые у пластиков для домашней 3d-печати.

3D-принтер далеко не всегда способен выполнить такие задачи, но отлично подойдет для создания единственного образца, или мастер-модели. А дальше на помощь нам приходят материалы производства компании Smooth-On, наверное, самого популярного производителя материалов холодного отверждения.

image

В этом обзоре мы сравним самые основные и популярные силиконы, полиуретаны и добавки к ним, кратко посмотрим на основные способы создания форм и изделий, подумаем, где это может найти применение и, наконец, создадим свою силиконовую форму и модель.
Перед написанием этого поста мы прошли трехдневный тренинг у официального дилера Smooth-On в России, чтобы разобраться во всех тонкостях литья в силикон.
Читать дальше →
Всего голосов 45: ↑44 и ↓1+43
Комментарии26

Курс лекций по JavaScript и Node.js в КПИ

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

100 лекций по программированию в Киевском политехническом институте


Товарищи инженеры, как и было обещано в анонсе, половина лекций (а это 51) уже доступны для просмотра на ютюбе и я продолжу их записывать в 2019 году. Часть из нужно будет перезаписать, потому, что в первых лекциях не самый лучший звук и потому, что очень простые темы у меня пока не очень хорошо получаются. Лучше вышли сложные и актуальные темы, которые мне и самому более интересно рассказывать. Я бы не сказал, что это курс для начинающих, скорее, это курс для тех, кто уже знает синтаксис. За это время поступило множество предложений, как улучшить способ подачи материала: делить на более короткие лекции, подготовить задачи для практического освоения, записывать семинары и ответы на вопросы студентов, добавить в программу разбор целого ряда спорных и холиварных тем. Но не все сразу, я и так посвящаю этому треть жизни.

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

Пишем CSS лучше и красивее

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


Скажем честно: писать хороший CSS-код бывает сложно.
Многие разработчики не любят писать CSS. Все что угодно, но только не это! Только не CSS.

Когда при разработке приложений приходилось браться за CSS, это была не самая радостная часть работы. Но ее ведь не избежать, верно? Сегодня порадовать пользователя дизайном приложения настолько важно, что без CSS — никак.

Когда проект только начинается, все идет хорошо. У вас всего пару селекторов: .title, input, #app — проще простого.

Но постепенно приложение разрастается, и заглядывать в CSS становится страшновато: во всех этих селекторах разобраться уже не так просто. Вы начинаете писать что-то вроде div#app .list li.item a, какие-то куски кода повторяются снова и снова, а всю свою писанину сваливаете в конец файла: вам уже плевать, потому что CSS — отстой. Итог — 500 строк CSS-кода, поддерживать который невозможно.


Это я, когда сражаюсь с CSS

Переведено в Alconost
Читать дальше →
Всего голосов 18: ↑12 и ↓6+6
Комментарии30

10 мифов о Docker, которые пугают разработчиков

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

Источник: 'Nova typis transacta navigatio' (Linz: s.n., 1621), p.12 (British Library, G.7237).


Часто во время разговоров о Docker я слышу мнения, с которыми не совсем согласен.


«Docker по своей сути предназначен для крупных компаний»

«под OSx у него экспериментальная поддержка, под Windows работает еле-еле»

«Я не уверен, что смогу быстро развернуть его локально»

… и еще много всякого.

В этих утверждениях есть доля истины (см. ниже мифы 3 и 5), но она мала, и по большей части реальная картина получается искаженной.


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


Что ж, нетрудно догадаться, почему Docker окружен таким количеством мифов.


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


Давайте поговорим о самых распространенных мифах – тех, с которыми я сталкивался и в которые верил, – и попробуем найти в них истину, а также решения, если таковые имеются.

Читать дальше →
Всего голосов 47: ↑41 и ↓6+35
Комментарии72

PHP-Дайджест № 134 (24 июня – 8 июля 2018)

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

В выпуске: PHP 7.3.0 alpha 3, PHPStan 0.10, Yii 1.1.20 и другие релизы, свежее предложение из PHP Internals по сравнению объектов, порция полезных инструментов, и многое другое.
Приятного чтения!

Всего голосов 47: ↑46 и ↓1+45
Комментарии25

Рассылай и властвуй: вёрстка рассылки тогда и сейчас

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

Их читают миллионы людей по всему миру. Их добавляют в спам, удаляют навсегда, но без них немыслим современный интернет. Многие фронтендеры пойдут на всё, что угодно, лишь бы отвертеться от работы над ними. Мой рассказ — об электронных письмах, о том, как они изменились за 20 лет и о том, как современному фронтендеру не впасть в депрессию, верстая их. Это первая статья из цикла, в которой я расскажу о том, как всё начиналось. Через пару недель поговорим о инструментах разработки и тестирования рассылки.
Утри слёзы, верстальщик
Всего голосов 38: ↑37 и ↓1+36
Комментарии9

Сколько зарабатывает Хабр + инструкция как узнать сколько зарабатывают другие компании

Время на прочтение3 мин
Количество просмотров75K
Предыстория: после того, как мы с командой в прошлом году закрыли компанию и еще не начали работу над новой, мы решили обновить наш старый, но довольно большой сайт с кулинарными рецептами. Чтобы понять насколько серьезно стоит углубляться в работу над ним, я проанализировал данные по выручке сайтов, которые тоже зарабатывают на рекламе.

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

image
Читать дальше →
Всего голосов 103: ↑100 и ↓3+97
Комментарии66

До микросервисов нужно дорасти, а не начинать с них

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


Предлагаю поговорить о том, когда нужны микросервисы, а когда нет. Спойлер: это зависит от проекта.

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

Просто так, из-за мнения одного человека или компании вы начинаете сомневаться во всём, что делали в течение многих лет, даже если всё работало отлично.
Читать дальше →
Всего голосов 64: ↑64 и ↓0+64
Комментарии237

Docker + Laravel = ❤

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

laravel-in-docker


Эта статья использует устаревший и не самый рациональный подход, на данный момент не могу его рекомендовать к использованию. Рекомендую к прочтению следующую статью.

В данной статье я расскажу о своём опыте "заворачивания" Laravel-приложения в Docker-контейнер да так, что бы и локально с ним могли работать frontend и backend разработчики, и запуск его на production был максимально прост. Так же CI будет автоматически запускать статические анализаторы кода, phpunit-тесты, производить сборку образов.


"А в чём, собственно, сложность?" — можешь сказать ты, и будешь отчасти прав. Дело в том, что этой теме посвящено довольно много обсуждений в русскоязычных и англоязычных комьюнити, и почти все изученные треды я бы условно разделил на следующие категории:


  • "Использую докер для локальной разработки. Ставлю laradock и беды не знаю". Круто, но как обстоят дела с автоматизацией и запуском на production?
  • "Собираю один контейнер (монолит) на базе fedora:latest (~230 Mb), ставлю в него все сервисы (nginx, бд, кэш, etc), запускаю всё супервизором внутри". Тоже отлично, прост в запуске, но как на счёт идеологии "один контейнер — один процесс"? Как обстоят дела с балансировкой и управлением процессами? Как же размер образа?
  • "Вот вам куски конфигов, приправляем выдержками из sh-скриптов, добавим магических env-значений, пользуйтесь". Спасибо, но как же на счёт хотя бы одного живого примера, который я бы мог форкнуть и полноценно поиграться?

Для нетерпеливых — ссылка на репозиторий, склонировав который ты сможешь запустить Laravel-приложение одной командой. Так же не составит труда его запустить на том же rancher, правильно "слинковав" контейнеры, или использовать продуктовый вариант docker-compose.yml как отправную точку.
Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии23

Пятничная помощь: 5 инструментов для начинающего PHP-разработчика

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


Программисты знают, насколько вспомогательные инструменты могут ускорить процесс разработки, облегчая жизнь специалисту. Мы решили публиковать небольшие подборки с описанием таких инструментов по пятницам. Маленькими порциями, чтобы не перегружать вас. В преддверии выходных сложная информация воспринимается не слишком хорошо, а вот небольшие подборки, которые делают жизнь проще, — то, что доктор прописал.
Читать дальше →
Всего голосов 41: ↑13 и ↓28-15
Комментарии27

Тестовый сервер для команды разработчиков

Время на прочтение9 мин
Количество просмотров17K
Привет, Хабр! В данной статье я хочу поделиться опытом разворачивания тестового сервера для команды разработчиков. Вкратце суть проблемы — есть команда разработки и несколько проектов на php. Пока нас было мало и проект был по сути один, то использовался 1 тестовый сервер и чтобы показать задачу заказчику — разработчик «столбил» сервер на определенное время. Если «окон» по времени не было, то приходилось ждать. Со временем рос коллектив и сложность задач, соответственно увеличивалось время проверки и занятость тестового сервера, что негативно влияло на сроки выполнения и премию. Поэтому пришлось искать решение и оно под катом.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии12

Установка сервера Linux + (Nginx + Apache) + PostgreSQL + PHP на VirtualBox (Ubuntu Server 16.04.3 LTS)

Время на прочтение9 мин
Количество просмотров60K
На просторах интернета не нашел единого рецепта по установке и настройке такого, довольно нестандартного сервера. Решил написать свой рецепт.

Принцип работы следующий:


Статические данные (файлы) отдает Nginx, а динамикой занимается Apache.
Читать дальше →
Всего голосов 52: ↑12 и ↓40-28
Комментарии33

Как ускорить загрузку сайта: 7 советов по оптимизации для начинающих

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


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

Примечание: в конце статьи приведен список ресурсов для дальнейшего изучения — будем благодарны, если вы сможете дополнить его в комментариях.
Читать дальше →
Всего голосов 22: ↑16 и ↓6+10
Комментарии6

Android-приложения на JPHP

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

Люди которые пишут код на PHP сделают всё чтобы не переходить на другие языки. Да, я в курсе что раньше на Хабре уже был способ писать Android-приложения на PHP, но было принято решение адаптировать его под более быстрый и совместимый с Java JPHP.


logo

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

Git: распространённые ошибки и способы их исправления

Время на прочтение4 мин
Количество просмотров46K
Если вы когда-нибудь работали над большим проектом, в котором, помимо вас, участвуют и многие другие программисты, тогда вы, очевидно, применяли Git в роли системы контроля версий. В ходе использования чего-то, по уровню сложности похожего Git, все совершают ошибки.


Автор материала, перевод которого мы публикуем сегодня, собирается обсудить распространённые ошибки, которые совершают программисты при работе с Git, и поговорить о том, как с этими ошибками бороться.
Читать дальше →
Всего голосов 76: ↑56 и ↓20+36
Комментарии19

Рецепт полезного код-ревью от разработчика из Яндекса

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



Привет. Меня зовут Сергей, последние пять лет я работаю в Яндексе. За это время участвовал в разработке одиннадцати проектов. Писал код на JavaScript, Python и C++. Некоторые проекты делал в одиночку, другие разрабатывал в группе из восьми человек. Но в каждой команде, на всех проектах, вне зависимости от языка программирования я использовал код-ревью.


С помощью код-ревью я постоянно узнаю что-то новое. Иногда, глядя на чужой код, хочется воскликнуть: "А что, так тоже можно?". В чужом коде я нахожу интересные приёмы и беру их себе на вооружение. Много новых знаний черпаю из комментариев к моему коду. Для меня стало открытием, что люди любят делиться своим опытом. Даже когда я разрабатываю проект в одиночку, то прошу ребят из другой команды посмотреть мои пулреквесты. Это мотивирует писать красивый и понятный код.


Но так было не всегда. Когда-то ревью было для меня наказанием. Я мог неделю с вдохновением писать код, вкладывая в него все силы. Отправлял пулреквест, трижды пинговал ревьювера, а в ответ получал сухое "вроде ок" или, что ещё хуже, десятки комментариев не по существу.


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


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

Читать дальше →
Всего голосов 77: ↑68 и ↓9+59
Комментарии172

Пользовательские события в действии

Время на прочтение5 мин
Количество просмотров21K
В этой заметке расскажу, как я использую пользовательские события jQuery (custom events) в своей работе.

Имитиация событий


Дана простая задача, реализацию которой наблюдают все хабровчане: когда пользователь достаточно прокрутил страницу вниз, анимированно отображается блок-врезка «Лучшее за 24 часа», и скрывается, когда пользователь прокручивает страницу вверх. Эта задача решается подвешиванием обработчика на события scroll и resize окна (window), который занят двумя вещами: вычисляет, нужно или нет отображать/скрывать блок-врезку, и в зависимости от результата производит анимацию отображения или осуществляет скрытие.

Если эта задача стояла перед нами, как бы мы приступили к ее реализации? Ну, например, написали такой кусочек кода:
Читать дальше →
Всего голосов 26: ↑23 и ↓3+20
Комментарии6

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность