Парсинг сайтов
Я никогда особо не интересовался парсингом сайтов, потому что мне это НЕ интересно.
Однако знаю, что многие любят эту тему, поэтому вот интересная статья с ответами на вопросы.
Кстати, если не вкурсе, то парсинг - это вытаскивание информации со страниц сайтов. Например, вытащить и сохранить в свою базу данных товары и цены с mvideo.
https://vc.ru/dev/496144-20-mln-rubley-v-god-na-parsinge-saytov
#parsing
Я никогда особо не интересовался парсингом сайтов, потому что мне это НЕ интересно.
Однако знаю, что многие любят эту тему, поэтому вот интересная статья с ответами на вопросы.
Кстати, если не вкурсе, то парсинг - это вытаскивание информации со страниц сайтов. Например, вытащить и сохранить в свою базу данных товары и цены с mvideo.
https://vc.ru/dev/496144-20-mln-rubley-v-god-na-parsinge-saytov
#parsing
👍3
Forwarded from Макс Орлов Блог
Спешу поделиться радостью
Осуществилась давняя мечта - приобрёл роцкерский мотоцикл.
Как ребёнок, не спал пару ночей от радости🤣 Мужики поймут!
Конечно сезон покатушек уже закончился, потому что покупка спонтанная и неожиданная.
Так что катаюсь крайние деньки, но уже могу сказать, что ездить на этом малыше не просто, но кайфово!
Желаю тебе тоже побольше таких ярких моментов и хороших выходных!
Осуществилась давняя мечта - приобрёл роцкерский мотоцикл.
Как ребёнок, не спал пару ночей от радости
Конечно сезон покатушек уже закончился, потому что покупка спонтанная и неожиданная.
Так что катаюсь крайние деньки, но уже могу сказать, что ездить на этом малыше не просто, но кайфово!
Желаю тебе тоже побольше таких ярких моментов и хороших выходных!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥6🎉5
Как работает цикл событий в JavaScript
Полезная статья для понимания механизма асинхронной работы JS.
https://habr.com/ru/post/680846/
#js #async
Полезная статья для понимания механизма асинхронной работы JS.
https://habr.com/ru/post/680846/
#js #async
👍3
Просмотр логов в Laravel
Тестирую бесплатный пакет для просмотра логов.
Первое впечатление - нравится!🙂
https://arunas.dev/log-viewer-for-laravel
Приятно работать, когда есть качественные готовые решения 😍
#laravel #log #logs #logging
Тестирую бесплатный пакет для просмотра логов.
Первое впечатление - нравится!
https://arunas.dev/log-viewer-for-laravel
Приятно работать, когда есть качественные готовые решения 😍
#laravel #log #logs #logging
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Пакет для автоматического создания и удаления дополнительных серверов
Например, наше приложение работает с разной нагрузкой - днём она высокая, а ночью маленькая.
Или у нас есть очереди, которые обрабатывают разное кол-во задач. То густо, то пусто 😃
Пакет будет каждую минуту запускать функцию, в которой мы говорим сколько серверов нужно в текущий момент.
Это позволяет сильно экономить на серверах.
Получается такой мини-кубернетис с автоматическим горизонтальным масштабированием.
Серверы создаются из заранее подготовленного образа. Прикольная тема, если что будем иметь ввиду.
https://spatie.be/docs/laravel-dynamic-servers/v1/introduction
#laravel #server #servers
Например, наше приложение работает с разной нагрузкой - днём она высокая, а ночью маленькая.
Или у нас есть очереди, которые обрабатывают разное кол-во задач. То густо, то пусто 😃
Пакет будет каждую минуту запускать функцию, в которой мы говорим сколько серверов нужно в текущий момент.
Это позволяет сильно экономить на серверах.
Получается такой мини-кубернетис с автоматическим горизонтальным масштабированием.
Серверы создаются из заранее подготовленного образа. Прикольная тема, если что будем иметь ввиду.
https://spatie.be/docs/laravel-dynamic-servers/v1/introduction
#laravel #server #servers
👍5
Обработка PDF
Куча инструментов для работы с PDF - конвертация, редактирование, наложение водяных знаков и тд.
Есть программный интерфейс (API) 👌
https://www.ilovepdf.com
#pdf
Куча инструментов для работы с PDF - конвертация, редактирование, наложение водяных знаков и тд.
Есть программный интерфейс (API) 👌
https://www.ilovepdf.com
👍9
Laravel + Inertia + Vue (React)
Пошаговая инструкция по разработке простого проекта на современном стеке.
https://bootcamp.laravel.com
#laravel #inertial #bootcamp
Пошаговая инструкция по разработке простого проекта на современном стеке.
https://bootcamp.laravel.com
#laravel #inertial #bootcamp
🔥9👍3
Laracon - конференция Laravel
На конференции, помимо прочего, показали, что с помощью Laravel Livewire теперь можно создавать настоящие SPA с серверным рендерингом через привычный шаблонизатор Blade - практически без JavaScript!
Ссылка на фрагмент, где Калеб (разработчик Livewire и AlpineJS) показывает этот функционал:
https://youtu.be/f4QShF42c6E?t=7949
#laracon
На конференции, помимо прочего, показали, что с помощью Laravel Livewire теперь можно создавать настоящие SPA с серверным рендерингом через привычный шаблонизатор Blade - практически без JavaScript!
Ссылка на фрагмент, где Калеб (разработчик Livewire и AlpineJS) показывает этот функционал:
https://youtu.be/f4QShF42c6E?t=7949
#laracon
🔥7
Создание фронтенда НЕ покидая PHP 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
Изменение состояния сущности
Изображения (скрины) отправлю в следующем сообщении.
Наши модели и база данных содержат поля, отвечающие за состояние сущности.
Например, пользователь может быть заблокирован или РАЗблокирован.
Способ 1
В этом случае можно добавить в таблицу
Тогда админ сможет блокировать пользователя, переключая чекбокс в админке.
Этот пример я накидал на первом изображении 👇
Проблема
Рано или поздно админ спросит - а когда был заблокирован этот юзер?
Начинающий разработчик скорее всего пожмёт плечами и скажет, что таких данных нет.
А опытный разработчик заглянет в логи и ответит на поставленый вопрос.
Если, конечно, значения поля НЕ менялось напрямую в базе данных 😁
Решение
В любом случае ничего страшного НЕ произойдёт, но нормальный разработчик сделает выводы, что в следующий раз лучше сразу хранить дату и время блокировки юзера.
(Способ 2)
Для решения этой задачи, можно вместо
В таком случае мы получаем всё тоже самое (переключатель ```null/datetime```) + имеем дату блокировки пользователя.
Этот пример показан на втором изображении 👇
Признавайся, делал так?
Проблема
Однако этот способ тоже НЕ идеальный, потому что здесь есть дата блокировки пользователя, НО нет даты его РАЗблокировки 😁
Получается, что задача решена наполовину, а для нас (хацкеров) это НЕприемлемо.
Решение
Логичное решение - добавить отдельное поле для хранения времени изменения переключателя.
Способ 3
Этот вариант сочатает в себе оба предыдущих способа и, наверно, является наиболее универсальным.
Теперь главное НЕ забыть обновлять дату и время ```blocked_at``` в момент изменения поля
Внимание на третье изображение 👇
Проблема
Но помимо поля
И тут возникает логичный вопрос - добавлять дополнительное поле с временем изменения к каждому из полей юзера?
То есть по-хорошему, мы хотим знать какие поля менялись? когда менялись? и значения ДО и ПОСЛЕ?
Решение
Начинающий разработчик, возможно, действительно начнёт добавлять отдельные поля.
Хотя бы для некоторых свойств пользователя (самых важных).
Но мы же не такие? Мы будем думать над универсальным "оружием".
А кто-то пойдёт гуглить готовое решение. Лентяй 🫵
Способ 4
Все выходные мы думали над решением и есть же!
1. Можно создать отдельную модель, например
2. Привязываем эту модель к любой другой модели нашего приложения (через трейт HasChanges).
3. Указываем какие поля мы хотим отслеживать (через абстрактный метод в трейте).
4. На основе событий модели (created, updated) наш трейт автоматически записывает историю в базу данных (таблица changes).
5. Мы в любой момент видим лог всех изменения наших записей: дату, время, значения ДО и ПОСЛЕ.
Изображение НЕ прилагаю. Предлагаю тебе самому подумать на решением 😝
Итог
Подобное решение иногда раально упрощает жизнь.
Особенно, если пользователь заявляет, что его аккаунт взломали 😃
Мы можем увидеть: когда был вход, когда изменился email, пароль и тд.
Ставь лайк, если полезно! Может запишем видео на эту тему.
ПС: если руками лазить в базу, то тут ничего не поможет 😁
ППС: если ооочень хочется, то можно 😉
#php #laravel #db #bool #boolean
Изображения (скрины) отправлю в следующем сообщении.
Наши модели и база данных содержат поля, отвечающие за состояние сущности.
Например, пользователь может быть заблокирован или РАЗблокирован.
Способ 1
В этом случае можно добавить в таблицу
usersполе
blockedс типом
boolean.
Тогда админ сможет блокировать пользователя, переключая чекбокс в админке.
Этот пример я накидал на первом изображении 👇
Проблема
Рано или поздно админ спросит - а когда был заблокирован этот юзер?
Начинающий разработчик скорее всего пожмёт плечами и скажет, что таких данных нет.
А опытный разработчик заглянет в логи и ответит на поставленый вопрос.
Если, конечно, значения поля НЕ менялось напрямую в базе данных 😁
Решение
В любом случае ничего страшного НЕ произойдёт, но нормальный разработчик сделает выводы, что в следующий раз лучше сразу хранить дату и время блокировки юзера.
(Способ 2)
Для решения этой задачи, можно вместо
booleanдля поля
blockedиспользовать дату и время, например
timestampс возможностью НЕ указывать значение (nullable).
В таком случае мы получаем всё тоже самое (переключатель ```null/datetime```) + имеем дату блокировки пользователя.
Этот пример показан на втором изображении 👇
Признавайся, делал так?
Проблема
Однако этот способ тоже НЕ идеальный, потому что здесь есть дата блокировки пользователя, НО нет даты его РАЗблокировки 😁
Получается, что задача решена наполовину, а для нас (хацкеров) это НЕприемлемо.
Решение
Логичное решение - добавить отдельное поле для хранения времени изменения переключателя.
Способ 3
Этот вариант сочатает в себе оба предыдущих способа и, наверно, является наиболее универсальным.
Теперь главное НЕ забыть обновлять дату и время ```blocked_at``` в момент изменения поля
blocked.
Внимание на третье изображение 👇
Проблема
Но помимо поля
blockedу юзера есть много других полей.
И тут возникает логичный вопрос - добавлять дополнительное поле с временем изменения к каждому из полей юзера?
То есть по-хорошему, мы хотим знать какие поля менялись? когда менялись? и значения ДО и ПОСЛЕ?
Решение
Начинающий разработчик, возможно, действительно начнёт добавлять отдельные поля.
Хотя бы для некоторых свойств пользователя (самых важных).
Но мы же не такие? Мы будем думать над универсальным "оружием".
А кто-то пойдёт гуглить готовое решение. Лентяй 🫵
Способ 4
Все выходные мы думали над решением и есть же!
1. Можно создать отдельную модель, например
Change(изменение).
2. Привязываем эту модель к любой другой модели нашего приложения (через трейт HasChanges).
3. Указываем какие поля мы хотим отслеживать (через абстрактный метод в трейте).
4. На основе событий модели (created, updated) наш трейт автоматически записывает историю в базу данных (таблица changes).
5. Мы в любой момент видим лог всех изменения наших записей: дату, время, значения ДО и ПОСЛЕ.
Изображение НЕ прилагаю. Предлагаю тебе самому подумать на решением 😝
Итог
Подобное решение иногда раально упрощает жизнь.
Особенно, если пользователь заявляет, что его аккаунт взломали 😃
Мы можем увидеть: когда был вход, когда изменился email, пароль и тд.
Ставь лайк, если полезно! Может запишем видео на эту тему.
ПС: если руками лазить в базу, то тут ничего не поможет 😁
ППС: если ооочень хочется, то можно 😉
#php #laravel #db #bool #boolean
🔥4
Парни, не поверите.
Решил с 1 сентября подвинуть дела и продолжить запись видосов.
В итоге мотоцикл свалился, как снег на голову - какие тут видосы 😃
Теперь вчера уже подготовил материал для видео, проверил микрофон - сегодня хотел записать.
В итоге мобилизация - какой тут видос 😃
Решил с 1 сентября подвинуть дела и продолжить запись видосов.
В итоге мотоцикл свалился, как снег на голову - какие тут видосы 😃
Теперь вчера уже подготовил материал для видео, проверил микрофон - сегодня хотел записать.
В итоге мобилизация - какой тут видос 😃
Forwarded from Евгений Коровин
Привет, всем!
Ребят по зарез нужен разраб на работу на Laravel в компанию.
Я работаю с середины августа в этой компании. Компания хорошая. Платит исправно. Есть четкое разделение: фронты, бэки, девопс, проектный менеджер, тим-лид, тех писатель и т.д. и т.п.
Так вот нужен бэкендер. ЗП от 100 до 160 тыс. руб. в месяц.
Кому интересно, пишите мне в личку, свяжу с тим-лидом для собеса.
Ребят по зарез нужен разраб на работу на Laravel в компанию.
Я работаю с середины августа в этой компании. Компания хорошая. Платит исправно. Есть четкое разделение: фронты, бэки, девопс, проектный менеджер, тим-лид, тех писатель и т.д. и т.п.
Так вот нужен бэкендер. ЗП от 100 до 160 тыс. руб. в месяц.
Кому интересно, пишите мне в личку, свяжу с тим-лидом для собеса.
👍5