Как стать автором
Обновить
36
0
Роман @Sky4eg

PHP/GoLang разработчик

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

AI доступный каждому разработчику

Уровень сложности Сложный
Время на прочтение 8 мин
Количество просмотров 6.7K

Долгое время я прекрасно обходился без использования технологий искусственного интеллекта. Одни задачи можно было реализовать без всякого ИИ, а для других или готовых моделей не было или это были какие-то коммерческие облачные API.

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

Казалось бы, есть и локально запускаемые аналоги ChatGPT или сервисов генерации изображений. Есть библиотеки типа llama.cpp - бери и используй! Но если бы было всё так просто, то не было бы этой статьи.

Для тех, кто не может ждать, можете посмотреть, чего теперь можно добиться относительно быстро:

Читать далее
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 19

Почему ваши DevOps – эникейщики

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

Представьте, что есть проект, где 200 разработчиков, 20+ независимых продуктовых команд и у каждой свой собственный DevOps. Они всё автоматизируют — все довольны и занимаются исключительно своей работой. Разработчики даже успевают красить зелёные кнопочки в красный цвет. У DevOps современные инструменты и они помогают автоматизировать релизы. У каждого product owner независимая команда, он никем не блокируется, планирует свой бэклог, быстро двигается и развивается. А “эффективный менеджер” больше не сомневается стоит ли разрешать разработчикам самим катить в продакшен. Представили? Тогда прикинем, что может случиться с ними через год.

Обо всем этом и об интересном подходе к разработке в Ситилинке расскажет Константин Осипов — руководитель DevOps, QA и 140+ backend/fronted-разработчиков. Он познакомит нас с проблемами, которые стояли перед командой разработки и с тем, как они их решили. Поделиться своими мыслями, как не надо делать и объяснит как перестать быть эникейщиком. А главное, как со своими задачами в разработке справляются в Ситилинке.

Читать далее
Всего голосов 15: ↑13 и ↓2 +11
Комментарии 25

Blockchain и AI нацелились на авиацию

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 2.1K

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

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

Читать далее
Всего голосов 5: ↑3 и ↓2 +1
Комментарии 6

Laravel: разработка пакетов

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

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

Для лучшего понимания данного материала рекомендуется ознакомиться с разделом о разработке пакетов в официальной документации Laravel. А для более детального изучения темы будет полезен данный ресурс.

Данная статья в большей мере ориентирована на начинающих разработчиков.

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

Вопросы и ответы для собеседования Go-разработчика

Уровень сложности Средний
Время на прочтение 53 мин
Количество просмотров 101K

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


Я постарался копнуть в каждый вопрос чуть глубже чем, возможно, надо бы — что бы у читателя был не только короткий ответ на вопрос, но и некоторое понимание "а почему именно так устроена та или иная штука". Более того, крайне рекомендую ознакомиться и с ссылками на источники, что будут под ответами — там вы найдете более развернутые ответы.


Да, это очень объемный пост, и вряд ли его можно вдумчиво осилить за один подход, но поместив его в закладки он, возможно, когда-то сослужит вам добрую службу (читать его можно по частям, находясь в метро или между вечными совещаниями; да и Ctrl + F никто не отменял). Ещё ему очень не хватает оглавления для удобной навигации между вопросами, но у хабраредактора нет возможности генерировать TOC (если будут запросы об этом в комментариях — сделаю его руками). Об очепятках, пожалуйста, пишите в личку.

Читать дальше →
Всего голосов 43: ↑40 и ↓3 +37
Комментарии 16

Как разрабатывать сотни A/B экспериментов

Время на прочтение 8 мин
Количество просмотров 4.2K
А/Б-тестирование — это способ измерить эффективность нового функционала путем сравнения. Вы создаете новый заголовок, кнопку или изображение и показываете их только части аудитории сайта. В течение нескольких недель собираете статистику об использовании нового функционала и на основании этого принимаете решение об открытии новой фичи для 100% пользователей.

Senior Frontend Developer ЦИАН Иван Бабков, который разрабатывал приложения для регистрации доменов, интернет-банкинга и поиска по жилой недвижимости в своем докладе на конференции FrontendConf рассказал об инфраструктуре компании для работы с А/Б-экспериментами, проблемах и путях их решения.

image

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

PhpStorm 2020.3: PHP 8, атрибуты, PHPStan и Psalm, Xdebug 3, Tailwind CSS и совместная разработка

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


Рады представить финальный мажорный релиз PhpStorm в этом году! Под катом подробный разбор всех изменений и новых возможностей.
Всего голосов 48: ↑47 и ↓1 +46
Комментарии 134

Веб-разработка с нуля: руководство для молодых команд по созданию инфраструктуры CI/CD и процесса разработки

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

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


  • Проверка каждой ветки проходила локально. Приходилось откатывать базу от изменений с предыдущей проверки, билдить фронт. Когда несколько разработчиков вот-вот закончат работы и осталось проверить каждую по мелочи — это превращалось в ад;
  • Различались окружения на проде и между разработчиками, что приводило к ошибкам: “у меня всё работает”.

Внутренний перфекционист жаждал организовать всё правильно. Делюсь результатами поисков ответа на вопрос: «а как, собственно, “правильно”»?


Мы добились


  • Легкого и быстрого деплоя в production (ради эксперимента выводили каждый день две недели подряд);
  • Гарантию защищённости от ошибок из-за различий в окружении приложения;
  • Можем организовать эффективное взаимодействие с заказчиком:
    • демонстрировать каждую feature-ветку;
    • давать гостевой доступ для создания задач и наблюдения над ходом работ.

Данная статья будет полезна, если вы:


  • начинающая IT-компания или в первый раз столкнулись с работой в команде над большим проектом;
  • хотите обновить свой устаревший процесс разработки (workflow);
  • ищете лучшие практики и хотите посмотреть, как у других;
  • часто натыкаетесь на статьи про DevOps, CI/CD, облака и хотите, чтобы у вас одним нажатием кнопки создавались тестовые окружения, а очередное обновление прода не было рулеткой.

Под катом вы найдёте


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

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

Изучаем использование памяти MySQL с помощью Performance Schema

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

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

На заре MySQL понимание всех тонкостей и нюансов использования памяти было трудным и включало очень много догадок. Быть может, для выполнения некоторых запросов требуется большая временная таблица или выделение больших объемов памяти для сохраненных пользовательских переменных? Может, какие-либо хранимые процедуры занимают неожиданно большой объем памяти? Причиной чрезмерного использования памяти MySQL могло оказаться что угодно, но у вас не было легких путей понять и быть уверенным, что именно.

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

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 7

Как я за вечер написал быструю CMS для статических сайтов по правилам бизнес-логики в одном файлике

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

Не Wordpress-ом единым


Не Wordpress-ом единым

Рынок CMS длительное время оставался местом, где Wordpress, Joomla, Drupal — тройка абсолютных лидеров. Эти прекрасные времена уже постепенно проходят, хотя WP, сбавляя в динамике появления новых сайтов, все ещё сохраняет лидерство. Не мудрено: активное сообщество, огромное количество плагинов. Но, эта статья вовсе не будет посвящена “восходящим звёздам” рынка систем управления контентом (привет, решениям на базе Laravel). Скорее даже, объектом нашего внимания будет “черная материя”, которая находится несколько в стороне. А именно — барабанная дробь…
Читать дальше →
Всего голосов 41: ↑22 и ↓19 +3
Комментарии 43

Laravel–Дайджест (7–13 сентября 2020)

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

Страсти по Laravel UI — сообщество против Тейлора. Лучшие практики безопасности Laravel-приложений. Уроки по новым возможностям восьмой версии фреймворка. Подробный обзор Laravel JetStream.


Laravel Дайджест

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

Laravel-Дайджест (10–16 августа 2020)

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

Подборка новых статей по фреймворку Laravel. Некоторые подробности о Laravel 8. Как правильно писать масштабируемые приложения. Интеграция Paypal и Pusher.


Laravel Дайджест

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

Вышел релиз GitLab 13.2 с планированием итераций и нагрузочным тестированием производительности

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

Картинка для привлечения внимания


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

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

PhpStorm 2020.2: объединенные типы PHP 8, новый движок потока управления, пул-реквесты GitHub, OpenAPI

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


Привет, Хабр! Рады представить второй мажорный релиз PhpStorm в этом году!

Под катом подробный разбор всех заметных изменений и новых возможностей. Осторожно — много картинок.
Всего голосов 37: ↑37 и ↓0 +37
Комментарии 42

Победители конкурса стартапов The Europas Awards 2020

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


На Хабре часто пишут про новые технологии и яркие стартапы. Но почему-то до сих пор никто не рассказал об итогах конкурса The Europas Awards 2020, хотя там есть и российские победители. Cloud4Y исправляет эту оплошность.

В прошлом году Europas Awards для европейских технических стартапов проводился в формате вечеринки в солнечном саду рядом с историческим музеем в Лондоне. В этом году, в связи с глобальной пандемией коронавируса, мероприятие прошло в Zoom. И, как считают организаторы, было успешным. 
Читать дальше →
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 2

Изучаем net/context в Go

Время на прочтение 11 мин
Количество просмотров 61K
Не секрет, что основная ниша использования Go это сетевые сервисы: всевозможные серверы, бекенды, микросервисы, распределенные базы данных и файловые хранилища. Такой класс программ очень активно использует сетевые запросы, весь необходимый функционал для которых есть в стандартной библиотеке, но один аспект разработки сетевых архитектур остается для многих темным пятном — контексты запросов. В этой статье я хочу рассмотреть этот аспект повнимательней и показать, какой это мощный и важный инструмент.


Читать дальше →
Всего голосов 26: ↑23 и ↓3 +20
Комментарии 8

10 советов по тестированию в Symfony

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

Я принял участие в проекте с двухлетней кодовой базой и Symfony 3.4 в качестве веб-фреймворка. Это был не самый новый и блестящий проект, но у него было большое достоинство: тесты покрывали самые важные действия приложения.

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

Этого достигли с помощью многочисленных функциональных тестов Symfony и некоторых модульных тестов, которые заполнили некоторые пустоты. Общее покрытие было около 50-52 %, но покрытие критически важной функциональности было гораздо выше. Это придавало достаточно уверенности, чтобы добавлять новые функции без ручного тестирования.
Читать дальше →
Всего голосов 32: ↑30 и ↓2 +28
Комментарии 10

Тонкая настройка балансировки нагрузки

Время на прочтение 22 мин
Количество просмотров 46K
В этой статье речь пойдет о балансировке нагрузки в веб-проектах. Многие считают, что решение этой задачи в распределении нагрузки между серверами — чем точнее, тем лучше. Но мы же знаем, что это не совсем так. Стабильность работы системы куда важнее с точки зрения бизнеса.



Маленький минутрый пик в 84 RPS «пятисоток» — это пять тысяч ошибок, которые получили реальные пользователи. Это много и это очень важно. Необходимо искать причины, проводить работу над ошибками и стараться впредь не допускать подобных ситуаций.

Николай Сивко (NikolaySivko) в своем докладе на RootConf 2018 рассказал о тонких и пока не очень популярных аспектах балансировки нагрузки:

  • когда повторять запрос (retries);
  • как выбрать значения для таймаутов;
  • как не убить нижележащие серверы в момент аварии/перегрузки;
  • нужны ли health checks;
  • как обрабатывать «мерцающие» проблемы.

Под катом расшифровка этого доклада.

Всего голосов 51: ↑49 и ↓2 +47
Комментарии 17

Чистая архитектура на PHP. Как её измерять и контролировать?

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

Предисловие


Как ты уже понял из названия, говорить я тут собрался о самом, что ни на есть, “высоком” — Чистой архитектуре. А толчком к развитию всей этой истории послужила книга Роберта Мартина “Чистая архитектура”. Если еще не читал, осмелюсь порекомендовать! Автор раскрывает много важных тем, активно делится своим богатым жизненным опытом (из проф. области естественно) и сделанными на его основе выводами, эпизодически вплетает в главы истории о том, как виртуозно говнокодили (ну и не только, конечно же) наши отцы и деды в далёких 60-х, 70-х, 80-х и даже лихих 90-х, как по крупинкам собирали всеми любимые принципы SOLID и их аналоги в мире компонентов, и чему научились за прошедшие полвека. В процессе чтения книги хорошо прослеживается линия развития индустрии разработки ПО, типичные проблемы, с которыми пацанам приходилось сталкиваться, и способы их решения.

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

Мне кажется, статья будет полезна всем. Те, кто с книгой уже знаком, смогут освежить в своей памяти некоторые ее моменты, или просто пропустить первую часть и сразу приступить к знакомству с инструментом. Те, кто ранее книгу не читал, возможно, и в первой части найдут для себя что-то новое.
Читать дальше →
Всего голосов 36: ↑33 и ↓3 +30
Комментарии 23

Удаленка: что изменилось при COVID-19 и кому сейчас даже лучше, чем было до

Время на прочтение 4 мин
Количество просмотров 2.4K
В прошлом посте, где я рассказывал о своем пути из фриланса в бизнес, я говорил о том, как важно найти себя в узкой нише, а именно – на пересечении двух дисциплин, или крутого скиллсета и определенной индустрии.

Что сказать. Полтора месяца карантина еще раз показали правдивость этого утверждения – говорю это как со-основатель компании, которая ищет удаленных “сеньоров” в зарубежные компании и стартапы. У узких специалистов с хорошим английским все отлично. Менее узкие и с менее английским… Кому как повезло (спойлер: не повезло почти никому).
Читать дальше →
Всего голосов 22: ↑12 и ↓10 +2
Комментарии 5

Информация

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