Forwarded from Библиотека программиста | программирование, кодинг, разработка
🎄2️⃣0️⃣2️⃣2️⃣🎁
 
Чего только не было в этом году: нашествие нейросетевых алгоритмов и ARM-процессоров, GitHub Copilot и автодополнение кода, сражение с чёрной дырой пандемии и рождение метавселенных — всего и не припомнишь.
 
Под занавес принято подводить итоги. В 2021 году редакция «Библиотеки программиста» выпустила 448 статей, а сайт proglib.io посетили 4.7 миллиона читателей. Суммарное число подписчиков наших сообществ превысило 500 тысяч. Наконец, мы открыли собственный образовательный центр — proglib.academy.
 
Мы сердечно поздравляем всех читателей и членов нашего IT-коммьюнити с Новым годом. Желаем лёгкого кодинга, добра, счастья, здоровья и удачных проектов! Оставайтесь с нами, впереди много интересного! 😉
Чего только не было в этом году: нашествие нейросетевых алгоритмов и ARM-процессоров, GitHub Copilot и автодополнение кода, сражение с чёрной дырой пандемии и рождение метавселенных — всего и не припомнишь.
Под занавес принято подводить итоги. В 2021 году редакция «Библиотеки программиста» выпустила 448 статей, а сайт proglib.io посетили 4.7 миллиона читателей. Суммарное число подписчиков наших сообществ превысило 500 тысяч. Наконец, мы открыли собственный образовательный центр — proglib.academy.
Мы сердечно поздравляем всех читателей и членов нашего IT-коммьюнити с Новым годом. Желаем лёгкого кодинга, добра, счастья, здоровья и удачных проектов! Оставайтесь с нами, впереди много интересного! 😉
🎉12❤3👍3
  #video 
5 книг, которые должен прочитать каждый разработчик, по мнению Дейва Фарли, автора книги «Непрерывное развертывание ПО».
https://youtu.be/RfOYWeu5pGk
  
  5 книг, которые должен прочитать каждый разработчик, по мнению Дейва Фарли, автора книги «Непрерывное развертывание ПО».
https://youtu.be/RfOYWeu5pGk
YouTube
  
  5 Books That Can Change A Developer’s Career
  What are the best software developer books? This is obviously a subjective question. The best books for a software engineer or developer are always going to be a personal choice, and vary by their interests and maybe the technology that they work in, but…
👍2
  #testing 
Приложение, которое может помочь протестировать входящие http запросы: например, вебхуки. Написано на PHP, кстати. Можно посмотреть исходный код по ссылке.
https://httpdump.app/
  
  Приложение, которое может помочь протестировать входящие http запросы: например, вебхуки. Написано на PHP, кстати. Можно посмотреть исходный код по ссылке.
https://httpdump.app/
GitHub
  
  GitHub - beyondcode/httpdump: Easily inspect incoming HTTP Requests
  Easily inspect incoming HTTP Requests. Contribute to beyondcode/httpdump development by creating an account on GitHub.
👍3💩2
  #advanced 
Анна Филина рассуждает про null как о возвращаемом типе.
https://afilina.com/learn/nulls/return-types
Анна Филина рассуждает про null как о возвращаемом типе.
https://afilina.com/learn/nulls/return-types
👎12👍3💩1
  #library 
Библиотека для реализации долгоживущих воркеров от Валентина Удальцова.
https://github.com/happy-inc-tech/worker
  
  Библиотека для реализации долгоживущих воркеров от Валентина Удальцова.
https://github.com/happy-inc-tech/worker
GitHub
  
  GitHub - happy-inc-tech/worker
  Contribute to happy-inc-tech/worker development by creating an account on GitHub.
👍4
  #laravel 
Скоро состоится релиз Laravel 9. В этой статье собран небольшой список предстоящих фичей очередной мажорной версии фреймворка.
https://laravel-news.com/laravel-9
  
  Скоро состоится релиз Laravel 9. В этой статье собран небольшой список предстоящих фичей очередной мажорной версии фреймворка.
https://laravel-news.com/laravel-9
Laravel News
  
  A look at what is coming to Laravel 9
  Laravel v9 will be the next LTS version of Laravel and it will be coming out sometime in early 2022. In this post, we wanted to outline all the new features and changes that have been announced so far.
👍2
  #laravel 
Тред от опытного разработчика Марселя Почета с советами по улучшению производительности запросов при использовании Eloquent.
https://twitter.com/marcelpociot/status/1480541086972096514
  
  Тред от опытного разработчика Марселя Почета с советами по улучшению производительности запросов при использовании Eloquent.
https://twitter.com/marcelpociot/status/1480541086972096514
Twitter
  
  Marcel Pociot 🧪
  🚀 Over the years I've written a lot of Eloquent queries in @laravelphp Here's a collection of tips on how you can improve the performance/readability/maintainability of those queries. 🧵
👍5
  #mustread 
Интересный тред о том, нужно ли следовать строгости при написании кода. Автор треда жалуется, что PHP разработчики, которые все классы делают финальными, проставляют типы всем свойствам и аргументам, усложняют возможность расширять свой код.
Вы согласны с этим?
https://twitter.com/davert/status/1480489855515774978
  
  Интересный тред о том, нужно ли следовать строгости при написании кода. Автор треда жалуется, что PHP разработчики, которые все классы делают финальными, проставляют типы всем свойствам и аргументам, усложняют возможность расширять свой код.
Вы согласны с этим?
https://twitter.com/davert/status/1480489855515774978
Twitter
  
  davert
  The biggest problem of modern #PHP and #TypeScript are developers who over-use strictness of these languages. Assign type to everything, make all classes final, create only from factories, hardcode class names... This might seem like smth good but it breaks…
👎6👍3
  #advanced 
Библиотека, которая умеет переопределять вызов функций внутри ваших классов в целях облегчения тестирования. Например, вы можете замокать результат вызова таких функций как
https://github.com/adriansuter/php-autoload-override
  
  Библиотека, которая умеет переопределять вызов функций внутри ваших классов в целях облегчения тестирования. Например, вы можете замокать результат вызова таких функций как
 rand или sleep, чтобы не зависеть от сайд-эффектов их выполнения.https://github.com/adriansuter/php-autoload-override
GitHub
  
  GitHub - adriansuter/php-autoload-override: Override fully qualified function calls inside your class methods in order to be able…
  Override fully qualified function calls inside your class methods in order to be able to mock them during testing. - GitHub - adriansuter/php-autoload-override: Override fully qualified function ca...
👍4
  #mustread
Чеклист для кодревью. В нем рассматриваются многочисленные аспекты при проведении кодревью: например, правильно ли автор кода обрабатывает ошибки, логирует ли их, не влияет ли его код на перфоманс, удобен ли он при использовании и поддержке и много другое.
https://github.com/mgreiler/code-review-checklist
  
  Чеклист для кодревью. В нем рассматриваются многочисленные аспекты при проведении кодревью: например, правильно ли автор кода обрабатывает ошибки, логирует ли их, не влияет ли его код на перфоманс, удобен ли он при использовании и поддержке и много другое.
https://github.com/mgreiler/code-review-checklist
GitHub
  
  GitHub - mgreiler/code-review-checklist: This code review checklist helps you be a more effective and efficient code reviewer.
  This code review checklist helps you be a more effective and efficient code reviewer. - mgreiler/code-review-checklist
👍13
  Forwarded from PHP jobs — вакансии по PHP, Symfony, Laravel
#golang #php #docker #kubernetes
Команда Авито ищет крутого бэкенд-разработчика
Наша команда отвечает за подачу объявлений на Авито. Сотни тысяч пользователей ежедневно нажимают кнопку «Разместить объявление», и тот опыт, который они получат в процессе, во многом зависит от результатов работы нашей команды. В продукте нужно учесть интересы разных типов продавцов: одинаково удобно должно быть и крупному бизнесу, ежедневно продающему новые товары на Авито, и обычному человеку, который приходит к нам раз в полгода. Мы хотим, чтобы на Авито было легко разместить любое объявление — от редкого автомобиля до нового телефона. Нам важно, что пользователь может начать подавать объявление в приложении, а продолжить на десктопе.
Одна из метрик нашего продукта — TTA (time-to-add) — время, затраченное на подачу объявления. Улучшая продукт, мы экономим секунды у одного пользователя и десятки тысяч часов у всех продавцов Авито. Приходите к нам, и вашу работу смогут оценить миллионы человек.
С нами вы будете решать сложные технические задачи, заниматься разработкой и поддержкой высоконагруженных (~100k RPM) микросервисов с использованием современных технологий и языков программирования (Golang, PHP 8, Docker, Kubernetes).
Мы ожидаем, что вы:
▪️имеете опыт коммерческой разработки на PHP или Go;
▪️разрабатывали высоконагруженные приложения;
▪️знакомы с шаблонами проектирования и умеете их применять, придерживаетесь принципов SOLID;
▪️знакомы с основными алгоритмами и структурами данных;
▪️умеете писать поддерживаемый и тестируемый код;
▪️способны тщательно планировать и приоритизировать свою работу;
▪️используете в общении убедительные аргументы и конструктивно реагируете на аргументы других.
 
Не обязательно, но круто если вы:
▪️знаете SQL, работали с реляционными и нереляционными БД;
▪️работали с Docker/Kubernetes;
▪️разрабатывали распределенные сервисы;
▪️умеете работать с командной строкой;
▪️знаете, как оптимизировать приложение и сделать его быстрее.
 
Что предстоит делать:
▪️разрабатывать высокопроизводительные микросервисы на Go и поддерживать код на PHP;
▪️участвовать в проработке архитектурных решений;
▪️работать в кросс-функциональной команде, в тесном взаимодействии с client-side разработчиками;
▪️участвовать в принятии технических решений и планировании процесса разработки;
▪️быть ответственным за крупную часть проекта, над которой работает несколько инженеров;
▪️сопровождать полный цикл жизни продукта от проработки продуктового решения до деплоя кода на сервера;
▪️участвовать в Code Review.
 
Работа у нас — это:
▪️возможность реализовать свои идеи в проекте с многомиллионной аудиторией;
▪️команда профессионалов, готовых поддержать ваши инициативы;
▪️помощь с переездом: если вы живёте в другом городе, мы оплатим приезд на интервью и поможем обустроиться в Москве;
▪️красивый и комфортный офис в 2 минутах от метро «Белорусская»: панорамный вид на центр города, места для уединённой работы, зоны отдыха, гамаки и скейтборды. А на время пандемии вы можете работать из дома. Для этого компания предоставляет необходимую технику: ноутбуки, мониторы, модемы;
▪️компенсация расходов на питание;
▪️забота о здоровье: с первого дня работы вы получите страховку со стоматологией, в офисе ведут приём терапевт, психолог и массажист;
▪️прозрачная система бонусов и премий, достойная зарплата — размер обсудим на собеседовании.
Контакты для связи:
▪️Телефон: +7 (931) 367-75-19 (Юлия)
▪️Email: [email protected]
▪️Подробнее: https://www.avito.ru/vacancies/sx-backend/
Команда Авито ищет крутого бэкенд-разработчика
Наша команда отвечает за подачу объявлений на Авито. Сотни тысяч пользователей ежедневно нажимают кнопку «Разместить объявление», и тот опыт, который они получат в процессе, во многом зависит от результатов работы нашей команды. В продукте нужно учесть интересы разных типов продавцов: одинаково удобно должно быть и крупному бизнесу, ежедневно продающему новые товары на Авито, и обычному человеку, который приходит к нам раз в полгода. Мы хотим, чтобы на Авито было легко разместить любое объявление — от редкого автомобиля до нового телефона. Нам важно, что пользователь может начать подавать объявление в приложении, а продолжить на десктопе.
Одна из метрик нашего продукта — TTA (time-to-add) — время, затраченное на подачу объявления. Улучшая продукт, мы экономим секунды у одного пользователя и десятки тысяч часов у всех продавцов Авито. Приходите к нам, и вашу работу смогут оценить миллионы человек.
С нами вы будете решать сложные технические задачи, заниматься разработкой и поддержкой высоконагруженных (~100k RPM) микросервисов с использованием современных технологий и языков программирования (Golang, PHP 8, Docker, Kubernetes).
Мы ожидаем, что вы:
▪️имеете опыт коммерческой разработки на PHP или Go;
▪️разрабатывали высоконагруженные приложения;
▪️знакомы с шаблонами проектирования и умеете их применять, придерживаетесь принципов SOLID;
▪️знакомы с основными алгоритмами и структурами данных;
▪️умеете писать поддерживаемый и тестируемый код;
▪️способны тщательно планировать и приоритизировать свою работу;
▪️используете в общении убедительные аргументы и конструктивно реагируете на аргументы других.
Не обязательно, но круто если вы:
▪️знаете SQL, работали с реляционными и нереляционными БД;
▪️работали с Docker/Kubernetes;
▪️разрабатывали распределенные сервисы;
▪️умеете работать с командной строкой;
▪️знаете, как оптимизировать приложение и сделать его быстрее.
Что предстоит делать:
▪️разрабатывать высокопроизводительные микросервисы на Go и поддерживать код на PHP;
▪️участвовать в проработке архитектурных решений;
▪️работать в кросс-функциональной команде, в тесном взаимодействии с client-side разработчиками;
▪️участвовать в принятии технических решений и планировании процесса разработки;
▪️быть ответственным за крупную часть проекта, над которой работает несколько инженеров;
▪️сопровождать полный цикл жизни продукта от проработки продуктового решения до деплоя кода на сервера;
▪️участвовать в Code Review.
Работа у нас — это:
▪️возможность реализовать свои идеи в проекте с многомиллионной аудиторией;
▪️команда профессионалов, готовых поддержать ваши инициативы;
▪️помощь с переездом: если вы живёте в другом городе, мы оплатим приезд на интервью и поможем обустроиться в Москве;
▪️красивый и комфортный офис в 2 минутах от метро «Белорусская»: панорамный вид на центр города, места для уединённой работы, зоны отдыха, гамаки и скейтборды. А на время пандемии вы можете работать из дома. Для этого компания предоставляет необходимую технику: ноутбуки, мониторы, модемы;
▪️компенсация расходов на питание;
▪️забота о здоровье: с первого дня работы вы получите страховку со стоматологией, в офисе ведут приём терапевт, психолог и массажист;
▪️прозрачная система бонусов и премий, достойная зарплата — размер обсудим на собеседовании.
Контакты для связи:
▪️Телефон: +7 (931) 367-75-19 (Юлия)
▪️Email: [email protected]
▪️Подробнее: https://www.avito.ru/vacancies/sx-backend/
👍10
  #advanced 
"Правило трех" при разработке качественного ПО, или когда возникает необходимость избавляться от дублирования.
https://understandlegacycode.com/blog/refactoring-rule-of-three/
  
  "Правило трех" при разработке качественного ПО, или когда возникает необходимость избавляться от дублирования.
https://understandlegacycode.com/blog/refactoring-rule-of-three/
Understand Legacy Code
  
  Don't make Clean Code harder to maintain, use the Rule of Three - Change Messy Software Without Breaking It
  If you worry that following clean code practices create more code to maintain, here's a way out.
👍4
  #advanced 
Анна Филина продолжает развивать тему репозиториев. На этот раз она рассуждает, можно ли использовать репозитории без ORM.
https://afilina.com/learn/design/repos-without-orms
Анна Филина продолжает развивать тему репозиториев. На этот раз она рассуждает, можно ли использовать репозитории без ORM.
https://afilina.com/learn/design/repos-without-orms
👎3
  #advanced #doctrine
Новый минорный релиз Doctrine с поддержкой php 8.1 (енамы,
https://www.doctrine-project.org/2022/01/11/orm-2.11.html
  
  Новый минорный релиз Doctrine с поддержкой php 8.1 (енамы,
readonly свойства), виртуальных колонок и многим другим.https://www.doctrine-project.org/2022/01/11/orm-2.11.html
www.doctrine-project.org
  
  New Release: Doctrine ORM 2.11 with Enums, Virtual Columns, Read-Only Properties, Nested Attributes and more - Doctrine: PHP Open…
  The Doctrine Project is an open-source PHP project that is home to home to several PHP libraries primarily focused on database storage and object mapping. The core projects are the Object Relational Mapper (ORM) and the Database Abstraction Layer (DBAL) it…
👍4🎉3
  🔥68👍4
  Как строить архитектуры приложений, которые позволяют не снижать скорость разработки по мере развития проекта?
💻Освойте основные паттерны проектирования и прокачайте свои навыки архитектора программного обеспечения в режиме живых занятий с опытным разработчиком-практиком.
Старт интенсива «Архитектуры и шаблоны проектирования» уже 3 февраля.
🚀После интенсива вы будете:
– Знать границы применения SOLID принципов и уметь их использовать не только в объектно-ориентированных языках.
– Писать модульные тесты на Mock-объектах.
– Уметь применять IoC контейнеры и CI.
Вы познакомитесь с типовыми задачами и приемами их решений построения архитектуры приложений, а также поработаете в команде, повысите свою эффективность и поймёте, как развиваться в профессии.
Записаться сейчас со скидкой 20% до 21 января здесь.
  💻Освойте основные паттерны проектирования и прокачайте свои навыки архитектора программного обеспечения в режиме живых занятий с опытным разработчиком-практиком.
Старт интенсива «Архитектуры и шаблоны проектирования» уже 3 февраля.
🚀После интенсива вы будете:
– Знать границы применения SOLID принципов и уметь их использовать не только в объектно-ориентированных языках.
– Писать модульные тесты на Mock-объектах.
– Уметь применять IoC контейнеры и CI.
Вы познакомитесь с типовыми задачами и приемами их решений построения архитектуры приложений, а также поработаете в команде, повысите свою эффективность и поймёте, как развиваться в профессии.
Записаться сейчас со скидкой 20% до 21 января здесь.
#junior 
Введение в тему внедрения зависимостей для начинающих.
https://afilina.com/learn/design/dependency-injection
Введение в тему внедрения зависимостей для начинающих.
https://afilina.com/learn/design/dependency-injection
👍3
  #legacy 
Анне Филине достался очередной легаси проект. С некоторыми перлами она поделилась в треде. Например,
https://twitter.com/afilina/status/1288126813303001094
  
  Анне Филине достался очередной легаси проект. С некоторыми перлами она поделилась в треде. Например,
 try..catch блок, который все равно падает с ошибкой, потому что в catch блоке используется переменная из try, которой ещё не присвоено значение. Больше интересных ошибок в треде. https://twitter.com/afilina/status/1288126813303001094
Twitter
  
  🇺🇦 Anna "Legacy Archaeologist" Filina
  Another week, another legacy project. Here are some things that I found in the code that you may want to avoid doing in your own projects.
👍1
  #cheatsheet 
Советы от Марселя Почета по эффективному использованию терминала.
https://twitter.com/marcelpociot/status/1481567499204321281
  
  Советы от Марселя Почета по эффективному использованию терминала.
https://twitter.com/marcelpociot/status/1481567499204321281
Twitter
  
  Marcel Pociot 🧪
  Developers, get to know your terminal! Here are some 🔥 tips for bash and ZSH users that will make you more productive. 🧵
👍1
  #laravel 
Релиз минорной версии Laravel с интересными фичами:
- Реализация полнотекстового поиска для MySQL и PostgreSQL;
- Улучшения пагинатора;
- Улучшения контейнера зависимостей.
Больше информации и примеров использования в статье.
  
  Релиз минорной версии Laravel с интересными фичами:
- Реализация полнотекстового поиска для MySQL и PostgreSQL;
- Улучшения пагинатора;
- Улучшения контейнера зависимостей.
Больше информации и примеров использования в статье.
Laravel News
  
  Laravel 8.79 Released
  The Laravel team released 8.79 with a full-text search for MySQL and PostgreSQL, new Stringable methods, and the latest changes in the v8.x branch.
👍3🔥2
  #git
Топ 30 команд гита.
https://levelup.gitconnected.com/top-30-git-commands-you-should-know-to-master-git-cli-f04e041779bc
  
  Топ 30 команд гита.
https://levelup.gitconnected.com/top-30-git-commands-you-should-know-to-master-git-cli-f04e041779bc
Medium
  
  Top 30 Git Commands You Should Know To Master Git CLI
  Learn the most essential Git commands to boost your productivity, and become a master in managing the GitHub repositories.
🔥5