По словам создателя CSS, изначально он задумывал CSS как основную веб-технологию для управления поведением на веб-страницах, а скрипты - как запасной вариант, когда в CSS нельзя было сделать что-то декларативно. Обоснованием подхода, основанного на CSS, было то, что «скриптинг — это программирование, а программирование — это сложно». С момента появления псевдокласса :hover CSS стандартизирует шаблоны, созданные разработчиками на JavaScript, и «собирает» их в стандарты CSS. Если так подумать, то получается, что JavaScript - это халтура, а CSS — официальный способ.
#webdev #CSS #Tricks
Please open Telegram to view this post
VIEW IN TELEGRAM
Веб-приложения используют пагинацию, чтобы сократить большие файлы и позволить просматривать их на нескольких страницах. В приложениях Angular эта функциональность может быть реализована как на стороне клиента, так и на стороне сервера. В статье рассматривается пагинация на стороне сервера и её преимущества перед пагинацией на стороне клиента с использованием библиотеки
ngx-pagination.#webdev #JS #JavaScript #Angular #Pagination
Please open Telegram to view this post
VIEW IN TELEGRAM
Как быстро создать резервную копию проекта Laravel и сохранить её в Dropbox используя пакеты Spatie
Laravel-backup и Flysystem-dropbox.При управлении веб-проектами регулярное резервное копирование необходимо для предотвращения необратимой потери данных. Резервного копирования требуют различные типы данных, включая базы данных, пользовательские файлы и даже файлы, непосредственно связанные с самим веб-проектом.
Файлы проекта часто уже управляются системой контроля версий, например Github или Gitlab. Однако хранить там пользовательские данные не рекомендуется. Dropbox может стать отличным выбором для безопасного хранения такого рода данных.
#webdev #Laravel #Dropbox #Backup
Please open Telegram to view this post
VIEW IN TELEGRAM
try, catch и finallyОшибки составляют неотъемлемую часть программирования. Ошибки в JavaScript могут возникать во время написания кода из-за проблем, связанных с синтаксисом, дублирующиеся переменные, неправильное использование конструкций JavaScript и т. д. Также они могут возникать во время выполнения программы из-за внутренних ошибок на внешнем сервере, недоступных ресурсов на конечной точке API, сломанных или отсутствующих структур данных, интерфейсами которых обычно манипулирует наша программа, и т. д.
Синтаксические ошибки в основном отслеживаются линерами, но также указываются, когда код с ошибками выполняется движком JavaScript, то есть во время выполнения. Ошибки, возникающие во время выполнения, часто называют исключениями. Исключения выбрасывают объект
Error, который — если его не обработать проактивно — мгновенно завершает работу скрипта и не позволяет выполнить остальную часть кода.Поэтому, когда ожидается ошибка, чтобы не сломать программу, важно обрабатывать ошибки изящно и направлять поток программы в безопасное русло, где дальнейшее выполнение будет беспрепятственным.
#webdev #JS #JavaScript #Error
Please open Telegram to view this post
VIEW IN TELEGRAM
У jQuery долгая и уважаемая история, однако новый релиз jQuery v4 beta не содержит никаких интересных функций для современных веб-разработчиков. Есть несколько причин, по которым сейчас самое время отказаться от использования jQuery:
#webdev #JS #JavaScript #jQuery
Please open Telegram to view this post
VIEW IN TELEGRAM
[Совет #95] Хотя не следует десериализовывать всё, что получаете от пользователя, иногда нет выбора... так как же сделать это безопасно?
#webdev #PHP #Security
Please open Telegram to view this post
VIEW IN TELEGRAM
В начале недели я получил email от человека, спрашивающего, как прослушивать события внутри веб-компонента из других скриптов.
#webdev #JS #HTML #WebComponent
Please open Telegram to view this post
VIEW IN TELEGRAM
Cookies считаются важной частью веб-разработки, поскольку они хранят информацию на стороне клиента, включая сессии приложений, предпочтения и другую важную информацию. Использование файлов cookie имеет множество преимуществ, но при неправильном обращении они могут стать объектом нескольких угроз с точки зрения безопасности. При разработке веб-приложений безопасность имеет решающее значение, и небезопасный файл cookie может скомпрометировать всё приложение. Например, файл cookie может стать объектом атаки, что приведет к перехвату сеанса, атакам межсайтового скриптинга (XSS) и другим вредоносным действиям. Поэтому для адекватной защиты файлов cookie желательно использовать несколько способов. Атрибуты HTTPOnly и Secure - это идеальные меры, которые можно использовать для защиты файлов cookie. В этой статье рассмотрим оба атрибута, то есть что они собой представляют, как работают и как их настраивать.
#webdev #Cookie #Security
Please open Telegram to view this post
VIEW IN TELEGRAM
WordPress - одна из самых распространенных в мире систем управления контентом, на которой работают миллионы сайтов в разных отраслях. Однако такая популярность сделала WordPress частой мишенью для кибератак. Среди множества стратегий, используемых хакерами для взлома сайтов WordPress, одна из самых сложных включает в себя использование уязвимостей в темах WordPress для установки бэкдоров. Бэкдоры позволяют злоумышленникам обходить аутентификацию, предоставляя им несанкционированный доступ к сайту, часто незамеченный. Попав на сайт, злоумышленники могут похищать конфиденциальные данные, изменять контент, распространять вредоносное ПО и многое другое.
В статье мы рассмотрим методы, используемые хакерами для создания бэкдоров в уязвимых темах, последствия таких вторжений и практические шаги, предпринимаемые для защиты вашего WordPress-сайта от атак с использованием бэкдоров. Поняв эти тактики, вы сможете проактивно защитить свой сайт от несанкционированного доступа и обеспечить его безопасность.
#webdev #WordPress #Security
Please open Telegram to view this post
VIEW IN TELEGRAM
В этой статье рассматриваются различные эксперименты и попытки применения паттерна ADR к контроллерам Symfony. Поехали! 😎
#webdev #Symfony
Please open Telegram to view this post
VIEW IN TELEGRAM
Я использую термин «библиотека CSS» для обозначения хранилища, существующего для предоставления стилей для компонентов. Возможно, «CSS-библиотека компонента» будет более точным? Эта статья, по сути, представляет собой сборник не совсем обоснованных мнений, представленных в виде предложений.
Одна из основных идей, лежащих в основе использования CSS-библиотеки для компонентов, заключается в том, что пользователь библиотеки должен иметь возможность настраивать представление компонента, не касаясь CSS. Разработчик должен иметь возможность назвать нужную конфигурацию компонента в HTML, и стилизация должна просто работать. Давайте поговорим о том, как можно сделать API более интуитивным и простым в управлении.
#webdev #HTML #CSS #WebComponent
Please open Telegram to view this post
VIEW IN TELEGRAM
Многие разработчики сосредотачиваются на разработке основных функций приложения и практически не уделяют внимания управлению памятью, пока не исчерпают её, и их приложения не начнут сбоить, зависать или испытывать случайные падения производительности.
Оперативная память компьютеров ограничена, и всегда лучше эффективно использовать выделенные ресурсы. Попытка запустить приложение, потребляющее много памяти, на компьютере или сервере с недостаточным объемом памяти может привести к сбою в самый неподходящий момент, что негативно скажется на работе пользователей. Кроме того, большой объем памяти может повлиять на работу других приложений и фоновых служб. Если запустить приложение, потребляющее много памяти, в облаке, где ресурсы измеряются и оплачиваются по факту их использования, вы, скорее всего, получите большой счет.
Большой объем памяти может привести к нежелательным последствиям. Читайте далее, чтобы узнать, что такое управление памятью, и найти советы по снижению потребления памяти приложением Python.
#webdev #Python #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы еще не читали мою статью в блоге "Обновление сайта к 2025 году", рекомендую вернуться и прочитать её, поскольку в ней рассказывается о некоторых интересных вещах, которые я делаю для того, чтобы сайт идеально подходил для моего рабочего процесса.
Одна из вещей, которую я добавил, - это возможность встраивать код шаблона Blade в файл Markdown, что позволяет создавать пользовательские компоненты Blade для записей блога и затем добавлять их в Markdown напрямую.
Несколько человек спросили меня, как я это делаю, и я решил показать вам.
#webdev #Laravel #Blade #Markdown
Please open Telegram to view this post
VIEW IN TELEGRAM
WordPress - невероятно мощная и гибкая платформа для создания веб-сайтов, но вместе с этой мощью приходит и необходимость тщательного соблюдения правил безопасности. Одной из опасных уязвимостей WordPress и веб-приложений в целом является атака SQL-инъекции (SQLi). SQL-инъекции используют незащищенные запросы к базе данных, позволяя злоумышленникам получить доступ, манипулировать и потенциально скомпрометировать всю базу данных. Если злоумышленникам удается осуществить атаку с использованием SQL-инъекций, они могут похитить конфиденциальные данные, изменить записи, создать черные ходы и даже взять систему под контроль.
В статье подробно рассматриваются уязвимости SQL-инъекций в WordPress, различные методы атак SQLi, потенциальное воздействие этих атак и лучшие методы защиты запросов к базе данных WordPress от SQLi. Используя эти стратегии, вы сможете защитить свой сайт, его данные и своих пользователей от потенциальных угроз.
#webdev #WordPress #Security
Please open Telegram to view this post
VIEW IN TELEGRAM
empty() чаще, isset() в PHP, и вы должны тожеПри разработке на PHP эффективная обработка проверок переменных очень важна для обеспечения надежности и безошибочности кода. Для этого часто используются две языковые конструкции -
empty() и isset(). Однако во многих случаях выбор empty() может быть предпочтительнее, isset(), в первую очередь потому, что empty() охватывает почти все сценарии, используемые isset(), наряду с дополнительными проверками. В статье рассматривается, почему в PHP лучше использовать empty(), и демонстрируется на примерах кода.#webdev #PHP #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
Я только что написал в блоге о способе передачи информации от элемента, имеющего временную, к его потомкам. Идея заключается в том, чтобы установить CSS свойства с помощью
@property, а @keyframe будет анимировать их, таким образом, потомки получат к ним доступ.#webdev #CSS
Please open Telegram to view this post
VIEW IN TELEGRAM
Как разработчики, мы понимаем, насколько важен чистый, последовательный код для поддержки масштабного приложения Laravel. Хорошо отформатированный код не только повышает читабельность, но и обеспечивает согласованность в команде и помогает избежать досадных споров о форматировании при проверке кода.
Используйте Pint, мощный инструмент, представленный экосистемой Laravel, для автоматического форматирования PHP-кода в соответствии с лучшими практиками.
В статье мы рассмотрим, как интегрировать Pint в приложение Laravel и сделать ещё один шаг вперёд, запустив Pint внутри контейнера Docker используя Docker Compose.
Такой подход обеспечивает согласованность форматирования кода в разных средах и облегчает разработчикам, использующим различные настройки, поддержание единообразия в кодовой базе. Давайте погрузимся в детали!
#webdev #Laravel #Pint #Docker
Please open Telegram to view this post
VIEW IN TELEGRAM
Знакомство с новыми функциональными возможностями языков программирования сродни празднику — оно наполнено предвкушением и волнением от открытия чего-то нового. Благодаря предлагаемым функциям ECMAScript 2024 (ES2024) разработчики JavaScript находятся на пороге знакомства с новыми инструментами, обещающими сделать кодирование более эффективным, читабельным и надежным. От интуитивно понятного синтаксиса ожиданий верхнего уровня до надежности неизменяемых записей и кортежей - ES2024 содержит множество тщательно отобранных усовершенствований, призванных расширить возможности разработчиков и обогатить экосистему JavaScript.
Давайте познакомимся с некоторыми из них и узнаем, как они могут улучшить JavaScript.
#webdev #JS #JavaScript #ES2024
Please open Telegram to view this post
VIEW IN TELEGRAM
Две важнейшие особенности грядущей версии PHP 8.4 - это хуки свойств и асимметричная видимость (или сокращенно "aviz"). Мы с Ильей Товило работали над ними в течение двух лет, и наконец-то они почти готовы!
Хорошо, и что теперь?
Вместо того чтобы просто повторять, что написано в соответствующих RFC (в блоге есть много постов, посвященных этому), сегодня хочу пройтись по реальному приложению, над которым работаю в качестве сайд-проекта и часть которого только что переделал под использование хуков и aviz. Надеюсь, это позволит лучше понять практическую пользу этих инструментов, а также то, где ещё могут остаться неровности.
Один из основных вариантов использования хуков - не использовать их: Они существуют на случай, если понадобится, так что не нужно делать шаблонные методы
getter/setter "на всякий случай". Однако это не единственное их применение. Они также очень хороши в сочетании со свойствами интерфейса и делегированием. Давайте посмотрим.#webdev #PHP
Please open Telegram to view this post
VIEW IN TELEGRAM
Я часто говорю, что Shadow DOM - это антипаттерн. Меня за это часто критикуют, потому что в течение многих лет культ JS-фреймворка позиционировал Shadow DOM как убийственную особенность Web-компонентов.
Но одна из самых больших проблем, создаваемых Shadow DOM для веб-компонентов, связана со стилизацией.
Он ломает каскад и делает стилизацию вещей в миллион раз сложнее и более повторяющейся, чем она должна быть. Сегодня мы рассмотрим, почему это плохо, и какие у нас есть варианты.
Давайте покопаемся!
#webdev #CSS #WebComponent
Please open Telegram to view this post
VIEW IN TELEGRAM
Вас раздражает медленное форматирование Prettier при сохранении файлов? Многие разработчики сталкиваются с этой проблемой, особенно в крупных проектах. Вот как можно значительно повысить производительность Prettier без ущерба для качества кода.
#webdev #VSCode #Prettier #tips
Please open Telegram to view this post
VIEW IN TELEGRAM