Заметки разработчика
Open in Telegram
Заметки о Frontend, Backend и немного DevOps. В основном о #PHP, #Laravel, #JavaScript, #HTML, #CSS, тестировании и настройке серверов. https://www.dev-notes.ru @snakenf
Show more463
Subscribers
No data24 hours
-37 days
+130 days
Posts Archive
Один из лучших способов стабилизировать устаревшую кодовую базу Laravel:
1. Исправьте code style. Необходимо навести порядок в хаосе. Для этого требуется хорошая коммуникация с командой. Потому что Git конфликты — кошмар.
2. Создайте отсутствующие миграции. Часто бывают проекты, в которых отсутствуют некоторые миграции, потому что разработчики сами редактировали базу данных.
3. Создайте недостающие фабрики. Нужен обширный набор случайных фейковых данных для локальной разработки.
4. Начните писать тесты для таких простых вещей, как GET маршруты. Это станет большим шагом вперёд. Фабрики в этом помогут.
5. Создайте среду непрерывной интеграции CI. Лучше всего для этого подходят GitHub Actions, и существует множество примеров с открытым исходным кодом.
6. Переложите как можно больше работы на фреймворк. Если вы начали писать хорошие тесты, теперь вы можете перейти от чьей-то ненужной реализации к Laravel пути. Разработчики, изобретающие велосипед, часто делают это, потому что им не хватает знаний о фреймворке.
SQLi: Шпаргалка по SQL-инъекциям
Эта шпаргалка по SQL-инъекциям содержит примеры полезного синтаксиса, который можно использовать для различных задач, часто возникающих при выполнении атак с помощью SQL-инъекций.
https://www.dev-notes.ru/articles/security/sql-injection-cheat-sheet/
SQLi: Что такое SQL-инъекция
В этой статье мы объясним, что такое SQL-инъекции (SQLi), опишем несколько распространённых примеров, объясним, как находить и использовать различные виды уязвимостей SQL-инъекций, а также подведём итоги, как предотвратить SQL-инъекции.
https://www.dev-notes.ru/articles/security/sql-injection/
Laravel совет.
Вы можете использовать один и тот же класс запроса формы
From Request для нескольких действий контроллера, используя match или switch в методе rules()Laravel совет.
Вы можете указать класс Seeder не только с помощью
php artisan db:seed --class=XXXXX, но и с помощью php artisan migrate:fresh --seed --seeder=XXXXXPython: Понимание объекта NoneType
В этом руководстве вы узнаете об NoneType объекте None, который действует в Python как null. Этот объект представляет собой пустоту, и вы можете использовать его, чтобы отменить параметры по умолчанию и даже показать, когда у вас нет результата. None — это инструмент для того, чтобы делать всё из ничего!
https://www.dev-notes.ru/articles/python/understanding-nonetype-object/
Пересобрал модули. Сайт работает в прежнем режиме с поддержкой сжатия brotli.
Вышел nginx 1.24.0.
Выпущена стабильная версия nginx-1.24.0, включающая новые функции и исправления ошибок из основной ветки 1.23.x.
P.S. У кого стоят модули собранные под 1.23, есть большая вероятность, что они отваляться и nginx не перезапуститься пока вы их не пересоберёте под новую версию или полностью не отключите все связанные с ними директивы из конфигов.
У меня отвалился brotli filter и brotli static, пришлось срочно отключать в конфигах ибо сайт лёг.
Python: Идентичность и равенство объектов
В этом кратком и практическом руководстве вы узнаете, когда использовать операторы Python is, is not, == и !=. Вы увидите, что эти операторы сравнения делают под капотом, погрузитесь в некоторые особенности идентификации объекта и интернирования, а также определите пользовательский класс.
https://www.dev-notes.ru/articles/python/is-identity-vs-equality/
Laravel: Моделирование бизнес процессов
Как разработчики, мы часто сопоставляем бизнес процессы с цифровыми процессам, от отправки электронного письма до чего-то довольно сложного. Давайте посмотрим, как взять более сложный процесс и написать чистый и элегантный код
https://www.dev-notes.ru/articles/laravel/modelling-busines-processes/
Laravel совет.
Вы можете создать отдельные «глобальные» сидеры, а не только основную
DatabaseSeedeer.
Например, если вы хотите иметь набор сидеров для тестирования производительности с большим количеством данных:
1. Создайте отдельные сидеры в подкаталоге
2. Создайте основной сидер
3. Запустите его с помощью php artisan db:seed –class=XXXXCSS: Что такое color-mix() и как смешивать цвета
CSS функция color-mix() появилась в Chrome 111. В этой статье объясняется, как использовать эту функцию для смешивания цветов в таблицах стилей.
https://www.dev-notes.ru/articles/css/color-mix/
Laravel: Всё, что вы можете протестировать в приложении
Общая проблема при тестировании заключается не в том, как что-то протестировать, а в том, что вы можете протестировать. Я составил список всего, что мне нравиться тестировать в своих приложениях.
https://www.dev-notes.ru/articles/laravel/everything-you-can-test/
Laravel: Поговорим о запросах формы / Form Request
Запросы формы наиболее известны тем, что переносят логику проверки из контроллеров в класс, который будет выполнять предварительную проверку. Они фантастические, и я постоянно опираюсь на них. Что ещё мы можем сделать с запросами форм?
https://www.dev-notes.ru/articles/laravel/form-request/
Laravel: Хелперы массива которые нужно знать
Laravel известен своей элегантностью, простотой и выразительностью. Одной из самых мощных возможностей Laravel являются хелперы. Хелперы массивов Laravel — важный инструмент для разработчиков, работающих с массивами данных.
https://www.dev-notes.ru/articles/laravel/array-helpers-you-need-to-know/
Laravel: Как написать хелпер
Хотите написать собственный хелпер в Laravel? Узнайте, как создавать собственные вспомогательные функции (хелперы) с помощью этого руководства.
https://www.dev-notes.ru/articles/laravel/custom-helper-functions/
Laravel: Беспарольная аутентификация
Иногда мы не хотим, чтобы у пользователей были пароли. Иногда мы хотим отправить волшебную ссылку на адрес электронной почты пользователя, чтобы он кликнул по ней и получил доступ.
https://www.dev-notes.ru/articles/laravel/passwordless-authentication/
Совет Laravel: если вы хотите обновить одну запись по ее идентификатору, лучше использовать
where()->update(), чем find()->update().
Это вопрос одного дополнительного и бесполезного SQL-запроса.Python: Виртуальные среды — это просто
Большинство новичков не знают, как настроить в Python среду разработки, соответствующую последним стандартам, используемым профессиональными программистами. В этом руководстве вы узнаете, как правильно создать полностью работающую среду разработки Python с использованием лучших отраслевых рекомендаций.
https://www.dev-notes.ru/articles/python/virtual-environments-made-easy/
Архитектурная концепция Laravel: Сервис Провайдеры
Сервис провайдеры это центральный узел начальной загрузки всех приложений Laravel. Ваше приложение, а также все основные службы загружаются через них.
https://www.dev-notes.ru/articles/laravel/service-providers/
