Friflex Dev
297 subscribers
729 photos
57 videos
9 files
115 links
Канал разработчиков Friflex. Разрабатываем сайты и приложения для миллионов людей, обучаем ИИ, вдохновляем друг друга.

⚙️Наш канал о разработке на Flutter: @flutterfriendly
🚀О продуктовой разработке: @friflex_product
Download Telegram
🛠️ Костыль похож на клейкую ленту для утечки в водопроводе — работает, но явно не решает проблему окончательно.

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

Главное, чтобы временное не становилось постоянным. Чтобы костыли не задерживались в коде надолго, помогает:

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

🧷 Рефакторинг. Регулярно проверяйте и улучшайте код, удаляйте временные решение.

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

🧷 Документация. Если костыль неизбежен, задокументируйте его, чтобы потом легче перейти на постоянное решение.

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

#наайтишном
6
🤖 Команда машинного обучения Friflex с интересом следит за тем, как развивается искусственный интеллект. Мы видим, что у LLM-агентов огромный потенциал и для развития наших продуктов, и для множества других задач.

Сегодня LLM — не просто модели для работы с текстом. Их алгоритмы распознают и интерпретируют визуальные данные, понимают и синтезируют аудио, интегрируют текст с изображениями и аудио.

Идея, что машину можно научить понимать и создавать текст человеческого качества, прошла впечатляющий путь. Яркие моменты из истории LLM-агентов собрали на карточках и в статье на Харбе.

#AI
🔥42
🚀Git push — консольная команда, которая передает в центральный репозиторий изменения с локального.

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

Процесс отправки пушей выглядит так:

git push origin master


Действие: push, отправить
Адресат: origin, сервер
Объект: master, имя ветки

Другие варианты команды git push:

🔜git remote add link — связать локальную и центральную ветки
🔜git push --all — отправить все локальные ветки на публикацию в удалённом репозитории
🔜git branch -D branch_name — полностью удалить ветку branch_name в локальном репозитории
🔜git push origin :branch_name — стереть удаленную ветку

#наайтишном
Please open Telegram to view this post
VIEW IN TELEGRAM
2
После блокировки Apple Pay и Google Pay СБП стал популярным инструментом у бизнеса. Flutter-разработчик Friflex Мурат Насиров уже писал, как:
интегрировать нативные iOS и Android-приложения с СБП при помощи нативного SDK
использовать нативный платежный сервис SberPay в кроссплатформенном приложении на Flutter.

В новой статье Мурат делится опытом, как работать с СБП во Flutter-приложении без натива при помощи только Flutter SDK 🕊️и его пакетов.

#Flutter
Please open Telegram to view this post
VIEW IN TELEGRAM
6
В сказке братьев Гримм хлебные крошки склевали птицы, поэтому Гензель и Гретель не смогли вернуться домой. В разработке такого не происходит.

Когда на сайте есть хлебные крошки, пользователь всегда знает, в каком разделе он сейчас находится. Выглядят они примерно так: Главная 🔜Раздел 🔜 Подраздел 🔜 Страница. Каждый элемент в цепочке, кроме последнего, — это ссылка, которая ведет на соответствующую страницу сайта.

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

#наайтишном
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2
🧅Если представить приложение как луковицу, то каждый слой будет одной из луковых оболочек.

Слои в луковой архитектуре:
Слой домена. На этом уровне определяется бизнес-логика приложения: правила и операции, с которыми работает бизнес. Остальные слои защищают бизнес-логику от внешних воздействий.
Слой приложения. Этот слой связывает доменную модель с инфраструктурными службами. Здесь расположены классы, которые обрабатывают запросы и команды, связанные с бизнес-логикой.
Инфраструктурный слой. Здесь расположена инфраструктура, которая помогает приложению общаться с внешним миром: файловая система, сеть, базы данных, фреймворки.

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

#наайтишном
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥1
🥞 Представьте себе стопку румяных блинов. Вы хотите их красиво разложить, самый большой — снизу, а самый маленький — сверху. Но есть одно условие: вы можете переворачивать только часть стопки, начиная с верхнего блина и до любого, который выберете.

Блинная сортировка работает так:
1️⃣ Найдите индекс максимального элемента в неотсортированной части массива.
2️⃣ Переверните массив до этого индекса, чтобы максимальный элемент оказался в начале.
3️⃣ Переверните всю неотсортированную часть массива, чтобы максимальный элемент оказался в конце.
4️⃣ Повторите для оставшейся неотсортированной части массива.

Блинная сортировка интересна с теоретической стороны. Она показывает, как можно решать задачи с объектами через ограниченный набор операций. Но ее редко используют на практике, потому что есть алгоритмы эффективнее, такие как быстрая или пирамидальная быстрая, или пирамидальная сортировка.

#наайтишном
Please open Telegram to view this post
VIEW IN TELEGRAM
6
Когда пользователь устанавливает пароль, система его хэширует — преобразует в набор символов, а потом сохраняет в базе данных.

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

Различают статическую и динамическую соль.
🔴Статическая соль одинакова для всех входных данных.
🔴Динамическая соль генерируется для каждого значения. Хэш-значения у одинаковых паролей с динамической солью отличаются. Так злоумышленнику сложнее атаковать пароли пользователей, даже если они простые.

📌Безопаснее хранить не открытые пароли, а «соленые» хэши от них.
📌Эксперты рекомендуют использовать алгоритмы хэширования SHA-2 и выше и не давать пользователям устанавливать простые пароли.

#наайтишном
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3
🐞 Тестирование — один из важных этапов создания и развития цифровых продуктов.

Тестировщики (QA-инженеры) обеспечивают качественную работу цифрового продукта на всех этапах его жизненного цикла. Их задача — проверять программы и сервисы на ошибки. QA-инженеры:

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

Какие навыки важны для QA-инженеров и как развиваться в профессии, мы обсудили с Дмитрием Тучсом, главой QA-отдела в Dodo Engineering, и Артемом Кострюковым, генеральным директором компании Test IT.

Подробнее читайте в нашем блоге.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
4👏1
🍒 Команда cherry-pick так называется, потому что напоминает сбор урожая вишни. Как из всего урожая отбирают только спелые вишни, из одной ветки выбирают лишь определенные коммиты.

Cherry-pick используют, например, если в коде обнаружили баг и важно быстро донести исправления до пользователя.

Разработчик срочно создает коммит и исправляет ошибку. Этот коммит переносят в основную ветку с помощью cherry-pick. Так слияния в пре-релизные ветки не задерживают исправление бага.

А вы используете cherry-pick в работе?

#наайтишном
4