Возможности метода цепочки
Метод цепочки (Method chaining) — это техника программирования, которая позволяет вызывать несколько методов объекта в одном операторе. В PHP это достигается путем возврата объекта ($this) из методов, что позволяет последующие вызовы. Метод цепочки улучшает читаемость и эффективность кода. Преимущества включают краткость, читаемость, создание плавных интерфейсов и уменьшение временных переменных. Практические применения включают конфигурацию, построение запросов к базе данных и создание Fluent API. Необходимо избегать чрезмерного использования и комплексности. Использование метода цепочки может значительно улучшить читаемость и поддерживаемость кода на PHP, делая его более выразительным и понятным
Метод цепочки (Method chaining) — это техника программирования, которая позволяет вызывать несколько методов объекта в одном операторе. В PHP это достигается путем возврата объекта ($this) из методов, что позволяет последующие вызовы. Метод цепочки улучшает читаемость и эффективность кода. Преимущества включают краткость, читаемость, создание плавных интерфейсов и уменьшение временных переменных. Практические применения включают конфигурацию, построение запросов к базе данных и создание Fluent API. Необходимо избегать чрезмерного использования и комплексности. Использование метода цепочки может значительно улучшить читаемость и поддерживаемость кода на PHP, делая его более выразительным и понятным
DEV Community
Unleashing the Power of Method Chaining in PHP
In programming, readability and efficiency are essential. Method chaining is a sophisticated feature...
🥱8👍3❤1👾1
Forwarded from PHP jobs — вакансии по PHP, Symfony, Laravel
#дайджест #phpdevjob
Вакансии PHP разработчиков уровня Junior
▪️PHP-программист
Москва. Флюид-Лайн — изготовление и поставка промышленного оборудования
Подробнее
▪️Junior - программист
Казань, SMART-SHOP — поставки электротехнической продукции и оборудования
Подробнее
Вакансии PHP разработчиков уровня Middle
▪️Web-программист
Тула. Contactgroup — продвижение и разработка сайтов
Подробнее
▪️PHP разработчик
Самара, Avenue Media — разработка цифровых продуктов
Подробнее
Вакансии PHP разработчиков уровня Senior
▪️Full Stack PHP Developer
Удаленка. (Офис в Нью-Йорке). Rx2Go — логистическая компания
Подробнее
▪️PHP-разработчик
Удаленка. (Офис в Москве). MODESTO FLOWERS — разработка ПО
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
Вакансии PHP разработчиков уровня Junior
▪️PHP-программист
Москва. Флюид-Лайн — изготовление и поставка промышленного оборудования
Подробнее
▪️Junior - программист
Казань, SMART-SHOP — поставки электротехнической продукции и оборудования
Подробнее
Вакансии PHP разработчиков уровня Middle
▪️Web-программист
Тула. Contactgroup — продвижение и разработка сайтов
Подробнее
▪️PHP разработчик
Самара, Avenue Media — разработка цифровых продуктов
Подробнее
Вакансии PHP разработчиков уровня Senior
▪️Full Stack PHP Developer
Удаленка. (Офис в Нью-Йорке). Rx2Go — логистическая компания
Подробнее
▪️PHP-разработчик
Удаленка. (Офис в Москве). MODESTO FLOWERS — разработка ПО
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
hh.ru
Вакансия PHP-программист (Junior) работа в офисе в Москве, работа в компании Флюид-Лайн (вакансия в архиве c 3 марта 2024)
Зарплата: не указана. Москва. Требуемый опыт: не требуется. Полная занятость. Дата публикации: 29.02.2024.
🥱9❤3
Keycode Event Helper
Вспомогательный инструмент, который позволяет легко просматривать информацию о нажатиях клавиш внутри событий JavaScript.
Вспомогательный инструмент, который позволяет легко просматривать информацию о нажатиях клавиш внутри событий JavaScript.
ryangjchandler.co.uk
Keycode Event Helper – Ryan Chandler
Exploring software development with PHP, JavaScript, Rust, and beyond.
👍2🎉1
Что делает функция «unlink»?
В PHP функция unlink() используется для удаления файла из файловой системы. Она принимает единственный параметр — путь к файлу, который вы хотите удалить. После вызова unlink() попытается удалить указанный файл из файловой системы. В случае успешного выполнения файл будет удален безвозвратно.
Код из примера проверяет, существует ли файл, и если да, то пытается удалить его с помощью unlink(). В случае успешного удаления выводится «Файл успешно удален.»; в противном случае выводится «Ошибка при удалении файла.». Если файл не существует, выводится «Файл не существует.».
#вопросы_с_собеседований
В PHP функция unlink() используется для удаления файла из файловой системы. Она принимает единственный параметр — путь к файлу, который вы хотите удалить. После вызова unlink() попытается удалить указанный файл из файловой системы. В случае успешного выполнения файл будет удален безвозвратно.
Код из примера проверяет, существует ли файл, и если да, то пытается удалить его с помощью unlink(). В случае успешного удаления выводится «Файл успешно удален.»; в противном случае выводится «Ошибка при удалении файла.». Если файл не существует, выводится «Файл не существует.».
#вопросы_с_собеседований
❤6😁3👍2
Сегодня мы рассмотрим использование буферизации вывода (Output Buffering, OB) в PHP и её нюансы. Буферизация вывода предоставляет удобные инструменты для работы с выводом данных, но может быть сложной для отладки.
Основные моменты:
Преимущества использования буферов: Они могут быть полезны для агрегации вывода из различных источников, обработки вывода третьестороннего кода, повторного использования вывода для различных целей.
Проблемы с буферами: Необходимость внимательного управления вложенными буферами, проблемы с памятью при обработке больших объемов данных, возможные конфликты при использовании нескольких буферов.
Ошибка «Headers already sent»: Объясняется, как обработка вывода с помощью буферов может предотвратить ошибки с отправкой заголовков до начала вывода данных.
Неявная и явная буферизация: Объясняется, что буферизация вывода включена по умолчанию, но может быть отключена в конфигурации сервера. Также разъясняется, как работает вложенная буферизация.
Осторожность при использовании: Рекомендуется быть осторожным с использованием нескольких уровней буферизации из-за возможных проблем с обработкой ошибок и неожиданных поведений.
Ограничения буфера: Объясняется, что размер буфера ограничен, и его переполнение может привести к потере управления над выводом.
Ошибки при использовании обработчиков буфера: Предостережение о том, что использование функции ob_start() внутри обработчиков буфера может вызвать ошибки.
Основные моменты:
Преимущества использования буферов: Они могут быть полезны для агрегации вывода из различных источников, обработки вывода третьестороннего кода, повторного использования вывода для различных целей.
Проблемы с буферами: Необходимость внимательного управления вложенными буферами, проблемы с памятью при обработке больших объемов данных, возможные конфликты при использовании нескольких буферов.
Ошибка «Headers already sent»: Объясняется, как обработка вывода с помощью буферов может предотвратить ошибки с отправкой заголовков до начала вывода данных.
Неявная и явная буферизация: Объясняется, что буферизация вывода включена по умолчанию, но может быть отключена в конфигурации сервера. Также разъясняется, как работает вложенная буферизация.
Осторожность при использовании: Рекомендуется быть осторожным с использованием нескольких уровней буферизации из-за возможных проблем с обработкой ошибок и неожиданных поведений.
Ограничения буфера: Объясняется, что размер буфера ограничен, и его переполнение может привести к потере управления над выводом.
Ошибки при использовании обработчиков буфера: Предостережение о том, что использование функции ob_start() внутри обработчиков буфера может вызвать ошибки.
👍3
Logstash, Manticore, Nginx и Symfony: сбор, агрегация и быстрый поиск логов
Идея централизованного мониторинга логов долгое время витала в воздухе, и автору удалось воплотить её в жизнь. Хотя информации о Logstash с Elasticsearch достаточно, настройка с Manticore представляет собой вызов, о котором не так уж много говорят. Здесь рассказывается о настройке и потенциальных подводных камнях пакета Logstash + Manticore + Nginx + Symfony.
Установка и настройка Manticore:
Установка Manticore проста. Скачайте пакет с официального веб-сайта, установите его и настройте с помощью nano /etc/manticoresearch/manticore.conf. Обеспечьте конфигурацию Manticore так, чтобы он слушал соответствующий IP-адрес для подключения с других хостов.
Подготовка логов Nginx:
Настройте Nginx для регистрации в формате JSON для удобного парсинга. Измените формат журнала в /etc/nginx/nginx.conf и обновите блок сервера, чтобы использовать новый формат. Перезапустите Nginx, чтобы начать ведение логов в указанном формате.
Подготовка логов Symfony:
Для Symfony настройте ведение журналов через Monolog Bundle. Настройте формат логов в config/packages/monolog.yaml и создайте пользовательский сервис форматирования. Обеспечьте соответствие типов данных для совместимости с Manticore и Logstash.
Настройка Logstash:
Скачайте соответствующую версию Logstash, совместимую с Manticore. Создайте файл конфигурации Logstash (dev.conf), указав входы для логов Nginx и Symfony, фильтры для обработки логов и выходы для отправки обработанных журналов в Manticore.
Запуск Logstash:
Запустите Logstash с настроенным файлом dev.conf. Устраните любые ошибки, возникающие при запуске, обеспечивая согласованность данных и устраняя любые проблемы с соединением между Logstash и Manticore.
Вся описанная настройка успешно протестирована и развернута, предоставляя возможности централизованного мониторинга журналов. Хотя существуют готовые решения, такие как Kibana и Grafana, настраиваемые решения могут быть разработаны на основе индивидуальных потребностей и предпочтений.
Идея централизованного мониторинга логов долгое время витала в воздухе, и автору удалось воплотить её в жизнь. Хотя информации о Logstash с Elasticsearch достаточно, настройка с Manticore представляет собой вызов, о котором не так уж много говорят. Здесь рассказывается о настройке и потенциальных подводных камнях пакета Logstash + Manticore + Nginx + Symfony.
Установка и настройка Manticore:
Установка Manticore проста. Скачайте пакет с официального веб-сайта, установите его и настройте с помощью nano /etc/manticoresearch/manticore.conf. Обеспечьте конфигурацию Manticore так, чтобы он слушал соответствующий IP-адрес для подключения с других хостов.
Подготовка логов Nginx:
Настройте Nginx для регистрации в формате JSON для удобного парсинга. Измените формат журнала в /etc/nginx/nginx.conf и обновите блок сервера, чтобы использовать новый формат. Перезапустите Nginx, чтобы начать ведение логов в указанном формате.
Подготовка логов Symfony:
Для Symfony настройте ведение журналов через Monolog Bundle. Настройте формат логов в config/packages/monolog.yaml и создайте пользовательский сервис форматирования. Обеспечьте соответствие типов данных для совместимости с Manticore и Logstash.
Настройка Logstash:
Скачайте соответствующую версию Logstash, совместимую с Manticore. Создайте файл конфигурации Logstash (dev.conf), указав входы для логов Nginx и Symfony, фильтры для обработки логов и выходы для отправки обработанных журналов в Manticore.
Запуск Logstash:
Запустите Logstash с настроенным файлом dev.conf. Устраните любые ошибки, возникающие при запуске, обеспечивая согласованность данных и устраняя любые проблемы с соединением между Logstash и Manticore.
Вся описанная настройка успешно протестирована и развернута, предоставляя возможности централизованного мониторинга журналов. Хотя существуют готовые решения, такие как Kibana и Grafana, настраиваемые решения могут быть разработаны на основе индивидуальных потребностей и предпочтений.
Хабр
Logstash, Manticore, Nginx и Symfony: сбор, агрегация и быстрый поиск логов
Мысль о централизованном мониторинге логов хранилась в моей голове много лет, но реализовать ее я смог только совсем недавно. Рассказываю о настройке и подводных камнях связки Logstash + Manticore +...
👍3
🤔 Сложно ли поменять технологический стек?
Выйти на тот же уровень производительности в другом стеке в том же направлении (бэкенд/фронтенд) может занять от нескольких месяцев до полугода. Конечно, у каждого это время различается, но в любом случае оно включает:
✔️ Изучение нового языка
✔️ Ознакомление с экосистемой языка
✔️ Понимание инфраструктуры (сборка, доставка и т. д.)
💬 А вы меняли стек? Сколько времени это заняло?
Выйти на тот же уровень производительности в другом стеке в том же направлении (бэкенд/фронтенд) может занять от нескольких месяцев до полугода. Конечно, у каждого это время различается, но в любом случае оно включает:
✔️ Изучение нового языка
✔️ Ознакомление с экосистемой языка
✔️ Понимание инфраструктуры (сборка, доставка и т. д.)
💬 А вы меняли стек? Сколько времени это заняло?
👍2
Создание инструмента командной строки с помощью PHP и консоли Symfony
🛠️ Здесь рассматривается, как создать простой командный инструмент в PHP с использованием пакета Symfony Console (symfony/console).
🤔 Почему Symfony Console?
🔄 Консольные приложения — универсальный способ автоматизации и взаимодействия с системами.
📦 Symfony Console предоставляет структурированную и богатую функциональность среду разработки.
⚙️ Возможности Symfony Console:
📑 Автоматическая генерация справки: Symfony Console может автоматически создавать понятную и полезную справку для ваших команд.
🎛️ Управление вводом с опциями и аргументами: Простое определение ожидаемых вводов делает команды интуитивно понятными.
🔄 Соблюдение конвенции docopt: Гарантирует согласованный и интуитивный интерфейс для описания функциональности программы.
📝 Значения по умолчанию и валидация ввода: Помогают поддерживать гибкость и предсказуемость поведения команд.
🖥️ Удобные вспомогательные функции: Улучшают взаимодействие с пользователем и оптимизируют процесс разработки.
📂 Структурированные и основанные на классах команды: Облегчают поддержку и расширение командных приложений.
🔧 Установка и создание первой команды:
💻 Установите Symfony Console через Composer.
📂 Создайте первую команду, определив класс и методы для конфигурации и выполнения действий.
Symfony Console значительно упрощает создание командных приложений в PHP, предоставляя эффективные инструменты для автоматизации процессов и управления задачами. 🌟
🛠️ Здесь рассматривается, как создать простой командный инструмент в PHP с использованием пакета Symfony Console (symfony/console).
🤔 Почему Symfony Console?
🔄 Консольные приложения — универсальный способ автоматизации и взаимодействия с системами.
📦 Symfony Console предоставляет структурированную и богатую функциональность среду разработки.
⚙️ Возможности Symfony Console:
📑 Автоматическая генерация справки: Symfony Console может автоматически создавать понятную и полезную справку для ваших команд.
🎛️ Управление вводом с опциями и аргументами: Простое определение ожидаемых вводов делает команды интуитивно понятными.
🔄 Соблюдение конвенции docopt: Гарантирует согласованный и интуитивный интерфейс для описания функциональности программы.
📝 Значения по умолчанию и валидация ввода: Помогают поддерживать гибкость и предсказуемость поведения команд.
🖥️ Удобные вспомогательные функции: Улучшают взаимодействие с пользователем и оптимизируют процесс разработки.
📂 Структурированные и основанные на классах команды: Облегчают поддержку и расширение командных приложений.
🔧 Установка и создание первой команды:
💻 Установите Symfony Console через Composer.
📂 Создайте первую команду, определив класс и методы для конфигурации и выполнения действий.
Symfony Console значительно упрощает создание командных приложений в PHP, предоставляя эффективные инструменты для автоматизации процессов и управления задачами. 🌟
DEV Community
Building a Command Line Tool with PHP and Symfony Console
Command line tools are a powerful way to automate processes, manage tasks, and enhance your...
👍8🥱5❤3
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🏔 Эпикфейл: карьера катится к чертям
🤦♂️ У всех нас случались провалы в карьере, о которых не хочется распространяться. Неловкий момент на собеседовании, провал проекта из-за глупой ошибки, конфликт с начальством — такие ситуации хочется поскорее забыть. Однако часто именно они дают нам самые ценные уроки и закаляют как профессионалов.
📝 Поделитесь своей историей карьерного провала в нашем новом опросе и расскажите, к чему он привел в итоге. Быть может, эта ошибка позволила вам пересмотреть свой путь и выбрать более подходящую профессию? А может, вы сделали правильные выводы и сейчас добились успеха?
👉 Поделиться историей
🤦♂️ У всех нас случались провалы в карьере, о которых не хочется распространяться. Неловкий момент на собеседовании, провал проекта из-за глупой ошибки, конфликт с начальством — такие ситуации хочется поскорее забыть. Однако часто именно они дают нам самые ценные уроки и закаляют как профессионалов.
📝 Поделитесь своей историей карьерного провала в нашем новом опросе и расскажите, к чему он привел в итоге. Быть может, эта ошибка позволила вам пересмотреть свой путь и выбрать более подходящую профессию? А может, вы сделали правильные выводы и сейчас добились успеха?
👉 Поделиться историей
😁3❤1
Хостинг статичных Laravel-приложений
Недавно компания Spatie выпустила новый пакет под названием laravel-export, который упаковывает ваше приложение Laravel в статический сайт, который можно хостить. Это отличное дополнение к экосистеме Laravel, поскольку это открывает целый новый способ размещения приложений Laravel.
Этот метод размещения идеально подходит для веб-сайтов, таких как:
🟠блоги
🟠портфолио
🟠посадочные страницы
Которые не зависят от запросов к серверу бэкенда, а отображают статическую информацию.
Здесь показано, как использовать laravel-export для развертывания блога на Cloudflare Pages, Netlify и Vercel.
Недавно компания Spatie выпустила новый пакет под названием laravel-export, который упаковывает ваше приложение Laravel в статический сайт, который можно хостить. Это отличное дополнение к экосистеме Laravel, поскольку это открывает целый новый способ размещения приложений Laravel.
Этот метод размещения идеально подходит для веб-сайтов, таких как:
🟠блоги
🟠портфолио
🟠посадочные страницы
Которые не зависят от запросов к серверу бэкенда, а отображают статическую информацию.
Здесь показано, как использовать laravel-export для развертывания блога на Cloudflare Pages, Netlify и Vercel.
Boydbloemsma
Hosting Laravel applications statically
In this article we will be going over how to I used laravel-export to deploy the very blog you're reading right now; to Cloudflare Pages, Netlify and Vercel.
👍4🤔3
Laravel трюки: автоматическое подключение каналов логирования
В статье представлен метод автоматического подключения каналов логирования в Laravel через использование механизма сервис-контейнеров (DI). Подробно описаны шаги этого метода, начиная с обзора функционала логирования в Laravel и проблемы, связанной с прямым использованием конкретных каналов в классах.
Далее предложен способ автоматического подключения каналов логирования через DI, включая создание интерфейса-маркера и его связывание с каналом логирования с помощью провайдера. Описано использование трейта LoggerAwareTrait и логирование данных в соответствующих классах.
Также представлен альтернативный вариант с использованием автопровязывания (Autowiring), где логгер передается в метод класса как аргумент, и определяется правило для сервис-контейнера в AppServiceProvider.
В статье представлен метод автоматического подключения каналов логирования в Laravel через использование механизма сервис-контейнеров (DI). Подробно описаны шаги этого метода, начиная с обзора функционала логирования в Laravel и проблемы, связанной с прямым использованием конкретных каналов в классах.
Далее предложен способ автоматического подключения каналов логирования через DI, включая создание интерфейса-маркера и его связывание с каналом логирования с помощью провайдера. Описано использование трейта LoggerAwareTrait и логирование данных в соответствующих классах.
Также представлен альтернативный вариант с использованием автопровязывания (Autowiring), где логгер передается в метод класса как аргумент, и определяется правило для сервис-контейнера в AppServiceProvider.
Хабр
Laravel трюки: автоматическое подключение каналов логирования
Всем привет! Меня зовут Иван Шишкин и я руковожу разработкой в агентстве Intensa. В этой статье хотел бы поделиться методом автоматического подключения каналов логирования в Laravel через механизм...
😁8👍2
Phanalist
Быстрый статический анализатор для сборки PHP с помощью Rust. Он довольно мал по сравнению с PHPStan или Psalm.
Но также хорошо иметь возможность и научиться писать собственный статический анализатор PHP на Rust.
Быстрый статический анализатор для сборки PHP с помощью Rust. Он довольно мал по сравнению с PHPStan или Psalm.
Но также хорошо иметь возможность и научиться писать собственный статический анализатор PHP на Rust.
GitHub
GitHub - denzyldick/phanalist: Performant static analyzer for PHP, which is extremely easy to use. It helps you catch common mistakes…
Performant static analyzer for PHP, which is extremely easy to use. It helps you catch common mistakes in your PHP code. - denzyldick/phanalist
🔥5
😺🐙💡 Как сделать креативный профиль на GitHub
Расскажем, как представить свои навыки, опыт и пет-проекты так, чтобы на профиль обращали внимание потенциальные работодатели и единомышленники.
👉 Читать статью
👉 Зеркало
Расскажем, как представить свои навыки, опыт и пет-проекты так, чтобы на профиль обращали внимание потенциальные работодатели и единомышленники.
👉 Читать статью
👉 Зеркало
😁8👍1
Что такое Zend Engine?
Zend Engine — это механизм выполнения на языке C с открытым исходным кодом, который интерпретирует язык программирования PHP. Он был изначально разработан Анди Гутмансом и Зеевом Сураcки, когда они были студентами Технического университета Израиля.
Zend Engine служит ядром среды выполнения PHP, обеспечивая основные функции для разбора, компиляции и выполнения PHP-скриптов. Он также включает в себя функциональность по управлению памятью, сборке мусора и поддержке расширений, делая его универсальной платформой для запуска приложений на PHP.
Одним из важных вкладов Zend Engine в эволюцию PHP стало внедрение Zend Extension API (ZE), позволяющего разработчикам создавать собственные расширения на C или C++, чтобы расширить функциональность PHP. Эти расширения могут использоваться для интеграции PHP с внешними библиотеками, добавления новых возможностей или оптимизации производительности.
#вопросы_с_собеседований
Zend Engine — это механизм выполнения на языке C с открытым исходным кодом, который интерпретирует язык программирования PHP. Он был изначально разработан Анди Гутмансом и Зеевом Сураcки, когда они были студентами Технического университета Израиля.
Zend Engine служит ядром среды выполнения PHP, обеспечивая основные функции для разбора, компиляции и выполнения PHP-скриптов. Он также включает в себя функциональность по управлению памятью, сборке мусора и поддержке расширений, делая его универсальной платформой для запуска приложений на PHP.
Одним из важных вкладов Zend Engine в эволюцию PHP стало внедрение Zend Extension API (ZE), позволяющего разработчикам создавать собственные расширения на C или C++, чтобы расширить функциональность PHP. Эти расширения могут использоваться для интеграции PHP с внешними библиотеками, добавления новых возможностей или оптимизации производительности.
#вопросы_с_собеседований
👍21🥰1🥱1
Создание поддерживаемых PHP-приложений: чрезмерное или недостаточное проектирование
Здесь обсуждается концепция «over-engineering» (чрезмерное проектирование) и «under-engineering» (недостаточная инженерия) в контексте программирования.
В первом примере (over-engineered) показано создание класса для обработки запроса на регистрацию нового пользователя. Код включает в себя использование различных зависимостей, типизацию и применение различных паттернов и принципов проектирования. Автор утверждает, что такой код, хотя и может показаться избыточным на первый взгляд, на самом деле написан для облегчения поддержки и изменений в будущем, когда бизнес-правила и процессы станут более сложными.
Во втором примере (under-engineered) показано простое создание нового пользователя без использования отдельного класса для обработки этой задачи. Код написан прямо в контроллере и не использует никаких паттернов или принципов проектирования. Автор указывает, что такой подход может быть приемлемым для небольших проектов, но в больших и сложных приложениях он может привести к проблемам с поддержкой и изменениями в будущем.
Здесь обсуждается концепция «over-engineering» (чрезмерное проектирование) и «under-engineering» (недостаточная инженерия) в контексте программирования.
В первом примере (over-engineered) показано создание класса для обработки запроса на регистрацию нового пользователя. Код включает в себя использование различных зависимостей, типизацию и применение различных паттернов и принципов проектирования. Автор утверждает, что такой код, хотя и может показаться избыточным на первый взгляд, на самом деле написан для облегчения поддержки и изменений в будущем, когда бизнес-правила и процессы станут более сложными.
Во втором примере (under-engineered) показано простое создание нового пользователя без использования отдельного класса для обработки этой задачи. Код написан прямо в контроллере и не использует никаких паттернов или принципов проектирования. Автор указывает, что такой подход может быть приемлемым для небольших проектов, но в больших и сложных приложениях он может привести к проблемам с поддержкой и изменениями в будущем.
Davor Minchorov
Building Maintainable PHP Applications: Over-engineering vs under-engineering
👍6
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🍋 Подборка лучших статей «Библиотеки программиста» за январь: сохраняй в заметки, чтобы не пропустить #самыйсок
🏖️ Чек лист идеального отдыха: 5 психологических техник расслабления
👨💻 Особенности работы в ИТ: информация из первых рук
🎉 Python и неопытные программисты: наши лучшие статьи за 2023 год
🏖️ Синдром упущенного отпуска: почему так опасно игнорировать заслуженный отдых
😺🐙📄 Как разместить резюме на GitHub Pages
💣 Кем вы видите себя через 5 лет: как отвечать на странные и неудобные вопросы на собеседовании
🏖️ Синдром упущенного отпуска: почему так опасно игнорировать заслуженный отдых
🤖 Итоги недели в мире ИИ и обзоры новых сервисов: новые модели для генерации впечатляющих видео
🏅 Решаем 5 олимпиадных задач на Python
📈 9 главных трендов в разработке фронтенда в 2024 году
🔤 Азбука SQL в примерах. Часть 3. Обрабатываем результаты и делаем сложные запросы
🐍➰ Создаем игру «Виселица» на Python:
👉 Часть 1. Командная строка
👉 Часть 2. Графический интерфейс на PySimpleGUI
💰⬆️ 10 факторов, влияющих на зарплату программиста
🐻❄️ Быстрее Pandas в 10 раз: Polars — высокопроизводительная библиотека для анализа больших данных на Python
👨💻🧩 Психология и ИТ: 17 личностных качеств, необходимых для успешной карьеры
🏃 Самоучитель по Go для начинающих:
👉 Часть 5. Условные конструкции if-else и switch-case. Цикл for. Вложенные и бесконечные циклы
👉 Часть 6. Функции и аргументы. Области видимости. Рекурсия. Defer
🏖️ Чек лист идеального отдыха: 5 психологических техник расслабления
👨💻 Особенности работы в ИТ: информация из первых рук
🎉 Python и неопытные программисты: наши лучшие статьи за 2023 год
🏖️ Синдром упущенного отпуска: почему так опасно игнорировать заслуженный отдых
😺🐙📄 Как разместить резюме на GitHub Pages
💣 Кем вы видите себя через 5 лет: как отвечать на странные и неудобные вопросы на собеседовании
🏖️ Синдром упущенного отпуска: почему так опасно игнорировать заслуженный отдых
🤖 Итоги недели в мире ИИ и обзоры новых сервисов: новые модели для генерации впечатляющих видео
🏅 Решаем 5 олимпиадных задач на Python
📈 9 главных трендов в разработке фронтенда в 2024 году
🔤 Азбука SQL в примерах. Часть 3. Обрабатываем результаты и делаем сложные запросы
🐍➰ Создаем игру «Виселица» на Python:
👉 Часть 1. Командная строка
👉 Часть 2. Графический интерфейс на PySimpleGUI
💰⬆️ 10 факторов, влияющих на зарплату программиста
🐻❄️ Быстрее Pandas в 10 раз: Polars — высокопроизводительная библиотека для анализа больших данных на Python
👨💻🧩 Психология и ИТ: 17 личностных качеств, необходимых для успешной карьеры
🏃 Самоучитель по Go для начинающих:
👉 Часть 5. Условные конструкции if-else и switch-case. Цикл for. Вложенные и бесконечные циклы
👉 Часть 6. Функции и аргументы. Области видимости. Рекурсия. Defer
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
❤2
«Как я сделал невозможным написание спагетти-кода»
Здесь рассматривается цикломатическая сложность, метрика, используемая для измерения сложности структуры управления программы. Цикломатическая сложность рассчитывается на основе количества узлов, рёбер и выходных узлов в графе управления программой. В статье предоставляется формула для расчета цикломатической сложности и объясняется, как она используется для выявления сложного кода, который может быть сложен в поддержке.
Автор представляет проект под названием Phanalist, статический анализатор для PHP, который предназначен для расчета цикломатической сложности PHP-кода. Его мы уже упоминали.
Также объясняется, как Phanalist реализует формулу для расчета цикломатической сложности, используя структуру с именем Graph, которая содержит переменные для количества узлов, рёбер и выходных узлов. Далее предоставлены фрагменты кода, демонстрирующие, как Phanalist рассчитывает цикломатическую сложность для заданной области метода.
Здесь рассматривается цикломатическая сложность, метрика, используемая для измерения сложности структуры управления программы. Цикломатическая сложность рассчитывается на основе количества узлов, рёбер и выходных узлов в графе управления программой. В статье предоставляется формула для расчета цикломатической сложности и объясняется, как она используется для выявления сложного кода, который может быть сложен в поддержке.
Автор представляет проект под названием Phanalist, статический анализатор для PHP, который предназначен для расчета цикломатической сложности PHP-кода. Его мы уже упоминали.
Также объясняется, как Phanalist реализует формулу для расчета цикломатической сложности, используя структуру с именем Graph, которая содержит переменные для количества узлов, рёбер и выходных узлов. Далее предоставлены фрагменты кода, демонстрирующие, как Phanalist рассчитывает цикломатическую сложность для заданной области метода.
DEV Community
How I made it impossible to write spaghetti code.
This is part 2 of a series of my static analyzer for PHP. If you did not read part 1, I suggest you...
👍2