Forwarded from Flutter Friendly
Привет, с вами Роза, Flutter Dev Friflex👋 И сегодня мы немного погрузимся в магию FutureOr!
Представьте, вы создаете некий абстрактный класс с различными методами, но точно не знаете, будет ли реализация асинхронной или синхронной. Конечно, вы можете создать два метода или изощряться с разными подходами, но действительно ли это хорошее решение?
Лучше, если вы объявите метод, как FutureOr.
Звучит пока не очень понятно? Давайте разберемся на примерах.
Предположим, мы разрабатываем сервис, который получает данные. Одна реализация будет синхронной, другая — асинхронной:
Aбстрактный класс
⚙️ Когда же использовать FutureOr?
FutureOr — ваш спаситель, когда вам нужно абстрагироваться от того, является ли результат операции асинхронным или синхронным.
🔧 Как обрабатывать FutureOr?
Самый простой способ — использовать проверку типа с помощью is Future.
Да, такой вариант решения может показаться не самым элегантным. Ведь чрезмерное использование is Future может запутать логику и сделать код менее читаемым. Но в некоторых случаях, особенно при работе с абстракциями, это вполне рабочий и понятный подход.
У меня с работой так же. Иногда мне нужен await, чтобы подумать, а иногда все складывается супер. А у вас?
Представьте, вы создаете некий абстрактный класс с различными методами, но точно не знаете, будет ли реализация асинхронной или синхронной. Конечно, вы можете создать два метода или изощряться с разными подходами, но действительно ли это хорошее решение?
Лучше, если вы объявите метод, как FutureOr.
FutureOr<T>
— это такой хитрый тип в Dart, который говорит: «Эй, результат моего метода может быть либо обычным значением типа T,
либо Future<T>,
если вдруг придется подождать».Звучит пока не очень понятно? Давайте разберемся на примерах.
Предположим, мы разрабатываем сервис, который получает данные. Одна реализация будет синхронной, другая — асинхронной:
import 'dart:async';
abstract class SomeService {
FutureOr<String> fetch();
}
class FirstImplService extends SomeService {
@override
Future<String> fetch() async {
await Future.delayed(Duration(seconds: 2));
return 'Данные из Future';
}
}
class SecondImplService extends SomeService {
@override
String fetch() {
return 'Простые данные';
}
}
Aбстрактный класс
SomeService
объявляет метод fetch() с типом возвращаемого значения FutureOr<String>. Это значит, что fetch() может вернуть либо String, либо Future<String>.FutureOr — ваш спаситель, когда вам нужно абстрагироваться от того, является ли результат операции асинхронным или синхронным.
Самый простой способ — использовать проверку типа с помощью is Future.
Да, такой вариант решения может показаться не самым элегантным. Ведь чрезмерное использование is Future может запутать логику и сделать код менее читаемым. Но в некоторых случаях, особенно при работе с абстракциями, это вполне рабочий и понятный подход.
У меня с работой так же. Иногда мне нужен await, чтобы подумать, а иногда все складывается супер. А у вас?
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Коллега сделал бота @FlutterObserver_bot, который позволяет оперативно получать свежую подборку:
🟢 релиз новых версий flutter и dart, с возможностью посмотреть, что нового
🟢 flutter каналы и чаты
🟢 последние статьи по flutter с medium
Отбивки по новым релизам с изменениями прилетают от бота(на скрине вчерашняя)
Очень удобно🔥
Если захотите добавить свой канал, инструкция
Отбивки по новым релизам с изменениями прилетают от бота(на скрине вчерашняя)
Очень удобно
Если захотите добавить свой канал, инструкция
Please open Telegram to view this post
VIEW IN TELEGRAM
https://t.me/frezycode/619
Это нужно прокомментировать)
Моё мнение - в команде должна быть дружелюбная, развивающая атмосфера
code review коллег - это практически ежедневный процесс для каждого разработчика
Если ревью будет вгонять разработчика в стресс каждый день, ни к чему хорошему это не приведёт
И оно проходит в далеко не токсичной форме)
Указывается проблема и как сделать лучше, почему это лучше. Юмор тоже присутствует, смайлы. В общем достаточно дружелюбная, поучительная форма ревью
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Стас Ильин | Flutter
Ощущения после первого хорошего code-review
Сегодня мне 31☕️
А так же :
- ровно 3 года работы в Friflex🐼 (устроился в свой день рождения)
- полтора года на позиции лида💪
- блогу почти 4 года, с ума сойти😎
P.S. Немного Египта вам в ленту:)
А так же :
- ровно 3 года работы в Friflex
- полтора года на позиции лида
- блогу почти 4 года, с ума сойти
P.S. Немного Египта вам в ленту:)
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Проект Talker Станислава Ильина выиграл грант Яндекса на 600 000р🥂
https://t.me/frezycode/633
🟢 Давно используем Talker на проектах. Отдельный экран с логами из коробки значительно упростил жизнь тестировщикам, прилично сократив время на тестирование:)
https://t.me/frezycode/633
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Стас Ильин | Flutter
☄️ Мой проект Talker полуил грант на 600.000р от Яндекса
Хотел приберечь эту новость на потом, но она начала разлетелаться сама собой 😅
🏆 Проект вошел в топ-12 из 120 отправленных заявок. И это первый проект на dart, который получил подобную премию!
…
Хотел приберечь эту новость на потом, но она начала разлетелаться сама собой 😅
🏆 Проект вошел в топ-12 из 120 отправленных заявок. И это первый проект на dart, который получил подобную премию!
…
Первый в России вайб-хакатон: как это было
Friflex @friflex_dev совместно с Институтом №8 МАИ провели первый в России хакатон по программированию с нейросетями
14 команд разработчиков с помощью Al создавали мобильные игры для страховой компании ЭНЕРГОГАРАНТ и затем презентовали их. Все это — за один вечер.
Особенности:
▫️Экспертное жюри (продуктовые и технические специалисты Friflex, X5 Group, Avito, Дикси, Самокат)
▫️Критерии оценки: технологическая реализация, оригинальность идеи и игровой механики, бизнес-применимость
▫️Интенсивный формат — решения создавались буквально за три часа
Что получилось: готовые прототипы игр, в которые можно играть прямо сейчас.
А теперь самое интересное — итоги:
🥇Vibelino Codaratti с игрой Level Up: Insure — это страхование в формате раннера, кликера и квиза, где игрок уклоняется от рисков, защищает имущество и мгновенно реагирует на угрозы в пяти интерактивных миссиях. AI помог разобрать страховые кейсы, превратить их в геймплей и сделать сценарии по-настоящему захватывающими
🥈Kis-kis-Misis с игрой Life Loop. Представляет собой круговое поле, где каждый ход — это бросок кубика и новый шаг аватара навстречу бонусам, рискам или событиям. Реальные ситуации превращаются в игру, а вовлеченность усиливается промокодами и специальными предложениями
🥉Code Wings с игрой Risk Rush Deluxe. Это раннер, где игрок сталкивается с жизненными рисками — авариями, пожарами — и может избегать их, собирая страховки прямо на ходу.
Фишка в том, что игра ненавязчиво показывает, как страховка помогает экономить
📎В этой статье — подробно о том, что будет, если 14 команд сядут кодить с помощью ИИ — и по вайбу
Friflex @friflex_dev совместно с Институтом №8 МАИ провели первый в России хакатон по программированию с нейросетями
14 команд разработчиков с помощью Al создавали мобильные игры для страховой компании ЭНЕРГОГАРАНТ и затем презентовали их. Все это — за один вечер.
Особенности:
▫️Экспертное жюри (продуктовые и технические специалисты Friflex, X5 Group, Avito, Дикси, Самокат)
▫️Критерии оценки: технологическая реализация, оригинальность идеи и игровой механики, бизнес-применимость
▫️Интенсивный формат — решения создавались буквально за три часа
Что получилось: готовые прототипы игр, в которые можно играть прямо сейчас.
А теперь самое интересное — итоги:
🥇Vibelino Codaratti с игрой Level Up: Insure — это страхование в формате раннера, кликера и квиза, где игрок уклоняется от рисков, защищает имущество и мгновенно реагирует на угрозы в пяти интерактивных миссиях. AI помог разобрать страховые кейсы, превратить их в геймплей и сделать сценарии по-настоящему захватывающими
🥈Kis-kis-Misis с игрой Life Loop. Представляет собой круговое поле, где каждый ход — это бросок кубика и новый шаг аватара навстречу бонусам, рискам или событиям. Реальные ситуации превращаются в игру, а вовлеченность усиливается промокодами и специальными предложениями
🥉Code Wings с игрой Risk Rush Deluxe. Это раннер, где игрок сталкивается с жизненными рисками — авариями, пожарами — и может избегать их, собирая страховки прямо на ходу.
Фишка в том, что игра ненавязчиво показывает, как страховка помогает экономить
📎В этой статье — подробно о том, что будет, если 14 команд сядут кодить с помощью ИИ — и по вайбу