Хорошая и большая статья, но есть все же несколько очень важных но:
Не упомянут dispatcher main.immediate (а у него есть одно очень важное свойство, не просто так он используется в lifecycle scope, про viewmodel scope на память не помню). И из этого вытекает:
Не рассказано про старт корутин, а это очень важно. И из этого вытекает:
Корутин билдеры не используются для старта корутин, точнее не всегда используются - яркий пример это lazy старт корутин. Так же они не принимают блок кода который будет выполнен асинхронно - это управляется контекстом (dispatcher и scheduler)
И самое главное!!! cancel() не прерывает и не прекращает выполнение coroutine, иначе не рекомендовали бы использовать yeld(). + Не рекомендовали прокидывать cancellation exception из try catch. Ну и cancelAndJoin() появился не просто так...
Мьютекс и семафор в принципе единственное что там есть. Все остальные примитивы синхронизации используют пакеты jvm и в мультиплатформе не применимо из-за этого. Варианты flow и каналов не рассматриваем, они хоть и потокобезопасны, но вот как на них сделать потокобезопасную коллекцию я не представляю. Да и вообще синхронизировать доступ к произвольной переменной.
Да ёлки палки, есть semaphore, а на его бинарной вариации можно собрать что угодно синхронизированное из мира coroutines. Один раз попробовать и альтернативы и не нужны будут, мне так старший товарищ дал пинка под одно место (спасибо ему огромное) и я написал реализацию reentrantlock (стандартную никак не завезут), но для coroutines.
P.s. кстати непонятно почему именно их вы не упомянули.
Специалистам учиться надо, если нет образовательной среды - умных и погруженных людей готовых делиться знаниями - учиться нормально не выйдет. Сейчас, к сожалению, основная часть информации - алгоритмы, примеры кода, пояснения - на английском, без доступа к этим знаниям нагонять не получится.
Вы сейчас серьезно? В стране в которой нет заводов и другого рынка кроме гос контор, коллектив что-то полезное сделает? Т.е. вы заранее знаете что станет хуже и ещё не уверены что это плохо...
Что-то других вольных коллективов особо не видно (не обязательно цпу общего назначения, хотя бы МК), но вот у мцст вдруг все должно пойти иначе. Печально такое читать, если честно.
Радоваться надо что в РФ есть технические коллективы которые могут сделать настолько высокотехнологичные вещи. Если их снять с "госкормушки" лучше то явно не станет, коллектив распадётся, компетенции пропадут.
Я прям каждый раз вижу статью от Яндекс практикума и каждый раз не могу понять, чему ж вы там будете учить, раз у вас java и java concurrency для начинающих? Тут ваш предыдущий лектор ещё про compose рассказывал, расскажете как его с java то по итогу связать?
Да, если вы хотите смотреть прям в проде не вариант, но вроде firebase performance что-то такое может собирать, но сам не щупал, точно не скажу.
Macrobemchmark позволяет локально на физ устройстве прогонять тесты по нужным кейсам, смотреть время старта, медленные кадры и прочее - что Android vitals отслеживает.
Хорошая и большая статья, но есть все же несколько очень важных но:
Не упомянут dispatcher main.immediate (а у него есть одно очень важное свойство, не просто так он используется в lifecycle scope, про viewmodel scope на память не помню). И из этого вытекает:
Не рассказано про старт корутин, а это очень важно. И из этого вытекает:
Корутин билдеры не используются для старта корутин, точнее не всегда используются - яркий пример это lazy старт корутин. Так же они не принимают блок кода который будет выполнен асинхронно - это управляется контекстом (dispatcher и scheduler)
И самое главное!!! cancel() не прерывает и не прекращает выполнение coroutine, иначе не рекомендовали бы использовать yeld(). + Не рекомендовали прокидывать cancellation exception из try catch. Ну и cancelAndJoin() появился не просто так...
Мьютекс и семафор в принципе единственное что там есть. Все остальные примитивы синхронизации используют пакеты jvm и в мультиплатформе не применимо из-за этого. Варианты flow и каналов не рассматриваем, они хоть и потокобезопасны, но вот как на них сделать потокобезопасную коллекцию я не представляю. Да и вообще синхронизировать доступ к произвольной переменной.
Да ёлки палки, есть semaphore, а на его бинарной вариации можно собрать что угодно синхронизированное из мира coroutines. Один раз попробовать и альтернативы и не нужны будут, мне так старший товарищ дал пинка под одно место (спасибо ему огромное) и я написал реализацию reentrantlock (стандартную никак не завезут), но для coroutines.
P.s. кстати непонятно почему именно их вы не упомянули.
Спасибо, приятно было читать.
Чувак, спасибо тебе огромное, ты просто мой спаситель!!!
Пора уже закопать setSupportActionBar, toolbar справляется со всем сам.
Что-то у вас с транное в адаптере, notify методы не нужны при diffutils
Livedata тоже пора уже отправить на свалку истории - flow получше будут.
Да ладно, все с чего-то начинают :)
Будет стараться все получится. Правда дизайн от реализации далёк конечно...
Специалистам учиться надо, если нет образовательной среды - умных и погруженных людей готовых делиться знаниями - учиться нормально не выйдет. Сейчас, к сожалению, основная часть информации - алгоритмы, примеры кода, пояснения - на английском, без доступа к этим знаниям нагонять не получится.
А зря. Качество то у них вполне приличное за цену. И по не глючное.
Спасибо, статья была интересная, а вы случайно больше ничего не посоветуете почитать про обработку изображений по типу вашей статьи про ресайз?
Это не только eclipse, Android studio тоже 32 может занять :)
UI тесты не просто медленные, они БЕЗУМНО медленные. Ну их...
mock webserver вроде ж и с unit тестами работает, если есть желание тестировать состояния
Было интересно, спасибо!
Вы сейчас серьезно? В стране в которой нет заводов и другого рынка кроме гос контор, коллектив что-то полезное сделает? Т.е. вы заранее знаете что станет хуже и ещё не уверены что это плохо...
Что-то других вольных коллективов особо не видно (не обязательно цпу общего назначения, хотя бы МК), но вот у мцст вдруг все должно пойти иначе. Печально такое читать, если честно.
Радоваться надо что в РФ есть технические коллективы которые могут сделать настолько высокотехнологичные вещи. Если их снять с "госкормушки" лучше то явно не станет, коллектив распадётся, компетенции пропадут.
Веселина спасибо :)
мы все ждем приложу и ее исходники ;)
Я прям каждый раз вижу статью от Яндекс практикума и каждый раз не могу понять, чему ж вы там будете учить, раз у вас java и java concurrency для начинающих? Тут ваш предыдущий лектор ещё про compose рассказывал, расскажете как его с java то по итогу связать?
Да, если вы хотите смотреть прям в проде не вариант, но вроде firebase performance что-то такое может собирать, но сам не щупал, точно не скажу.
Macrobemchmark позволяет локально на физ устройстве прогонять тесты по нужным кейсам, смотреть время старта, медленные кадры и прочее - что Android vitals отслеживает.
Почему macrobemchmark не рассматриваете? Он для этих кейсов подходит идеально же.
Как же это надоело...