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
Ознакомились с плагинами?
Anonymous Poll
63%
Да
13%
Нет
25%
Я картшока (не участвую)
🖼️ План изучения WordPress

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

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

Удачи 😉

📚 Почитать:
О WordPress - можно изучить все, или хотя бы пройти и глянуть все ссылки со страницы, чтобы отложилось понимание где и что потом искать)
С чего начать
Особенности
Мультисайт

🗂 Важное:
Архитектура WP
Жизненный цикл WP
Терминология
Теги шаблонов
Список всех тегов шаблонов
Модификация темы
Список всех доступных функций WP
Шорткоды
Циклы WP
Функции плагина и хуки
Options API
Работа с REST API
API кастомайзера
Перезапись URL

📂 Дополнительно:
Заметки
Шпаргалка

#WordPress_Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
💎 Как учиться если все на английском?

Напоминаю, что для текстового контента есть переводчик.

А для просмотра видео у нас есть прекрасное решение, в виде Яндекс Браузера с нейросетью на борту, которая в реальном времени озвучивает видео на русский ⭐️

Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
🤫

Интересно к чему такие диалоги приводят?)
Please open Telegram to view this post
VIEW IN TELEGRAM
Cododel.dev | Александр
🤫 Интересно к чему такие диалоги приводят?)
Это был прикол походу 🥴

Я нашел, с какого чата бот пересылал это сообщение 😅
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1😁1
С какими из базовых принципов программирования знакомы?
Anonymous Poll
71%
Чистый код
14%
DRY
7%
KISS
0%
YAGNI
29%
SOLID
29%
🌝 Я не программирую 🌚
Media is too big
VIEW IN TELEGRAM
С чего стартовать в веб разработке на фрилансе
[Для тех, с кем в личке и комментах обсуждали]

Я уже рассказывал, что люблю иногда брать такие заказы под тильду, чисто на JS
С правками, где предыдущий разработчик не справился - вообще в идеале
Чаще всего такие заказы попадаются от дизайнеров, которые сами и делают сайт на тильде.

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

Конкретно в этом случае - сделали ZeroBlock, который выступает в качестве слайдера, но в арабской версии, где актуален RTL, справа нужен отступ, который не будет реализован или описан, наверное, ни в одном гайде.

Так что, считаю - хороший вариант для старта, можно многому научиться и получить постоянных заказчиков)

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


В моих исправлениях использованы принципы:
«Чистый код» - без комментариев, но в виде названий переменных, классов и функций
«DRY» и «SOLID» - в виде хелперов и вынесенной логики в функции
«KISS» - просто не применен, так как тут можно просто в потоке оставить было не повторяющуюся логику, не вынося в функции, добавив комментарии
«YAGNI» - частично нарушен (см “KISS”)
Помните, что эти принципы - это не законы, а руководства, которые помогают вам писать лучший код.


Смотрим пример выполненной работы.

В комментах оставлю скрин с ответом заказчика
🔥1
😎 Принцип DRY в программировании

• Что такое DRY? 🥱
Если по-русски, то “Don’t Repeat Yourself”
(Не поворяйся!)
Вкратце - это значит, что нужно стараться не допускать дублирования кода, и, выносить повторяющуюся логику по мере необходимости.
К примеру для этого во многих проектах и фреймворках есть Helpers, да и в целом сами библиотеки и фремворки не только ускоряют работу, но и решают множество других задач, в том числе DRY

• Зачем он нужен? 🤨
Дублирование кода усложняет поддержку и доработку проекта.
Если изменить логику такого блока - придется вспомнить и изменить все остальные дубли, где эта логика исопльзовалась.

• Как его применять? 🍴
Выше я уже описал пример с хелперами - можно писать свои. Это у нас - создание функций, содержащих повторяющуюся логику, не влияющую на окружение.
А еще это может быть использование циклов или других структур, например - классов и их наследования.

Пример 💻
Функции на скринах взаимодействуют с апи, а соблюдая DRY - еще и создают удобный интерфейс апи.
На первом и втором узображении функции созданы в целях соблюдения DRY.
Но внутри самой функции на первом скрине - этот же принцип и нарушен, так как если в проекте есть другие запросы - придется дублировать логику самого запроса в новые функции.
На втором скрине абсолютно тот же запрос, но логика запроса вынесена в отдельную функцию.
А на третьем скрине - та самая логика, которая покрывает POST и GET запросы, внутри которых снова используется принцип DRY, и они служат лишь интерфейсом для запроса, который исоплняется только в функции request.

• Исключения ⛔️
Важно помнить, что это не панацея и не строгое правило.
Иногда дублирование кода может быть оправдано, если это делает код более понятным или упрощает его.
Главное не переусердствовать и четко понимать, почему сейчас нужно применить или нарушить этот принцип.

Не, ну посмотрите, какая маленькая, аккуратная и понятная функция на втором скрине)
Да post и get функции тоже приятные.
Главное не найти дублирования в request - это предел, дальше все резко ухудшится 😁
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Тестирование Tinkoff кассы

Недавно потребовалось протестировать тинькофф кассу, и вспомнил, что у меня есть простенький скрипт!
Но в репозитории осталась ошибка, он не отправлял токен кассы.
Я исправил ее, но мне этого оказалось мало, и я переписал пол проекта (как всегда... 😆)

Теперь он выглядит так (глядеть скрин)

🖼️ GitHub
🖱 GH Pages
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 CharGPT: Ваш Junior разработчик

Хочу просто чтобы вы увидели, как нужно писать запрос нейросети, чтобы получить качественный ответ.

• Задача
Расчитать заранее уровень цены и размер позиции для усреднения покупки по мартингейлу в трейдинге.
При этом заранее определяется:
— Рабочий бюджет (сколько готов потратить на покупку актива)
— Процент коррекции (на сколько должна упасть цена, когда пора докупать)
— Множитель (на соклько должна быть умножена предыдущая покупка)
— Количество усреднений (максимльное количество докупок)
— Текущая стоимость (от нее расчитывается падения)

• Смотрим скрины
На них запрос, и ответ от GPT-4 от Bing (с включенным поиском по сети)
+ бонусом объяснение полученного скрипта от нейросети
+ бонусом от меня применение данного скрипта в Google Sheet (Написал в AppsScript логику, которая автоматически все расчитывает на лету)

• Важно 🤫
Главное быть последовательным и дать максимально подробную задачу, с как можно меньшим количеством неизветсных.
В целом точно так же как и джуну 😀
Только в случае с нейросетью - она с большей вероятностью выдаст лакончиное решение без вложенных цикллов, а значит более качественное 🏝

• Минусы 🤨
Ну а с другой стороны - тут чуть ли не синьор должен составить ТЗ 😁
А так же только разработчик высокого ранга сможет оценить эффективность рещения.
Но это все равное ускорит ему работу, если нужно продумать формулу или алгоритм.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
💎 Изучаю нейросети [YOLOv8] | Part1

Я решил с нейросетями ознакомиться
Поигрался немного с YOLO тут

Подробнее о моем способе обучения:
• Выбираю интересующую тематику
• В режиме песочницы пробую технологию
• Придумываю под нее проект
• Реализую
• Иду на фриланс решать задачу другим людям

Текущая цель: Нейросеть для решения цифровой капчи

Шаги:
• Начал с того, что посмотрел несколько простейших видосов по нейросетям на широкую аудиторию
Раз, Два, Три, Четыре

• Затем создал Google Collaborotory документ, в котором по Usage из документации попробовал обучить сетку на стандартном датасете и скормить подходящие под мою задачу входные данные, для чего наскринил несколько окон ReСaptchaV2 с официального DEMO

• Когда получилось завести это дело - попробовал поиграться с предренированными моделями разных размеров, посмотрел как оно работает, используя OpenCV для наложения боксов на распознанные сущности в изображении при помощи rectangle и putText методов, которые подсмотрел в Google Gemini (GPT)

• Наигравшись чуть поискал более удобные способы разметки, и нашел на HuggingFace пример современного решения с использованием SuperVision, что сильно сократило и упростило реализацию визуальной разметки определенных сущностей на изображении.

• С этого момента ключевая логика работы с нейросетями по классификации, отслеживанию и детектингу, так что следующим этапом - выбрал ресурс, для которого, в теории, получится применить разрабатываемую нейросеть, и приступил к написанию парсера и сбора датасета изображений капчи.

Спускаемся в комментарии за продолжением
Please open Telegram to view this post
VIEW IN TELEGRAM
Продолжаем тему с нейронками?
Там приличный лонгрид накопился 🤓
Немного оффтоп, по этому в комментах
Anonymous Poll
86%
Поехали 🖥
0%
Предложу другую тему в комментах
14%
Гляну результаты
Нашел баг в FilamentPHP

Сегодня будет уже третий день ресерча 😃

Проблема в несогласованности логики валидации файлов на фронтенде и бекенде

Уже пообщался с опытным разработчиком одного из медиа плагинов в дискорде [ENG]
Он сомневается, что это баг

Но все указывает именно на это
В том числе он говорит что расширение файла никак не связано с его mime type, но мне удалось выяснить обратное, в случае с тем как браузер определяет mime type

Так что ещё подумаю, может сделаю пулл реквест, я уже придумал более менее адекватное решение
А там расскажу детальнее

🖼️ Дискуссия на GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 Деплой NuxtJS на Github Pages

Если кто занимается frontend разработкой, или как-то с ней связан - накидал простой старткит для NuxtJs с Radix-Vue и TailwindCSS на борту, с Bun

И написал bash скрипт, который самостоятельно создает ветку gh-pages, копирует в нее все зависимости, вносит нужные изменения в nuxt.config.ts, билдит проект, удаляет из ветки все лишнее и пушит ветку.

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

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

На самом деле это просто делается, не на каждом проекте пригодится, но ознакомиться рекомендую

После запуска скрипта потребуется только единоразово указать ветку gh-pages в настройках репозитория, во вкладке Pages

И при желании можно автоматизировать деплой и отказаться от ветки gh-pages
Нужно лишь немного переписать скрипт, убрав работу с ветками, а затем добавить конфиг Github Actions с bun образом
Тогда при пуше в ветку master - через 40 секунд деплой будет окончен

🔗 Репозиторий
🔗 Github Pages DEMO
🔗 Github Gist со скриптом

Как работает скрипт деплоя рассказал в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1🔥1