Forwarded from Библиотека программиста | программирование, кодинг, разработка
📖 ТОП-10 книг, без которых не обойтись ни одному программисту
Мы подготовили для вас подборку из 10 книг, без которых не обойтись ни одному профессионалу в IT. Эти книги станут для вас настольными на долгие годы.
🔗 Основной сайт
🔗 Зеркало
Мы подготовили для вас подборку из 10 книг, без которых не обойтись ни одному профессионалу в IT. Эти книги станут для вас настольными на долгие годы.
🔗 Основной сайт
🔗 Зеркало
👍13❤3
NativePHP — разработка настольных приложений с помощью PHP
Инструмент Марселя Посиота предоставляет простые API и инструменты для создания кроссплатформенных настольных приложений, как если бы вы создавали обычные веб-приложения.
За кулисами он использует либо Electron, либо Tauri, поэтому «Native» в названии может немного вводить в заблуждение. Но с точки зрения PHP-разработчика, все это красиво упаковано в знакомые инструменты и синтаксис.
Пока работает только с Laravel, но обещают реализовать адаптеры для других фреймворков и нативного PHP.
Вот пример приложения, созданного с помощью NativePHP — simonhamp/cronikl — простой инструмент для управления заданиями cron.
Инструмент Марселя Посиота предоставляет простые API и инструменты для создания кроссплатформенных настольных приложений, как если бы вы создавали обычные веб-приложения.
За кулисами он использует либо Electron, либо Tauri, поэтому «Native» в названии может немного вводить в заблуждение. Но с точки зрения PHP-разработчика, все это красиво упаковано в знакомые инструменты и синтаксис.
Пока работает только с Laravel, но обещают реализовать адаптеры для других фреймворков и нативного PHP.
Вот пример приложения, созданного с помощью NativePHP — simonhamp/cronikl — простой инструмент для управления заданиями cron.
GitHub
GitHub - simonhamp/cronikl: A scheduled task manager
A scheduled task manager. Contribute to simonhamp/cronikl development by creating an account on GitHub.
🍌7❤4👍2
Создание PHP-расширения на Rust
Статья начинается с объяснения, что такое расширение PHP и как оно может быть полезно для дополнительной функциональности языка. Затем рассказывается про фреймворк PHPER (PHP Enjoy Rust), с помощью которого можно легко писать расширения на Rust, легко интегрирующиеся с PHP
Далее описываются шаги по созданию простого расширения на Rust для PHP. Они включает в себя создание файла конфигурации расширения, зарегистрировать модуль, написать код и собрать из этого библиотеку.
Здесь также представлены примеры кода в виде создания расширения для работы с PDF-файлами
Статья начинается с объяснения, что такое расширение PHP и как оно может быть полезно для дополнительной функциональности языка. Затем рассказывается про фреймворк PHPER (PHP Enjoy Rust), с помощью которого можно легко писать расширения на Rust, легко интегрирующиеся с PHP
Далее описываются шаги по созданию простого расширения на Rust для PHP. Они включает в себя создание файла конфигурации расширения, зарегистрировать модуль, написать код и собрать из этого библиотеку.
Здесь также представлены примеры кода в виде создания расширения для работы с PDF-файлами
Building PHP Extension with Rust for Fun and Profit | Ahmad Rosid
Building PHP Extension with Rust for Fun and Profit
Rust is one of the best languages that you can learn no matter where you are coming from, and one of the thin...
🔥15❤1👍1
LM-nGram-с-php
Этот проект представляет собой простую и обучающую реализацию языковой модели в PHP, специально основанную на цепи Маркова . Проще говоря, цепь Маркова предполагает прогнозирование следующего шага в последовательности только на основе текущего шага, без учета истории предыдущих шагов. В случае языковой модели это означает предсказание следующего слова на основе предыдущих слов.
Этот репозиторий содержит учебную реализацию языковой модели в PHP. В коде показано, как создавать, обучать и использовать языковую модель для генерации текста.
Модель обучается на текстовом файле с 7 книгами о Гарри Поттере, сериализуется для будущего использования, а затем используется для создания новых предложений на основе вероятностей последовательностей слов в обучающих данных.
Этот проект представляет собой простую и обучающую реализацию языковой модели в PHP, специально основанную на цепи Маркова . Проще говоря, цепь Маркова предполагает прогнозирование следующего шага в последовательности только на основе текущего шага, без учета истории предыдущих шагов. В случае языковой модели это означает предсказание следующего слова на основе предыдущих слов.
Этот репозиторий содержит учебную реализацию языковой модели в PHP. В коде показано, как создавать, обучать и использовать языковую модель для генерации текста.
Модель обучается на текстовом файле с 7 книгами о Гарри Поттере, сериализуется для будущего использования, а затем используется для создания новых предложений на основе вероятностей последовательностей слов в обучающих данных.
GitHub
GitHub - AcidBurn86/LM-nGram-with-php: An educational implementation of a language model in PHP in a very basic and easy way.
An educational implementation of a language model in PHP in a very basic and easy way. - AcidBurn86/LM-nGram-with-php
👍7❤1
Еще один #дайджест новостей по PHP за неделю:
🔎 PHPSandbox — это веб-приложение, которое позволяет вам быстро создавать прототипы или делиться проектами PHP без настройки локальной среды.
🔎Вышла версия Filament v3, которая включает в себя множество новых функций, полностью обновленный пользовательский интерфейс, новый веб-сайт, поддержку Livewire 3 и многое другое!
🔎Вышел Symfony 6.2.14. Вот список наиболее важных изменений с момента выпуска 6.2.13
🔎A Week of Symfony #865 (24-30 июля 2023 г.)
🔎 PHPSandbox — это веб-приложение, которое позволяет вам быстро создавать прототипы или делиться проектами PHP без настройки локальной среды.
🔎Вышла версия Filament v3, которая включает в себя множество новых функций, полностью обновленный пользовательский интерфейс, новый веб-сайт, поддержку Livewire 3 и многое другое!
🔎Вышел Symfony 6.2.14. Вот список наиболее важных изменений с момента выпуска 6.2.13
🔎A Week of Symfony #865 (24-30 июля 2023 г.)
👍4🔥2❤1
Чем отличаются модульные тесты от интеграционных?
. Модульные тесты:
- Тестируют отдельные модули или функции программы, обычно на уровне кода.
- Пишутся программистами для проверки корректности работы отдельных компонентов программы.
- Могут быть автоматическими или ручными.
- Могут быть запущены независимо от других компонентов программы.
- Могут использовать заглушки (mocks) или подставные объекты (mock objects) для изоляции тестируемого модуля от зависимостей.
2. Интеграционные тесты:
- Тестируют взаимодействие между различными модулями и компонентами программы.
- Проверяют, что все компоненты взаимодействуют правильно и вместе выполняют заданную функциональность.
- Могут быть автоматическими или ручными.
- Требуют наличия всех зависимостей и окружения, необходимых для запуска тестируемой функциональности.
- Часто выполняются на уровне системы или её компонентов, а не только на уровне кода.
Используя модульные тесты, программисты могут протестировать отдельные части программы без необходимости полного запуска всей системы. Это помогает быстрее находить и исправлять ошибки.
Используя интеграционные тесты, разработчики могут убедиться в том, что все компоненты программы работают правильно вместе и выполняют требуемую функциональность, увеличивая качество программного обеспечения и уверенность в его работе.
#вопросы_с_собеседований
. Модульные тесты:
- Тестируют отдельные модули или функции программы, обычно на уровне кода.
- Пишутся программистами для проверки корректности работы отдельных компонентов программы.
- Могут быть автоматическими или ручными.
- Могут быть запущены независимо от других компонентов программы.
- Могут использовать заглушки (mocks) или подставные объекты (mock objects) для изоляции тестируемого модуля от зависимостей.
2. Интеграционные тесты:
- Тестируют взаимодействие между различными модулями и компонентами программы.
- Проверяют, что все компоненты взаимодействуют правильно и вместе выполняют заданную функциональность.
- Могут быть автоматическими или ручными.
- Требуют наличия всех зависимостей и окружения, необходимых для запуска тестируемой функциональности.
- Часто выполняются на уровне системы или её компонентов, а не только на уровне кода.
Используя модульные тесты, программисты могут протестировать отдельные части программы без необходимости полного запуска всей системы. Это помогает быстрее находить и исправлять ошибки.
Используя интеграционные тесты, разработчики могут убедиться в том, что все компоненты программы работают правильно вместе и выполняют требуемую функциональность, увеличивая качество программного обеспечения и уверенность в его работе.
#вопросы_с_собеседований
👍16❤2🏆1
Эксперимент: Замена Symfony DI на Laravel Container в ECS
Здесь подробно описываются причины, по которым проводится этот эксперимент, а также объясняются ключевые различия между DI контейнерами Symfony и Laravel. Далее определяются задачи, которые надо решить с помощью нового контейнера, и объясняется, как происходит замена контейнера.
В статье автор представляет некоторые проблемы, с которыми столкнулся при замене контейнера, и рассказывает о решениях, которые были найдены для этих проблем. Он также анализирует производительность и преимущества, которые были получены после замены контейнера.
Здесь подробно описываются причины, по которым проводится этот эксперимент, а также объясняются ключевые различия между DI контейнерами Symfony и Laravel. Далее определяются задачи, которые надо решить с помощью нового контейнера, и объясняется, как происходит замена контейнера.
В статье автор представляет некоторые проблемы, с которыми столкнулся при замене контейнера, и рассказывает о решениях, которые были найдены для этих проблем. Он также анализирует производительность и преимущества, которые были получены после замены контейнера.
Tomasvotruba
Experiment: How I replaced Symfony DI with Laravel Container in ECS
This year I've been learning Laravel and quickly adapting to most of my tools. I've made 2 packages - [Punchcard](/blog/introducing-punchcard-object-configs-for-laravel) to handle configs and [Bladestan](/blog/introducing-bladestan-phpstan-analysis-of-blade…
👍7🤔4🍌2❤1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
#проектирование_систем
📝 Наглядная демонстрация распространенных алгоритмов балансировки нагрузки
🔹 Статические алгоритмы
1️⃣ Round Robin, или алгоритм кругового обслуживания, представляет собой перебор по круговому циклу: первый запрос передаётся одному серверу, затем следующий запрос передаётся другому и так до достижения последнего сервера, после чего всё начинается сначала.
📌 Недостаток алгоритма в том, что в нём не учитывается количество активных на данный момент подключений
2️⃣ Sticky Round Robin — вариация алгоритма Round Robin. Если первый запрос Алисы отправляется к сервису А, то и последующие запросы также отправляются к сервису А.
3️⃣ Weighted Round Robin — вариация алгоритма Round Robin. Каждому серверу присваивается весовой коэффициент в соответствии с его производительностью и мощностью.
4️⃣ Хэш — алгоритм, который применяет хэш-функцию к IP-адресу или URL-адресу входящих запросов. Запросы направляются в соответствующие экземпляры на основе результата хэш-функции.
🔹 Динамические алгоритмы
5️⃣ Least connections — алгоритм, при котором новое подключение передается на сервер, на который в данный момент установлено наименьшее число соединений.
6️⃣ Least response time — алгоритм, который учитывает не только количество соединений, но и среднее время. Тогда первым в списке будет сервер с наименьшим количеством подключений и наименьшим временем ответа.
🔗 Источник
🔹 Статические алгоритмы
1️⃣ Round Robin, или алгоритм кругового обслуживания, представляет собой перебор по круговому циклу: первый запрос передаётся одному серверу, затем следующий запрос передаётся другому и так до достижения последнего сервера, после чего всё начинается сначала.
📌 Недостаток алгоритма в том, что в нём не учитывается количество активных на данный момент подключений
2️⃣ Sticky Round Robin — вариация алгоритма Round Robin. Если первый запрос Алисы отправляется к сервису А, то и последующие запросы также отправляются к сервису А.
3️⃣ Weighted Round Robin — вариация алгоритма Round Robin. Каждому серверу присваивается весовой коэффициент в соответствии с его производительностью и мощностью.
4️⃣ Хэш — алгоритм, который применяет хэш-функцию к IP-адресу или URL-адресу входящих запросов. Запросы направляются в соответствующие экземпляры на основе результата хэш-функции.
🔹 Динамические алгоритмы
5️⃣ Least connections — алгоритм, при котором новое подключение передается на сервер, на который в данный момент установлено наименьшее число соединений.
6️⃣ Least response time — алгоритм, который учитывает не только количество соединений, но и среднее время. Тогда первым в списке будет сервер с наименьшим количеством подключений и наименьшим временем ответа.
🔗 Источник
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2🔥2
❓25 вопросов, которые стоит задать HR-менеджеру на интервью
В этой статье разберемся, что спросить у работодателя, чтобы получить оффер.
В этой статье разберемся, что спросить у работодателя, чтобы получить оффер.
😁3👍2❤1
8 вредных привычек у разработчиков Laravel
Статья освещает важные проблемы и плохие привычки, с которыми разработчики Laravel могут сталкиваться при написании кода. Автор статьи рассматривает восемь распространенных ошибок и плохих практик, которые разработчики часто допускают при использовании Laravel:
✅Не отделять валидацию от контроллеров
✅Несоблюдение принципа SRP
✅Неиспользование промежуточного ПО
и другие.
Статья освещает важные проблемы и плохие привычки, с которыми разработчики Laravel могут сталкиваться при написании кода. Автор статьи рассматривает восемь распространенных ошибок и плохих практик, которые разработчики часто допускают при использовании Laravel:
✅Не отделять валидацию от контроллеров
✅Несоблюдение принципа SRP
✅Неиспользование промежуточного ПО
и другие.
Codewithdary
8 Bad Habits I See Laravel Developers Make — Code With Dary
This blog post covers 8 common bad habits that Laravel developers often make and how to avoid them. The post covers best practices for writing cleaner, more maintainable, and more performant code, including separating validation logic from controllers, following…
👍6❤2⚡1🔥1
🔎Какой сертификат вы бы посоветовали получить?⬇️⬇️⬇️
🍌3
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
☕️Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🧠C++
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие профильные каналы
Библиотека фронтендера
Библиотека шарписта
Библиотека Go разработчика
Библиотека мобильного разработчика
Библиотека хакера
Библиотека питониста
Библиотека devops’a
Библиотека тестировщика
Библиотека пхпшника
💼Каналы с вакансиями
Вакансии по питону, Django, Flask
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии по C#, .NET, Unity
Вакансии по Go
Вакансии по PHP, Symfony, Laravel
Вакансии по DevOps & SRE
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
☕️Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🧠C++
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие профильные каналы
Библиотека фронтендера
Библиотека шарписта
Библиотека Go разработчика
Библиотека мобильного разработчика
Библиотека хакера
Библиотека питониста
Библиотека devops’a
Библиотека тестировщика
Библиотека пхпшника
💼Каналы с вакансиями
Вакансии по питону, Django, Flask
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии по C#, .NET, Unity
Вакансии по Go
Вакансии по PHP, Symfony, Laravel
Вакансии по DevOps & SRE
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
😁3❤2🍌2🤩1
Почему после PHP 5 идет сразу 7, куда делась 6?
Официально, версия PHP 6 была отменена из-за серьезных проблем и препятствий во время разработки. PHP 6 должен был представлять новую функциональность, включая поддержку Unicode и новый движок для работы с строками. Однако разработка PHP 6 столкнулась с техническими и организационными трудностями, вызванными внесением изменений в код базового ядра, которые затронули большую часть существующих библиотек и приложений.
11 марта 2010 команда разработчиков приняла решение об отмене выпуска PHP 6 в текущем его виде. В результате транк с PHP 6 был перенесён в бранч, а в транке образовалась новая версия — 5.4, в которую разработчики перенесли все наработки из PHP 6, кроме юникода.
Официально, версия PHP 6 была отменена из-за серьезных проблем и препятствий во время разработки. PHP 6 должен был представлять новую функциональность, включая поддержку Unicode и новый движок для работы с строками. Однако разработка PHP 6 столкнулась с техническими и организационными трудностями, вызванными внесением изменений в код базового ядра, которые затронули большую часть существующих библиотек и приложений.
11 марта 2010 команда разработчиков приняла решение об отмене выпуска PHP 6 в текущем его виде. В результате транк с PHP 6 был перенесён в бранч, а в транке образовалась новая версия — 5.4, в которую разработчики перенесли все наработки из PHP 6, кроме юникода.
👍20❤1
✍️«Библиотека программиста» собирает кейсы использования нейросетей
Какие самые необычные задачи вы выполняли с помощью нейросетей? Может быть, вы просили ИИ пройти тестирование по правилам безопасности или писали с его помощью заявление на увольнение?
Заполняйте форму — лучшие истории появятся в нашей подборке по теме.
👉Ссылка тут👈
Какие самые необычные задачи вы выполняли с помощью нейросетей? Может быть, вы просили ИИ пройти тестирование по правилам безопасности или писали с его помощью заявление на увольнение?
Заполняйте форму — лучшие истории появятся в нашей подборке по теме.
👉Ссылка тут👈
❤3
Подготовьтесь к Symfony 6.4 и Symfony 7.0
Здесь подробно описывается как подготовить свои проекты к новым версиям, которые выходят в ноябре 2023 года.
В первую очередь рассказывается про устаревание - При внесении изменений в функцию Symfony сохраняет старое поведение (помечая его как устаревшее) и добавляет поддержку нового поведения, и то, в каких версиях оно будет, а также описывается шаги для подготовки к обновлению своего проекта новую версию
Здесь подробно описывается как подготовить свои проекты к новым версиям, которые выходят в ноябре 2023 года.
В первую очередь рассказывается про устаревание - При внесении изменений в функцию Symfony сохраняет старое поведение (помечая его как устаревшее) и добавляет поддержку нового поведения, и то, в каких версиях оно будет, а также описывается шаги для подготовки к обновлению своего проекта новую версию
Symfony
Prepare Yourself for Symfony 6.4 and Symfony 7.0 (Symfony Blog)
Symfony 6.4 and Symfony 7.0 will be released at the same time at the end of November 2023. This article explains their differences and how to pick the best version for your projects.
❤11🔥5
Гайд 2023 Xdebug в PHPSTORM + Virtual server + Docker для macOS с пробросом портов
Небольшой гайд для новичков
Небольшой гайд для новичков
Хабр
Гайд 2023 Xdebug в PHPSTORM + Virtual server + Docker для macOS с пробросом портов
Гайд для remote подключения. Постарался обьяснить максимально подробно для новичков, так как понимаю как больно прыгать по статьям и теряться в последовательности. Тема актуальная, в силу того, что...
❤7👍6😁6