Cododel.dev | Александр
98 subscribers
472 photos
62 videos
7 files
200 links
Alexander Cododel. Full Stack Web Dev since 2019.

📍 Канал: мысли и проекты
📍 Чат: @cododel_chat
📍 Связь: @cododel

🔗 https://cododel.dev
Download Telegram
🖼️ Как ChatGPT помог мне с проектированием базы данных

Решил переписать один проект на FilamentPHP. (Это новый и мощный инструмент для создания админ панелей в Laravel, о котором я уже упоминал в своем предыдущем посте.)

В чем была проблема?
И почти час размышлял под фильмец: "А как бы аккуратненько спроектировать новое решение для хранения выходных дней, которые исполнитель указывает у себя в профиле"...

Сейчас это JSON поле, хранящее массив с номерами дней недели.
Поддерживается как в PostgreSQL, так и в MySQL, а Laravel довольно удобно позволяет с ними работать, в том числе и учитывать в запросе.
Но кто понял, тот понял - это очень плохая идея 😃

Как я искал решение?
Я долго думал над разными вариантами, но ни один из них не казался мне достаточно хорошим и оптимальным.

Осенило!
И тут вспомнил, что недавно читал в одном из маркетинговых телеграм каналов.
Там упоминался ChatGPT в качестве помощника в поиске вдохновения, в лучшем случае - идеи.
В таком случае качество того, что она пишет - роли большой не играет.

Я написал запрос в свободной форме, добавив все детали и требования, которые были важны для меня. Вместо того, чтобы пытаться угадать заголовок страницы, на которой может быть решение задачи 😃
Одна из представленных идей - мне особенно понравилась, и я решил ей реализовать.

А т.к. ответ оказался на столько банально простым - заодно и поделиться)
Представляю вашему вниманию, как по мне, неплохой кейс 🤫
(Скрин, и PDF файл выше)

А вы когда-нибудь использовали ChatGPT для своих задач? Если да, то расскажите как это было, попадались ли интересные кейсы?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
В приложении Альфа-банка обнаружил рекламу Тинькофф инвестиций 😐🤔
😁2
Media is too big
VIEW IN TELEGRAM
🖼️ Автогенерация месседжей для коммитов 💣
Please open Telegram to view this post
VIEW IN TELEGRAM
🕐 В 13:08 Ждем длинный пост
Please open Telegram to view this post
VIEW IN TELEGRAM
🪲 Эффективный анализ багов

Ситуация:

При разработке админ-панели для проекта я решил использовать новый для меня инструмент - FilamentPHP (библиотека для создания админ-панелей). В форме редактирования пользователя есть поле для заполнения номера телефона.
В документации я нашел фишку, позволяющую настроить маску для него одной строкой кода, например, +7 (999) 999-99-99.
В процессе перепроверки функционала выяснилось, что она работает крайне странно:
• Чтобы она сработала, нужно снять фокус с поля, кликнуть на него и снова снять фокус.
• Иногда и это не помогает, нужно сделать так несколько раз.
• И пару раз она работала как надо, подставив плюс, семерку и другие символы прямо в процессе заполнения.
Я думал, что где-то ошибся, так как на сайте JavaScript библиотеки, которая используется, в демо-примере все отлично работает.
DEMO

Как я обычно делаю:
Чтобы разобраться с багом, я иду от самой проблемы вглубь кода, при этом часто добираюсь до исходников фреймворка или даже самой библиотеки, которая используется во фреймворке.
Со временем я начал использовать для этого дебаггеры, что немного упростило процесс. Но несмотря на все это, он всегда отнимает много времени.

Как я сделал в этот раз:
Я немного отвлекся, держа в уме проблему, и додумался заглянуть в репозиторий библиотеки FilamentPHP. Там я среди открытых issues (вопросов, проблем, багов) вбил в поиск слово mask, и "О, чудо-чудное!" - разобрался с масками.
Оказывается, проблема есть только в Firefox и, вероятно, связана с интеграцией в Livewire, на котором основан FilamentPHP, и способом подключения масок или AlpineJS внутри самого Filament.
Источник (Там даже есть предложения решения проблемы)

Выводы:
Наконец я начал понимать порядок действий, как искать проблему, вместо того, чтобы копаться в исходниках библиотек 😄. В принципе, и без этого я разбирался, но это могло занять прилично времени, которое в большинстве случаев приходится исключать из отчетов по работе. Но на сроки это все равно всегда отражается...
Please open Telegram to view this post
VIEW IN TELEGRAM
😉 Забыл предупредить:
У меня новый YouTube канал, и на нем снова идут стримы!

На старом не будет ничего интересного, а Twitch я официально забрасываю ради эксперимента над алгоритмами ютуба, и чтобы не париться за ограничения.
Позже сделаем с вами свой ReStream сервис, через который я уже буду запускаться на нескольких площадках.

Подписываемся, чтобы ничего не пропустить!
😉 @WebSmithCode

Помимо стримов будут обучающие ролики в порядке возрастания сложности 😊
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 FilamentPHP - композитное поле адреса

Композитное поле - это поле, которое состоит из нескольких других полей, при этом хранится в базе данных в одной, единственной, колонке.

Иногда приходится делать композитные поля, чтобы добавить валидацию на отдельные части строки, стандартизировать хранимое значение или просто разбить для удобства пользования.
Один из таких примеров: поле адреса.

В моем случае - это обычная строка, по типу "Брянская область, г. Брянск, ул. Романа Брянского, д. 15/1, кв. 276".
Она хранится в базе данных именно в таком виде, при том на самом сайте для нее 7 полей: Область, Улица, Город, Дом, Подъезд, Этаж, Квартира.
Задача такова: Упростить работу менеджеров, сняв с них ответственность за стандартизацию адреса

И в FilamentPHP сейчас нет такой возможности...
Я убил примерно два с половиной часа, чтобы придумать рабочее решение, и справился! 🥳

Представляю вам компонет композитного поля адреса для FilamentPHP 😃
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥1
Мне говорят, что лучше хранить адрес по частям 🙂

Как я понимаю главный плюс в том, что можно задать больший вес городу и улице для сортировки по релевантности в поисковой выдаче 🤔

Вот эту статью в пример привели
1🤔1
Media is too big
VIEW IN TELEGRAM
😤 Небольшое разочарование в плагинах FilamentPHP

Плагинов много, но они мне перестают нравиться некоторые
Сегодня уже три попробовал плагина со сложным функционалом и они все не допиленные

- Плагин для генерации API из ресурсов - не задает route names
- Первый плагин TinyMCE - поддерживает только шаблоны захардкоженные в config, из которого не доступа к базе данных (но в теории можно извернуться и ссылку на эндпоинт поставить, теперь как я понял уже, когда разобрался), но у него нет нормальной темной темы и версия редактора v5
- Второй плагин редактора - с инвертированной логикой подключения шаблонов, что "обескураживает", так сказать 😆
Но и продумать логику настройки самого редактора можно полгубже, есть функции, которые не затронуты (+ это последняя версия с доступным плагином шаблонов в бесплатной версии)

Пока разбирался с API - понял, что проще сделать обыкновенный Laravel Resource, который предназначен для видоизменения структуры модели, и ответа от сервера, при том можно просто из роута возвращать сразу ресурс, плюс более продуманый механизм, т.к. штатный от лары

А пока разбирался с редакторами - понял, что у меня вообще до сих пор плагинов не стоит ни одного (кроме медиа плагина, который я даже не использовал еще ни разу)

🎁 И бонусом:
Меня очень привлекает вот такой плагин (Для подписи от руки)
Но в нем подпись не сохраняется в базу данных, на сколько я понимаю, и это только ожидается в будущих обновлениях.
Хотя сделать довольно просто.
Получается этот плагин в ту же копилку недопиленных плагинов, который просто дает скачать картинку, которую потом можно загрузить вручную в отдельное поле.
Но я его тоже форкну и допилю, т.к. подпись можно экспортировать в SVG формате, а значит можно привязать всю механику к текстовому полю, и сохранять прям в базу данных, дополнительным полем к одогвору, или вообще в теле договора - а не отдельным файлом


💭 ...Если в кратце, то я попробовал уже 3 плагина и изучил еще один

Итог: 4 из 4 - сырые и не допиленные, надо исправлять для полноценного выпуска в продакшн
Please open Telegram to view this post
VIEW IN TELEGRAM
🙃 Но в целом это все вообще не обязательно
Встроенного функционала хватает я считаю для любой панели средней сложности.

А для высокой сложности - это все еще не Wordpress, не достаточно еще плагины развились, но почти уверен что на ее базе выпустят полноценную CMS, если все пойдет хорошо (уже есть в качестве плагина)
Please open Telegram to view this post
VIEW IN TELEGRAM
Я топ 3 автор - Fullstack разработчик в тенчате 😆
🔥2🎉1
Делаю парсер СберМегаМаркета по категориям

Соберу несколько баз, посмотрю спрос

Первая на подходе 32тыс карточек пылесосов
С выгрузкой любом удобном формате 🤪

Ещё не рассказывал, какие у меня дикие проблемы с Авито, так что походу буду под проверку гипотезы делать сайт с СЕО 😓

Подробнее
🫴
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Интересное направление бизнеса: парсинг.

За парсинг компаний по гео можно давать оценку около 2-5 рублей за контакт, в зависимости от объема и требуемого формата файла.
На объемах нужно цену пересмотреть обязательно, 2р дороговато будет

Вилка:
Первая цена:
За точку на карте:
< 500 - 5 рублей
< 1000 - 4 рубля
<2000 - 3 рубля
> 2000 - 2 рубля
Вторая цена:
5 рублей за контакт
Минимальная сумма: 1500 рублей

Суть в том, что можно быстро оценить объем компаний, расположенных в заданном гео, на картах.
Но неизвестен процент компаний, у которых указан номер телефона.

В первом случае клиент может либо взять оптом объем работы и сэкономить, если есть нужный объем, а подрядчик зафиксировать стоимость.

Во втором же случае заказчик платит только за результат (фактически полученные контакты), а подрядчик получает повышенную ставку.
Вероятность отработать в минус маловероятна, так как большинство компаний все же указывают номер телефона для связи, а работа занимает мало времени и не требует писать код под каждого заказчика, так как это отлично автоматизируется, и достаточно указать параметры и формат данных.

Отличный вариант для старта с фриланса с низким порогом входа 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Если кто столкнулся - соре, только сейчас узнал
Это раньше был основой чат, а теперь чисто по комментарии, и я подчищал зачем-то его.
Но не знал что все в бан улетели 😅

Поправил, добро пожаловать )
Cododel.dev | Александр
👩‍💻 А всё, отбой по рабочему месту, нет его.. Макбук 13 дюмов купил Теперь работаю где попало и это удобно 😂
Рабочее место все таки снова хочу

Просматриваю старые посты и наткнулся на этот

Собираюсь рабочее место делать в течение месяца.
Все таки теперь провожу кучу времени дома, и хочется удобства 😊

Как на счёт полнометражного ролика на ютуб?
🐞 Делайте говорящие ошибки

Полезная штука
Я каждый раз попадаюсь и начинаю думать почему не работает XD

А сейчас впн выключить забыл, а мне говорит об этом сразу
Please open Telegram to view this post
VIEW IN TELEGRAM
1
💎 Уникальность AI генерации изображений

Превью поста в криптовалютном канале сгенерировал нейросетью Bing Designer (DALL•E3)

И в голову пришла мысль в Гугле поиском уникальность проверить.

Вердикт: не сказать чтобы прям что-то новое, но очень гибко и довольно удобно 🙃

Запрос был через чат бота с просьбой сгенерировать превью для поста о новом канале про криптовалюту, с уточнением тонов (темные, синие тона с желтым акцентом)

Но все равно мне этот вариант даже больше нравится, учитывая что он довольно быстро из выдает сразу пачкой из 4 штук.

А так же так как это чат бот, он просит из обычного разговорного языка перемалывает в промпт для сетки генерации изображений.
И опять же так как это чат бот - можно попросить внести детали и исправить неточности. (Но распространяется это только на промпт, так что в любом случае изображения будут сгенерированы с новым аидом, а это в свою очередь уже значит, что и изображения будут другие)
Please open Telegram to view this post
VIEW IN TELEGRAM