Frontender Libs - обзор библиотек JS / CSS
Open in Telegram
Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront Купить рекламу: https://telega.in/c/sWebDev
Show more7 720
Subscribers
-324 hours
-217 days
-5430 days
Posts Archive
IT Верстальщик - канал про верстку и бэкенд в телеграм.
Этот канал для тебя, если ты:
- учишь верстку и языки программирования
- работаешь верстальщиком/фронтом
- хочешь выйти на фриланс
- интересуешься бэкендом
- работаешь бэком, но хочешь быть в курсе последних тенденций в верстке и на фронте в целом
PHP | Хранение паролей
Хранить пароли пользователей в базе данных в открытом виде - очень плохая идея. Куда правильней будет хранить его хеш - строка, обычно определённой длины, характеризирующая пароль. Сгенерировать хеш можно, например, функциями
md5() или sha1(), но ввиду быстроты работы этих алгоритмов шифрования это так же не даст необходимой безопасности. Как же быть?
С пятой версии PHP появились встроенные методы хеширования паролей. Так, получить хеш пароля можно функцией password_hash('ПАРОЛЬ', PASSWORD_DEFAULT), его можно без опаски сохранить в базу данных. А проверить валидность пароля можно функцией password_verify('ПАРОЛЬ_ТРЕБУЮЩИЙ_ПРОВЕРКИ', 'ПОЛУЧЕННЫЙ_РАНЕЕ_ХЕШ').
Пример использования
$pass = '8aZdYaB0';
$hash = password_hash($pass, PASSWORD_DEFAULT);
if (password_verify($pass, $hash)) {
echo ("Пароль верный");
} else {
echo ("Пароль неверный");
}
echo (", ");
if (password_verify('1s8', $hash)) {
echo ("Пароль верный");
} else {
echo ("Пароль неверный");
}Как создавать с помощью React.js серьезные проекты?
Освойте продвинутые навыки на демо-уроке «Разработка библиотеки компонентов на React + Storybook».
22 сентября на бесплатном вебинаре вы научитесь разрабатывать презентационные компоненты используя storybook. А также рассмотрите настройки, возможные расширения и как правильно выстроить библиотеку презентационных компонентов. Узнаете, как сделать snapshot тестирование с помощью Loki.
Демо-занятие является частью программы онлайн-курса «React.js Developer», который поможет вам раскрыть возможности этого фреймворка.
Пройдите вступительный тест для регистрации
CSS | Flex-basis
Свойство flex-basis может принимать те же значения, что и свойства width или height. Значение по умолчанию — auto.Размер может относиться к ширине по умолчанию и высоте (в случае flex-direction: column).
.item {
flex-grow: 0;
flex-shrink: 0;
flex-basis: 50%;
}
В приведенном выше примере ширина первого элемента составляет 50%. Важно установить для параметра flex-grow значение 0, чтобы размер элемента не превышал 50%.PHP | Установка зависимостей без Composer
Менеджер пакетов - это, конечно, хорошо, но что делать, если нет возможности им воспользоваться (например, если хостинг его не поддерживает)?
В такой ситуации на помощь приходит сервис PHP download. С его помощью можно выбрать необходимые пакеты и скачать их в виде обычного zip архива. Сервис всё делает за нас, останется лишь скопировать содержимое архива на сайт и подключить autoload.php.
Node.js | node-fetch
node-fetch - npm пакет, который позволяет отправлять сетевые запросы на сервер (аналогично window.fetch браузерного API).
Преимущества
- Почти полностью совместим с window.fetch API
- Использует нативные потоки Node как для тела запроса, так и для ответа
- Использует нативные promise и async функции
Работаете с JavaScript?
Приходите за продвинутыми навыками на демо-урок «GraphQL на сервере и на клиенте».
17 сентября на открытом уроке вы разберете язык запросов GraphQL, познакомитесь с ним как стороны сервера на базе Apollo Server, так и со стороны клиента Apollo Client. В конце занятия преподаватель Доронин Дмитрий проведет демонстрацию по миграции приложения с REST API на GraphQL.
Демо-урок входит в в программу онлайн-курса «JavaScript Developer. Professional», предназначенного для начинающих JS-разработчиков и бэкендеров, желающих переквалифицироваться в фуллстек.
Для регистрации пройдите вступительный тест
HTML | Target
Элемент
<a> поддерживает атрибут target
Его основные значения
_self — страница загружается в текущее окно ( по умолчанию );
_blank — страница открывается в новом окне браузера;
_parent — страница загружается во фрейм-родитель;
_top — страница загружается в полное окно браузера.
_new — страница загружается в новом окне, и все следующие переходы с этим атрибутом будут открываться в этом же окне ( где бы оно не находилось ).Какое CSS свойство позволяет печатать справа-налево?
SQL | Произведение значений столбца
К сожалению, эту задачу нельзя решить стандартныйми функциями SQL практически ни в одной СУБД. Но можно пойти через свойства логарифмов: логарифм произведения равен сумме логаримов. Следовательно, если мы применим exp к сумме логарифмов значений, мы получим нужный результат:
SELECT exp(SUM(log(value))) product FROM (
VALUES (2),(3),(4),(5)
) X(value);
Однако данное решение не будет работать с числами, которые меньше либо равны нулю, так как для них логарифм не определён.
Для учета "недопустимых" значений доработаем наше решение в соответствии со следующим алгоритмом:
- Если среди значений есть нули, то результатом будет 0.
- Если число отрицательных значений нечетное, то домножаем произведение абсолютных значений столбца на -1.
- Если число отрицательных значений четное, то результатом будет произведение абсолютных значений столбца.
В результате получаем возможность считать произведение значений столбца.Куда и как развиваться разработчику с опытом? Узнайте на бесплатных пробных уроках онлайн-курсов «Java Developer. Professional», «Android Developer. Professional» и «Flutter Mobile Developer» от OTUS:
📌«Event-Driven Microservices»: https://otus.pw/alHw/
— Разберемся, что такое Event-Driven архитектура, чем она полезна и какие проблемы помогает решить.
📌«Dependency Injection с Hilt»: https://otus.pw/6ubq/
— Познакомимся с Hilt Api и сравним его с уже знакомым API Dagger2. Посмотрим, что hilt-compiler генерирует под капотом.
📌«Что и как можно анимировать во Flutter?»: https://otus.pw/0QDA/
— Выясним, как устроена анимация во Flutter. Разберём различные кейсы (Implicit Animations, AnimationController, AnimatedWidget, Flare).
Регистрируйтесь сейчас — напомним в день вебинара!
Available now! Telegram Research 2025 — the year's key insights 
