Как стать автором
Обновить
1
0
Максим @FranCOder

Backend developer

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

Сортировка в Laravel по полям relation-ов

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

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

После завершения задачи решил создать этот более-менее "всеохватывающий" гайд.

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

Домашка на лето: что почитать разработчику

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

У нашего разработчика Михаила Ефремова есть хобби — читать книги и делать подборки особенно полезных. В этой статье он расскажет, как собрал книжную полку с лучшими, на его взгляд, книгами для разработчиков и поделится мнением о них. Миша подобрал книги по алгоритмам, архитектуре, базам данных, Linux/UNIX, Golang, Python.

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

Пишем Telegram бота для распознавания голосовых сообщений и их обработки с помощью AI

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

Всем привет. Меня зовут Игорь Филиппов и я веб-разработчик. Вы, вероятнее всего, знаете, как прочно ChatGPT закрепился в медийном пространстве. Ежедневно выходит сотни статей и видео на эту тему, предлагая разнообразные варианты применения.

Мне в голову пришла идея создать бота, который автоматически под каждым голосовым сообщением оставляет свой реплай с полной расшифровкой аудио. Но в процессе разработки я подумал, что можно дополнительно проинтегрировать бота с ChatGPT - для получения краткого пересказа самого сообщения. Тем более, к тому моменту, когда я делал бота, Open AI только выпустила доступ к API.

С какими сложностями столкнулся, как решил и что получилось в итоге описал в этой статье.

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

[По полочкам] Кэширование

Уровень сложности Простой
Время на прочтение 12 мин
Количество просмотров 42K

Всем привет! Меня зовут Илья Денисов, я занимаюсь backend разработкой уже более пяти лет и сейчас пишу на языке go. Сегодня я предлагаю вам поговорить о кэшировании. Постараюсь рассказать о базовых концепциях, а также затронуть ряд особенностей, неочевидных на первый взгляд.

Читать далее
Всего голосов 45: ↑41 и ↓4 +37
Комментарии 16

Как заонбордиться тимлиду — первые 90 дней на новой работе

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

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

Ещё дадим несколько советов на тот случай, если всё-таки не удаётся показать результат за отведённое время.

Читать далее
Всего голосов 15: ↑14 и ↓1 +13
Комментарии 5

Оптимизация бэкенда приложения с примерами на Symfony. Часть 1

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

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

В текущей статье, рассмотрим темы - n+1, пагинация и индексы. Приятного чтения!

Описание приложения

Рассматриваемый проект - это веб-журнал посещений различных мест людьми с возможностью выгрузки и загрузки журнала в формате XML. Пользователь может загрузить журнал посещений в формате XML через форму на странице /upload, и на основе информации из файла будет заполнена база данных. Вся информация о посещениях будет отображаться на главной странице /index. Экспорт из системы осуществляется через команду, которая преобразует информацию из системы в формат XML и выгружает ее в файл (data.xml).

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

Анатомия игры: обратный инжиниринг на службе мододелов или как замодить игру на примере Elden Ring и не только. Часть 1

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


В прошлый раз я уже рассказывала о том, как могут быть устроены игры. Теперь же настало время поведать вам, как это строение узнали и зачем вообще людям изучать организацию файлов той или иной игры. 
Читать дальше →
Всего голосов 27: ↑27 и ↓0 +27
Комментарии 13

Туториал по Unreal Engine. Часть 1: знакомство с движком

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

Unreal Engine 4 — это набор инструментов для разработки игр, имеющий широкие возможности: от создания двухмерных игр на мобильные до AAA-проектов для консолей. Этот движок использовался при разработке таких игр, как ARK: Survival Evolved, Tekken 7 и Kingdom Hearts III.

Разработка в Unreal Engine 4 очень проста для начинающих. С помощью системы визуального создания скриптов Blueprints Visual Scripting можно создавать готовые игры, не написав ни строчки кода! В сочетании с удобным интерфейсом это позволяет быстро изготавливать рабочие прототипы.

В этой части туториала по Unreal Engine 4 мы ознакомимся с основными возможностями программы. Вот основные темы, которые будут в нём рассмотрены:

  • Установка движка
  • Импорт ассетов
  • Создание материалов
  • Использование Blueprints для создания объектов с простейшими функциями
Читать дальше →
Всего голосов 21: ↑19 и ↓2 +17
Комментарии 10

Переходим на Go: 16 материалов для самостоятельного изучения языка

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 38K

Привет! Меня зовут Владислав Попов, я автор курса «Go-разработчик» Яндекс Практикума. Когда-то я сам был студентом — хотел учиться Go, но такого курса в Практикуме не было, поступил на Python. Прошёл вводную часть — и тут стартовал желанный курс по Go. В тот же вечер оформил возврат и перепоступил. Попал в первый поток, прошёл его, и после сдачи итогового проекта мне предложили стать тестером курса «Продвинутый Go-разработчик».

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

За время работы с Go я понял, что сам язык не очень сложный и подходит даже в качестве первого, но нужно выучить синтаксис и погрузиться в некоторые особенности, которые отличают Go от других языков: например, интерфейсы и особенности встраивания. А ещё важно на старте хорошо знать Git и ориентироваться в работе SQL (причём любого).

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

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

Как и зачем тестировать код на бэкенде: рекомендации для новичков

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

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

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

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

Проектируем реактивное — Message-Driven системы на PHP

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

Цель этой статьи — показать не только зачем, но и как мы можем создавать приложения на PHP, которые будут устойчивыми, масштабируемыми и податливыми для  изменений. Статья концентрируется на разработке  бизнес-ориентированных приложений, в которых можно четко выделить бизнес-логику, процессы и потоки работ (workflows). Это квинтэссенция моего опыта, накопленного за годы работы над бизнес-ориентированным программным обеспечением в целом и в процессе создания фреймворка для обмена сообщениями Ecotone в частности.

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

Clean Architecture, DDD, гексагональная архитектура. Разбираем на практике blog на Symfony

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

Всем привет! Давайте знакомиться ;) Я Аня, и я php разработчик. Основной стек - Magento. С недавних пор начала посматривать налево на Symfony и писать свои Pet Projects на этом фреймворке.

Мне всегда нравилось писать решения которые легко бы расширялись / адаптировались под требования бизнеса (заказчика). И мне всегда хотелось сделать это более 'правильно' и красиво. Так я и познакомилась с понятиями чистой архитектурой.

Мой пост ни в коем случае не претендует на самый правильный. Но позвольте мне здесь донести свои идеи. В комментариях буду рада услышать конструктивную критику к данному посту.

Для нетерпеливых, вот прямая ссылка на гитхаб

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

Конспект лекций по ООП, или Только не ещё одна статья про SOLID

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

Так выглядит "инкапсуляция, наследование и полиморфизм" в глазах Midjourney. Интересно, кто тут кто, а так же какой четвёртый "кит" ООП закрался в эту мозаику. Но я не об этом. Я собрал студентам конспект своих лекций по ООП, которые читаю уже, страшно подумать, больше 15 лет. Книжку по функциональному программированию я написал уже давно, книжка по реляционным базам данных пока только в виде первой главы, а конспект по ООП собрался только вот-вот, аккурат к сессии готовиться. Не знаю, что из этого выйдет, %хабр%, "но так и быть - рукой пристрастной прими собранье пестрых глав". Содержание всех глав - в конце, а под катом - одна из глав, которая посвящена SOLID. Да, опять. Да, снова.

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

Чистая архитектура

Время на прочтение 5 мин
Количество просмотров 148K
От переводчика: данная статья написана Дядюшкой Бобом в августе 2012 года, но, на мой взгляд, вполне актуальна до сих пор.



За последние несколько лет мы видели целый ряд идей относительно архитектуры систем. Каждая из них на выходе давала:

  1. Независимость от фреймворка. Архитектура не зависит от существования какой-либо библиотеки. Это позволяет использовать фреймворк в качестве инструмента, вместо того, чтобы втискивать свою систему в рамки его ограничений.
  2. Тестируемость. Бизнес-правила могут быть протестированы без пользовательского интерфейса, базы данных, веб-сервера или любого другого внешнего компонента.
  3. Независимоcть от UI. Пользовательский интерфейс можно легко изменить, не изменяя остальную систему. Например, веб-интерфейс может быть заменен на консольный, без изменения бизнес-правил.
  4. Независимоcть от базы данных. Вы можете поменять Oracle или SQL Server на MongoDB, BigTable, CouchDB или что-то еще. Ваши бизнес-правила не связаны с базой данных.
  5. Независимость от какого-либо внешнего сервиса. По факту ваши бизнес правила просто ничего не знают о внешнем мире.


Диаграмма в начале этой статьи — попытка объединить все эти идеи в единую эффективную схему.
Подробности далее ...
Всего голосов 24: ↑22 и ↓2 +20
Комментарии 27

Декомпозиция систем по ограниченным контекстам DDD — глубокое погружение

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

"Отдайте этот функционал в другую системы - он относится к ним" - ворчал мой собеседник. Ему с пылом отвечали: "Так быть не должно. Мы сами должны его сделать!" Спор грозил затянуться до вечера. Ни одна из сторон не могла привести ни одного настоящего аргумента, почему новый функционал нужно поместить в ту или иную автоматизированную систему.

Проблема была в том, что никто не понимал как правильно делить системы на части и по каким признакам включать в них новые модули. У собеседников не было никакой единой простой методики.

Но методика на самом деле есть, и весьма неплохая. Называется она Предметно Ориентированным Дизайном (Domain Driven Design, DDD). С помощью DDD деление большой системы на (микро)сервисы становится простым и понятным.

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

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

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

Хабр, привет! Меня зовут Даниил Пилипенко, я программный директор факультета backend-разработки направления «Программирование» Skillbox, директор центра подбора IT-специалистов SymbioWay. Сегодня разберём практические задачи, с которыми могут столкнуться Java-разработчики junior-уровня на собеседовании. Такого рода задачи мы часто видим на собеседованиях наших клиентов и коллег, а также сами даём соискателям.

Читать далее
Всего голосов 25: ↑20 и ↓5 +15
Комментарии 47

Шпаргалка Java программиста 1: JPA и Hibernate в вопросах и ответах

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

Знаете ли вы JPA? А Hibernate? А если проверить?

В чем смысл серии статей 'Шпаргалки Java программиста'
За время работы Java программистом я заметил, что как правило программисты постоянно и планомерно используют от силы 10-20% от возможностей той или иной технологии, при этом остальные возможности быстро забываются и при появлении новых требований, переходе на новую работу или подготовке к техническому интервью приходится перечитывать все документации и спецификации с нуля. Зато наличие краткого конспекта особенностей тех или иных технологий (шпаргалок) позволяет быстро освежить в памяти особенности той или иной технологии.




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

Поехали...
Всего голосов 37: ↑32 и ↓5 +27
Комментарии 16

Алгоритмы для веб-разработчиков простыми словами

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

Здравствуйте, друзья! Данным постом мы открываем цикл статей об алгоритмах и структурах данных.

В этой статье мы поговорим о том, зачем вообще их нужно знать веб-разработчикам, и затронем тему оценки сложности алгоритмов и Big O нотации.

Зачем мне алгоритмы? Я фронтендер!

Вы наверняка задумались: «А зачем мне нужно тратить своё время на изучение этих сложных алгоритмов, если я работаю с фронтендом? Как знание графов и бинарных деревьев поможет мне лучше отцентровать одну div-ку внутри другой div-ки?»

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

Многие веб-разработчики на таких форумах, как Reddit и Stack Overflow, отмечали, что, освоив даже на базовом уровне эти фундаментальные основы программирования, чувствовали себя увереннее, профессиональнее и писали более чистый и структурированный код.

Также это помогло им прокачать главный скилл разработчика – умение логически думать и решать сложные технические задачи.

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

Ведь они ищут лучших из лучших, и знание алгоритмов как раз делает вас лучше как разработчика. Тем более, лучше инвестировать свое свободное время в новые знания и навыки, чем в сериалы на Netflix.

И на этой прекрасной ноте давайте перейдем к основной теме статьи.

Читать далее
Всего голосов 27: ↑23 и ↓4 +19
Комментарии 25

Веб-фреймворки для Golang в 2022 году: оптимальные варианты для разработчика

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

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

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

Как прокачаться в PHP: 70 ресурсов из опроса русскоязычного сообщества

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

В чаты по PHP часто приходят с вопросами про развитие: какие книги стоит прочитать в первую очередь, на какие каналы подписаться, какие курсы хороши. Если повезет, в ответ чат поделится парой рекомендаций. Мы решили агрегировать их в список и собрали 150+ мнений по актуальным ресурсам для PHP-разработчика. 

Без длинных интро. Самые упоминаемые ресурсы идут первыми в разделах, а те, которые советовали новичкам, отмечены флажком 🚩. 

Читать далее
Всего голосов 35: ↑32 и ↓3 +29
Комментарии 5

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность