Что означает сложность алгоритма?
Сложность алгоритма представляет собой меру его эффективности и определяет количество ресурсов, таких как время и память, необходимых для его выполнения.
Существуют два основных типа сложности алгоритма: временная сложность и пространственная сложность.
Временная сложность алгоритма оценивает время, необходимое для его выполнения, в зависимости от размера входных данных. Обычно время выполнения алгоритма измеряется в тактах процессора или в секундах. Примеры временной сложности включают константную сложность O(1) (выполнение за постоянное время), линейную сложность O(n) (выполнение занимает время, пропорциональное размеру входных данных) и квадратичную сложность O(n^2) (выполнение занимает время, пропорциональное квадрату размера входных данных).
Пространственная сложность алгоритма оценивает объем памяти, необходимый для его выполнения, в зависимости от размера входных данных. Обычно пространственная сложность измеряется в байтах. Примеры пространственной сложности включают константную сложность O(1) (не зависит от размера входных данных), линейную сложность O(n) (потребляет память, пропорционально размеру входных данных) и квадратичную сложность O(n^2) (потребляет память, пропорционально квадрату размера входных данных).
#вопросы_с_собеседований
Сложность алгоритма представляет собой меру его эффективности и определяет количество ресурсов, таких как время и память, необходимых для его выполнения.
Существуют два основных типа сложности алгоритма: временная сложность и пространственная сложность.
Временная сложность алгоритма оценивает время, необходимое для его выполнения, в зависимости от размера входных данных. Обычно время выполнения алгоритма измеряется в тактах процессора или в секундах. Примеры временной сложности включают константную сложность O(1) (выполнение за постоянное время), линейную сложность O(n) (выполнение занимает время, пропорциональное размеру входных данных) и квадратичную сложность O(n^2) (выполнение занимает время, пропорциональное квадрату размера входных данных).
Пространственная сложность алгоритма оценивает объем памяти, необходимый для его выполнения, в зависимости от размера входных данных. Обычно пространственная сложность измеряется в байтах. Примеры пространственной сложности включают константную сложность O(1) (не зависит от размера входных данных), линейную сложность O(n) (потребляет память, пропорционально размеру входных данных) и квадратичную сложность O(n^2) (потребляет память, пропорционально квадрату размера входных данных).
#вопросы_с_собеседований
👍11🔥3❤2😁2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
This media is not supported in the widget
VIEW IN TELEGRAM
🎉18🥱4
Использование stdClass в PHP
stdClass в PHP предоставляет возможность создавать объекты динамически без явно определенной структуры класса. Вот несколько сценариев, когда stdClass может быть полезен:
✔️Динамическое создание объектов:
stdClass позволяет создавать объекты без ограничений, связанных с определенной структурой класса, что идеально подходит для хранения произвольных данных.
✔️Работа с JSON:
stdClass удобен при декодировании JSON-строк в объекты PHP с использованием json_decode, особенно при работе с динамическими JSON-структурами.
✔️Взаимодействие с динамическими данными:
stdClass упрощает присвоение свойств для обработки данных из внешних источников, таких как API, где структура данных может изменяться.
✔️Динамический возврат объектов:
Функции или методы могут легко возвращать динамические объекты с использованием stdClass.
Однако, стоит учесть, что stdClass предоставляет гибкость для создания объектов на лету, но не обладает той же надежностью, что и классы в объектно-ориентированном программировании.
stdClass в PHP предоставляет возможность создавать объекты динамически без явно определенной структуры класса. Вот несколько сценариев, когда stdClass может быть полезен:
✔️Динамическое создание объектов:
stdClass позволяет создавать объекты без ограничений, связанных с определенной структурой класса, что идеально подходит для хранения произвольных данных.
✔️Работа с JSON:
stdClass удобен при декодировании JSON-строк в объекты PHP с использованием json_decode, особенно при работе с динамическими JSON-структурами.
✔️Взаимодействие с динамическими данными:
stdClass упрощает присвоение свойств для обработки данных из внешних источников, таких как API, где структура данных может изменяться.
✔️Динамический возврат объектов:
Функции или методы могут легко возвращать динамические объекты с использованием stdClass.
Однако, стоит учесть, что stdClass предоставляет гибкость для создания объектов на лету, но не обладает той же надежностью, что и классы в объектно-ориентированном программировании.
DEV Community
Exploring stdClass in PHP
Ever encountered scenarios in PHP where creating objects dynamically without adhering to a predefined...
🌚8👏6❤2😁2🎉2
Собираетесь ли вы развиваться и заниматься программированием на новогодних праздниках? Что именно будете делать?
Anonymous Poll
22%
Попробую освоить новые инструменты и подходы к разработке
1%
Приму участие в хакатонах
2%
Посмотрю фильмы и сериалы про IT
31%
Поработаю над собственными проектами — добавлю новую функциональность
33%
Почитаю книги и статьи по программированию — расширю кругозор
56%
Просто отдохну и наберусь сил
❤1
Как легко создать PDF-файл из HTML в Symfony с помощью WeasyPrint
Те разработчики, которые сталкивались с созданием PDF-документа, понимают, почему другие разработчики избегают работы с ним.🧐
🔍Snappy и wkhtmltopdf, рекомендуемые инструменты для Symfony, но они имеют свои ограничения, такие как устаревшие движки и проблемы безопасности.
🐍WeasyPrint описывается как решение на основе Python, создающее PDF-документы из HTML с сильной поддержкой пагинации и соблюдением веб-стандартов для печати.
🔑Ключевые особенности WeasyPrint включают поддержку пагинации📃, создание документов высокого качества, включая документы PDF/A, закладки, гиперссылки, векторные изображения и базовую поддержку форм PDF. 🚨В статье подчеркивается важность рассмотрения мер безопасности при работе с пользовательскими вводами.
🛠️Приводится практический пример, демонстрирующий, как рендерить HTML с использованием Twig-шаблонов в приложении Symfony и генерировать PDF с использованием WeasyPrint.
Те разработчики, которые сталкивались с созданием PDF-документа, понимают, почему другие разработчики избегают работы с ним.🧐
🔍Snappy и wkhtmltopdf, рекомендуемые инструменты для Symfony, но они имеют свои ограничения, такие как устаревшие движки и проблемы безопасности.
🐍WeasyPrint описывается как решение на основе Python, создающее PDF-документы из HTML с сильной поддержкой пагинации и соблюдением веб-стандартов для печати.
🔑Ключевые особенности WeasyPrint включают поддержку пагинации📃, создание документов высокого качества, включая документы PDF/A, закладки, гиперссылки, векторные изображения и базовую поддержку форм PDF. 🚨В статье подчеркивается важность рассмотрения мер безопасности при работе с пользовательскими вводами.
🛠️Приводится практический пример, демонстрирующий, как рендерить HTML с использованием Twig-шаблонов в приложении Symfony и генерировать PDF с использованием WeasyPrint.
DEV Community
How to Simply Generate a PDF From HTML in Symfony With WeasyPrint
A thousand PDF generation solutions, but which one to choose? Recently, I was faced with a...
👍3❤1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
Подборка лучших статей «Библиотеки программиста» за ноябрь: сохраняй в заметки, чтобы не пропустить #самыйсок
🗺️ Дорожная карта Go-разработчика в 2023 году
🧑💻 6 карьерных советов программисту
⚖️ 25 курсов, книг и подкастов для развития критического мышления
🐍🎨 Генерация красивых QR-кодов с помощью Python
🔈16+ лучших нейронок для синтеза речи
⭐ FAQ по трудоустройству: разбираем самые популярные вопросы
👨💻 7 типов «сложных» разработчиков
∞ Дорожная карта DevOps-инженера в 2023 году
❤️🙏 Путь к мечте: как инвалидность не помешала стать разработчиком и продолжить борьбу за здоровье
👀 6 способов привлечь внимание работодателя
🤖📜 Искусственный интеллект: краткая история
🔤 Азбука SQL в примерах (часть 1 + часть 2)
🔢 Как научиться решать сложные задачи
🏆 Самые популярные языки программирования 2023
📰❌ 10 признаков фейковой вакансии
🏃 Самоучитель по Go для начинающих (часть 1 + часть 2)
⚛️ 45 вопросов для подготовки к собеседованию по React
🐍 5 задач для подготовки к собеседованию по Python
🐍🤖✍️ Документирование кода и проектов на Python с помощью ChatGPT
🗺️ Дорожная карта Go-разработчика в 2023 году
🧑💻 6 карьерных советов программисту
⚖️ 25 курсов, книг и подкастов для развития критического мышления
🐍🎨 Генерация красивых QR-кодов с помощью Python
🔈16+ лучших нейронок для синтеза речи
⭐ FAQ по трудоустройству: разбираем самые популярные вопросы
👨💻 7 типов «сложных» разработчиков
∞ Дорожная карта DevOps-инженера в 2023 году
❤️🙏 Путь к мечте: как инвалидность не помешала стать разработчиком и продолжить борьбу за здоровье
👀 6 способов привлечь внимание работодателя
🤖📜 Искусственный интеллект: краткая история
🔤 Азбука SQL в примерах (часть 1 + часть 2)
🔢 Как научиться решать сложные задачи
🏆 Самые популярные языки программирования 2023
📰❌ 10 признаков фейковой вакансии
🏃 Самоучитель по Go для начинающих (часть 1 + часть 2)
⚛️ 45 вопросов для подготовки к собеседованию по React
🐍 5 задач для подготовки к собеседованию по Python
🐍🤖✍️ Документирование кода и проектов на Python с помощью ChatGPT
🔥5❤1👍1🎉1
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
#️⃣C#
Библиотека шарписта
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие профильные каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
💼Каналы с вакансиями
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
#️⃣C#
Библиотека шарписта
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие профильные каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
💼Каналы с вакансиями
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
👍4❤3🥱1
Как реализовать простую очередь в Symfony
Реализация простой системы очередей в Symfony с использованием компонента Messenger и Redis в качестве транспортного уровня включает несколько шагов:
1️⃣Установка необходимых пакетов: Используйте Composer для установки компонента Symfony Messenger и адаптера Redis.
2️⃣Настройка транспорта: Настройте подключение к серверу Redis в файле .env, указав расположение сервера и желаемое имя очереди.
3️⃣Создание сообщения и обработчика: Используйте команды Symfony console для создания классов сообщения и соответствующего обработчика. Эти классы представляют данные для отправки и логику, которая будет выполнена при получении сообщения.
4️⃣Маршрутизация сообщения к транспорту: Настройте компонент Messenger для связывания класса сообщения с желаемым транспортом в файле messenger.yaml.
5️⃣Отправка сообщения: Используйте службу MessageBusInterface для отправки сообщений из различных частей приложения, таких как контроллеры или службы.
6️⃣Получение сообщения: Используйте команду messenger:consume, чтобы запустить рабочий процесс, прослушивающий указанный транспорт и выполняющий соответствующий обработчик. Можно запускать несколько рабочих процессов параллельно для увеличения пропускной способности.
Особенность компонента Messenger заключается в гибкости, позволяющей реализовывать различные паттерны обмена сообщениями и использовать различные транспорты помимо Redis, такие как AMQP, Doctrine, Amazon SQS, Google Pub/Sub и др.
Реализация простой системы очередей в Symfony с использованием компонента Messenger и Redis в качестве транспортного уровня включает несколько шагов:
1️⃣Установка необходимых пакетов: Используйте Composer для установки компонента Symfony Messenger и адаптера Redis.
2️⃣Настройка транспорта: Настройте подключение к серверу Redis в файле .env, указав расположение сервера и желаемое имя очереди.
3️⃣Создание сообщения и обработчика: Используйте команды Symfony console для создания классов сообщения и соответствующего обработчика. Эти классы представляют данные для отправки и логику, которая будет выполнена при получении сообщения.
4️⃣Маршрутизация сообщения к транспорту: Настройте компонент Messenger для связывания класса сообщения с желаемым транспортом в файле messenger.yaml.
5️⃣Отправка сообщения: Используйте службу MessageBusInterface для отправки сообщений из различных частей приложения, таких как контроллеры или службы.
6️⃣Получение сообщения: Используйте команду messenger:consume, чтобы запустить рабочий процесс, прослушивающий указанный транспорт и выполняющий соответствующий обработчик. Можно запускать несколько рабочих процессов параллельно для увеличения пропускной способности.
Особенность компонента Messenger заключается в гибкости, позволяющей реализовывать различные паттерны обмена сообщениями и использовать различные транспорты помимо Redis, такие как AMQP, Doctrine, Amazon SQS, Google Pub/Sub и др.
DEV Community
How to Implement a Simple Queue in Symfony
Symfony is a popular PHP framework that provides many features and components to create web...
👍7😁3❤2
Выбираем подходящий PHP-фреймворк для проекта
Здесь обсуждаются различные PHP-фреймворки и их пригодность для различных типов проектов, предоставляя исследования Laravel, Symfony, Yii, Slim и Laminas (Mezzio). Вот некоторые тезисы:
Laravel:
🟠Популярен в PHP-сообществе, баланс между сложностью и функциональностью.
🟠Подходит для B2B-решений, проектов с высокой нагрузкой и сложной бизнес-логикой.
🟠Включает готовые решения для общих задач, поддерживающее сообщество, и Laravel Octane для оптимизации производительности.
Symfony:
🟠Гибкий и настраиваемый фреймворк с активным сообществом.
🟠Используется в крупных корпоративных проектах, таких как Spotify и Yahoo.
🟠Более сложный чем Laravel, с более высоким порогом входа, но предлагает решения для различных случаев.
Yii:
🟠Объектно-ориентированный MVC-фреймворк с генерацией CRUD.
🟠Используется для приложений любой сложности, но утрачивает популярность в сравнении с Laravel.
🟠Известен быстрым развитием, соблюдением принципа DRY, и Ajax-виджетами для валидации данных.
Slim:
🟠Микрофреймворк для простых, но мощных веб-приложений и API.
🟠Быстрый и легкий, подходит для маленьких задач, где Symfony и Laravel могут быть избыточны.
🟠Используется для небольших API, микросервисов и отдельных сервисов в рамках монолита.
Laminas (Mezzio):
🟠Mezzio — это форк Zend Framework, созданный для модульных приложений.
Подходит для различных целей, в основном для API и микросервисов.
Хорошая поддержка, совместимость с Swoole и богатые библиотеки для синхронизации с внешними сервисами.
Здесь обсуждаются различные PHP-фреймворки и их пригодность для различных типов проектов, предоставляя исследования Laravel, Symfony, Yii, Slim и Laminas (Mezzio). Вот некоторые тезисы:
Laravel:
🟠Популярен в PHP-сообществе, баланс между сложностью и функциональностью.
🟠Подходит для B2B-решений, проектов с высокой нагрузкой и сложной бизнес-логикой.
🟠Включает готовые решения для общих задач, поддерживающее сообщество, и Laravel Octane для оптимизации производительности.
Symfony:
🟠Гибкий и настраиваемый фреймворк с активным сообществом.
🟠Используется в крупных корпоративных проектах, таких как Spotify и Yahoo.
🟠Более сложный чем Laravel, с более высоким порогом входа, но предлагает решения для различных случаев.
Yii:
🟠Объектно-ориентированный MVC-фреймворк с генерацией CRUD.
🟠Используется для приложений любой сложности, но утрачивает популярность в сравнении с Laravel.
🟠Известен быстрым развитием, соблюдением принципа DRY, и Ajax-виджетами для валидации данных.
Slim:
🟠Микрофреймворк для простых, но мощных веб-приложений и API.
🟠Быстрый и легкий, подходит для маленьких задач, где Symfony и Laravel могут быть избыточны.
🟠Используется для небольших API, микросервисов и отдельных сервисов в рамках монолита.
Laminas (Mezzio):
🟠Mezzio — это форк Zend Framework, созданный для модульных приложений.
Подходит для различных целей, в основном для API и микросервисов.
Хорошая поддержка, совместимость с Swoole и богатые библиотеки для синхронизации с внешними сервисами.
Хабр
Выбираем подходящий PHP-фреймворк для проекта
Привет, Хабр. Меня зовут Денис, я backend-разработчик в Пиробайте . Поговорим о самых распространенных PHP-фреймворках и о том, для каких проектов целесообразнее выбрать тот или иной вариант. ...
👍10🥱6❤2
Зачем создавать собственные исключения?
Исключения предназначены для обработки неожиданных ситуаций, и их использование особенно полезно при взаимодействии с внешними ресурсами, такими как сторонние API. В случае поддержки публичных API рекомендуется использовать исключения при обнаружении некорректных входных данных, чтобы предотвратить попадание их в основную часть приложения.
Статья сравнивает встроенные исключения с собственными. Рекомендуется создавать собственные исключения для обработки конкретных случаев, которые могут быть ловлены другими частями кода, вместо использования общего встроенного исключения. Приведены примеры использования обоих видов исключений.
Следует осторожно обращаться с блоками catch, ведь есть шанс «поглощения» исключений. Например, при работе с базой данных, критические ошибки следует допускать и записывать в лог, чтобы обеспечить прозрачность отслеживание проблем.
Исключения предназначены для обработки неожиданных ситуаций, и их использование особенно полезно при взаимодействии с внешними ресурсами, такими как сторонние API. В случае поддержки публичных API рекомендуется использовать исключения при обнаружении некорректных входных данных, чтобы предотвратить попадание их в основную часть приложения.
Статья сравнивает встроенные исключения с собственными. Рекомендуется создавать собственные исключения для обработки конкретных случаев, которые могут быть ловлены другими частями кода, вместо использования общего встроенного исключения. Приведены примеры использования обоих видов исключений.
Следует осторожно обращаться с блоками catch, ведь есть шанс «поглощения» исключений. Например, при работе с базой данных, критические ошибки следует допускать и записывать в лог, чтобы обеспечить прозрачность отслеживание проблем.
👍6❤2🤩1
В чем разница между WHERE и HAVING?
WHERE и HAVING являются двумя различными операторами условий в языке SQL, которые используются для фильтрации данных.
Оператор WHERE используется в выражении SELECT для фильтрации строк до их группировки и агрегации. Он определяет условия, которым должны соответствовать отдельные записи перед тем, как они будут включены в результирующий набор данных.
В примере оператор WHERE фильтрует строки таблицы employees и выбирает только те строки, где значение столбца 'department' равно 'Sales'.
Оператор HAVING используется после операции GROUP BY в выражении SELECT для фильтрации результатов группировки и агрегации. Он определяет условия, которым должны соответствовать группы записей, чтобы они были включены в результирующий набор данных после группировки.
В примере оператор HAVING фильтрует результаты группировки таблицы employees и выбирает только те группы записей, где количество сотрудников больше 5.
Таким образом, основная разница между WHERE и HAVING заключается в том, что WHERE фильтрует строки до группировки и агрегации, а HAVING фильтрует результаты после группировки и агрегации.
#вопросы_с_собеседований
WHERE и HAVING являются двумя различными операторами условий в языке SQL, которые используются для фильтрации данных.
Оператор WHERE используется в выражении SELECT для фильтрации строк до их группировки и агрегации. Он определяет условия, которым должны соответствовать отдельные записи перед тем, как они будут включены в результирующий набор данных.
В примере оператор WHERE фильтрует строки таблицы employees и выбирает только те строки, где значение столбца 'department' равно 'Sales'.
Оператор HAVING используется после операции GROUP BY в выражении SELECT для фильтрации результатов группировки и агрегации. Он определяет условия, которым должны соответствовать группы записей, чтобы они были включены в результирующий набор данных после группировки.
В примере оператор HAVING фильтрует результаты группировки таблицы employees и выбирает только те группы записей, где количество сотрудников больше 5.
Таким образом, основная разница между WHERE и HAVING заключается в том, что WHERE фильтрует строки до группировки и агрегации, а HAVING фильтрует результаты после группировки и агрегации.
#вопросы_с_собеседований
👍15❤6🥱4🔥2⚡1
🤔Некоторые разработчики недооценивают полезность трейтов, обвиняя в «переинжиниринге» или «преждевременной абстракции». Однако, не следует обобщать все случаи использования трейтов, вот яркий пример их эффективного применения в Laravel.
🌐 Практический пример: Livewire Toaster:
Создается пакет «Livewire Toaster» для управления всплывающими уведомлениями, используя трейты и декораторы. Подчеркивается «умное» управление временем отображения сообщений и легкость в использовании.
💻 Реализация:
Автор предоставляет код для регистрации коллекторов в сервис-контейнере Laravel с использованием метода extend. Он демонстрирует создание декораторов, таких как «AccessibleCollector» и «TranslatingCollector».
🌐 Практический пример: Livewire Toaster:
Создается пакет «Livewire Toaster» для управления всплывающими уведомлениями, используя трейты и декораторы. Подчеркивается «умное» управление временем отображения сообщений и легкость в использовании.
💻 Реализация:
Автор предоставляет код для регистрации коллекторов в сервис-контейнере Laravel с использованием метода extend. Он демонстрирует создание декораторов, таких как «AccessibleCollector» и «TranslatingCollector».
muhammedsari.me
Hands-on decoration - Muhammed Sarı
Mastering elation with the decorator foundation! Let's take a look at how we can leverage this simple, yet powerful design pattern in the context of a Laravel package.
👍4❤3🔥3🎉2🌚2
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
📈 Обзор рынка труда в ИТ: III квартал 2023 года
В этой статье обсудим зарплату программистов в III квартале 2023 года, динамику вакансий, тенденции рынка труда в ИТ и многое другое. Присоединяйтесь!
Читать статью
В этой статье обсудим зарплату программистов в III квартале 2023 года, динамику вакансий, тенденции рынка труда в ИТ и многое другое. Присоединяйтесь!
Читать статью
👏7🌚3❤1😁1
Недокументированная возможность в Phpstorm: нативная консоль php -a с автодополнением из IDE
В PhpStorm есть хитрость, позволяющяя использовать консоль PHP как альтернативу Python Console. Здесь рассказывается о возможности интегрировать консоль PHP с IDE, добавив возможность отладки, что обеспечивает автодополнение и другие функции IDE в консоли PHP.
В PhpStorm есть хитрость, позволяющяя использовать консоль PHP как альтернативу Python Console. Здесь рассказывается о возможности интегрировать консоль PHP с IDE, добавив возможность отладки, что обеспечивает автодополнение и другие функции IDE в консоли PHP.
🔥12👍3🥱3
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
❤2
Обновление Laravel: с 5.7 до 10.x
В Laravel есть возможность прямого перехода к последней версии (Laravel 10.x) независимо от текущей версии, обходя инкрементальные обновления. Процесс подробно описывается в пяти шагах:
1️⃣Настройка окружения:
Создание окружения для Laravel 10.x, требующего PHP 8.1 и указанных расширений.
2️⃣Обновление только Laravel:
Изначально фокус на обновлении базовых пакетов Laravel.
Создание нового файла composer.json на основе ветки Laravel 10.x из GitHub.
Запуск composer install для выявления и пошагового устранения ошибок.
3️⃣Установка зависимостей:
Решение проблем, связанных с фреймворком, сравнив изменения между текущей версией и Laravel 10.x на GitHub.
Ручное объединение изменений там, где это необходимо, особенно в файлах с пользовательскими модификациями.
4️⃣Установка оставшихся зависимостей:
Установка оставшихся зависимостей, учитывая изменения между файлами composer.json.back и новым composer.json.
Использование сравнения в Git для выявления и избегания установки зависимостей, удаленных Laravel.
5️⃣Финальные рекомендации:
Уделять особое внимание тестированию для обеспечения успешного обновления и правильной работы системы.
Регулярная проверка обновлений в репозитории Laravel и обращение к руководствам по обновлению Laravel для дополнительных идей.
В Laravel есть возможность прямого перехода к последней версии (Laravel 10.x) независимо от текущей версии, обходя инкрементальные обновления. Процесс подробно описывается в пяти шагах:
1️⃣Настройка окружения:
Создание окружения для Laravel 10.x, требующего PHP 8.1 и указанных расширений.
2️⃣Обновление только Laravel:
Изначально фокус на обновлении базовых пакетов Laravel.
Создание нового файла composer.json на основе ветки Laravel 10.x из GitHub.
Запуск composer install для выявления и пошагового устранения ошибок.
3️⃣Установка зависимостей:
Решение проблем, связанных с фреймворком, сравнив изменения между текущей версией и Laravel 10.x на GitHub.
Ручное объединение изменений там, где это необходимо, особенно в файлах с пользовательскими модификациями.
4️⃣Установка оставшихся зависимостей:
Установка оставшихся зависимостей, учитывая изменения между файлами composer.json.back и новым composer.json.
Использование сравнения в Git для выявления и избегания установки зависимостей, удаленных Laravel.
5️⃣Финальные рекомендации:
Уделять особое внимание тестированию для обеспечения успешного обновления и правильной работы системы.
Регулярная проверка обновлений в репозитории Laravel и обращение к руководствам по обновлению Laravel для дополнительных идей.
DEV Community
Upgrading Laravel: An easy Step-by-Step Guide from 5.7 to 10.x
In this article, I'll detail my method for upgrading any Laravel application, regardless of its...
🥱8🔥4❤2
#хочу_спросить
Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
❤3👍2