Android story

ASP-33: Как писать на Kotlin НЕ надо. Худшие практики.

February 01, 2021 Vova and Vova Episode 33
Android story
ASP-33: Как писать на Kotlin НЕ надо. Худшие практики.
Chapters
0:41
Extensions там где надо и не надо. А также override операторов.
20:28
Засорение global namespace функциями.
27:05
isInitialized у lateinit var.
31:18
infix функции настолько красивые, что их можно использовать везде?
34:13
import as.
37:41
Игнорируем стандартные методы. А также обычный for vs stream (filter/map/etc).
44:55
var list = mutableList<Int>() :(
48:25
Несколько блоков init на один класс.
51:24
Почему твоя функция такая тощая? Скорми ей ещё 20 аргументов.
54:28
Перемешиваем в кучу named и positional аргументы в функциях.
58:00
inline, noinline, crossinline.
1:00:38
data class и sealed class можно использовать неправильно.
1:10:00
companion object грустно без visibility modifiers.
1:18:13
Даже если платят за символы, то писать от лямбд .invoke() не надо.
Android story
ASP-33: Как писать на Kotlin НЕ надо. Худшие практики.
Feb 01, 2021 Episode 33
Vova and Vova

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

00:00:41 - Extensions там где надо и не надо. А также override операторов.
00:20:28 - Засорение global namespace функциями.
00:27:05 - isInitialized у lateinit var.
00:31:18 - infix функции настолько красивые, что их можно использовать везде?
00:34:13 - import as.
00:37:41 - Игнорируем стандартные методы. А также  обычный for vs stream (filter/map/etc).
00:44:55 - var list = mutableList<Int>() :(
00:48:25 - Несколько блоков init на один класс.
00:51:24 - Почему твоя функция такая тощая? Скорми ей ещё 20 аргументов.
00:54:28 - Перемешиваем в кучу named и positional аргументы в функциях.
00:58:00 - inline, noinline, crossinline.
01:00:38 - data class и sealed class можно использовать неправильно.
01:08:13 - Даже если платят за символы, то писать от лямбд .invoke() не надо.
01:10:00 - companion object грустно без visibility modifiers.

Комментарии и пожелания можно оставлять в нашем телеграмм чате.

Show Notes Chapter Markers

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

00:00:41 - Extensions там где надо и не надо. А также override операторов.
00:20:28 - Засорение global namespace функциями.
00:27:05 - isInitialized у lateinit var.
00:31:18 - infix функции настолько красивые, что их можно использовать везде?
00:34:13 - import as.
00:37:41 - Игнорируем стандартные методы. А также  обычный for vs stream (filter/map/etc).
00:44:55 - var list = mutableList<Int>() :(
00:48:25 - Несколько блоков init на один класс.
00:51:24 - Почему твоя функция такая тощая? Скорми ей ещё 20 аргументов.
00:54:28 - Перемешиваем в кучу named и positional аргументы в функциях.
00:58:00 - inline, noinline, crossinline.
01:00:38 - data class и sealed class можно использовать неправильно.
01:08:13 - Даже если платят за символы, то писать от лямбд .invoke() не надо.
01:10:00 - companion object грустно без visibility modifiers.

Комментарии и пожелания можно оставлять в нашем телеграмм чате.

Extensions там где надо и не надо. А также override операторов.
Засорение global namespace функциями.
isInitialized у lateinit var.
infix функции настолько красивые, что их можно использовать везде?
import as.
Игнорируем стандартные методы. А также обычный for vs stream (filter/map/etc).
var list = mutableList<Int>() :(
Несколько блоков init на один класс.
Почему твоя функция такая тощая? Скорми ей ещё 20 аргументов.
Перемешиваем в кучу named и positional аргументы в функциях.
inline, noinline, crossinline.
data class и sealed class можно использовать неправильно.
companion object грустно без visibility modifiers.
Даже если платят за символы, то писать от лямбд .invoke() не надо.