
Ivan
26.05.2017
07:54:26
ТК его идеи очень радикальны в плане ооп
А в том что люди даже "стандартное" ооп осилить не могут

Руслан
26.05.2017
07:55:16
Бреслав сказал что все эти ваши "фп, ооп, what ever p" фигня
Когда рассказывал про Котлин на jpoint

Google

Руслан
26.05.2017
07:57:41
https://youtu.be/rYRnvMq41uw?t=12m24s

Gregory
26.05.2017
08:07:33

Nikita
26.05.2017
08:08:59

Gregory
26.05.2017
08:11:14

Nikita
26.05.2017
08:12:02

Gregory
26.05.2017
08:13:53
Спорить не буду - всё так.

Руслан
26.05.2017
08:21:18
Так, я так понял там выше спорили как нужно делать:
GithubLink(val url: String): Link
или
Link(val type: LinkType, val url: String)
я правильно понял?

Gregory
26.05.2017
08:29:54
Да, ярым сторонником ООП утверждалось, что независимо от контекста правильный вариант - первый.

Denis
26.05.2017
08:32:37
Как по мне, так первый вариант не согласуется с утверждением "Предпочитайте компизицию наследованию"

Igor
26.05.2017
08:33:45

Gregory
26.05.2017
08:40:06
Если Link sealed класс, то вроде и для ФП хорошо подходит
В кейсе, с которого всё началось, sealed-класс предпочительнее, да.
Но радикально настроенный Иван утверждал о вещах, которые шире конкретного примера (читать в районе утверждений про говнокод). Я попытался донести мысль, что за пределами его кода (JSON, БД, ...) потребуется знание о "типе" объекта в его сериализованном виде.

Google

Gregory
26.05.2017
08:41:36
Последнее означает ровно то, что там появится что-то такое "type: SomethingType".

Igor
26.05.2017
09:50:18

Ivan
26.05.2017
09:52:48

Nikita
26.05.2017
09:54:21
Контекст - можно или нельзя согласно создателю Clean
не знаю, из всех правил есть исключения. Порой нет времени городить кучу классов для соблюдения какого либо правила. Я не спорю и верю что теория "разбитых окон" работает и в разработки, но бизнес и пользователи не должны страдать от твоих убеждений и чистоты твоей архитектуры

Igor
26.05.2017
09:54:58
Согласно clean, появляются правила. И уже ваш выбор, следовать ли им, и каким, или нет

Igor
26.05.2017
10:20:43

Igor
26.05.2017
10:25:56

Nikita
26.05.2017
10:41:15

Igor
26.05.2017
10:42:01

Alina
26.05.2017
10:42:14
думаю про это речь https://martinfowler.com/bliki/ShuHaRi.html

Nikita
26.05.2017
10:42:51
точно, Сюхари же

whalemare
26.05.2017
11:57:00
Парни, ни у кого студия не тормозит когда печатаете на котлине?

Михаил
26.05.2017
12:02:56
разве что подсказки с дилеем показываются

whalemare
26.05.2017
12:03:13
хмм, я прям запарился уже
пару букв и завис на 300мс

Михаил
26.05.2017
12:04:05
ну кстати щас сижу на eap

Alexander
26.05.2017
12:04:07
swift заорал в сторонке

Михаил
26.05.2017
12:04:28

Google

Ilya
26.05.2017
12:09:44
Подскажите, а в котлине можно сделать трейты, как в скале?

Quantum Harmonizer
26.05.2017
12:10:07

Ilya
26.05.2017
12:11:29
@Harmonizr где можно почитать?
Нашёл лишь объектную ДЕкомпозицию)

Quantum Harmonizer
26.05.2017
12:12:10
https://en.wikipedia.org/wiki/Object_composition
Лооол, та же статья есть на украинском. На русском нет.
https://en.wikipedia.org/wiki/Composition_over_inheritance

Ilya
26.05.2017
12:15:07
@Harmonizr понял, о чём ты говоришь. Разве нельзя считать использование трейтов композицией?

Umren
26.05.2017
12:15:56

Valeriy
26.05.2017
12:16:12
m.accuweather.com/en/privacy#adChoices
http://m.accuweather.com/en/privacy#adChoices?partner=asustek

whalemare
26.05.2017
12:16:18

Umren
26.05.2017
12:16:24
У тебя эмулятор запущен?

Quantum Harmonizer
26.05.2017
12:16:34

whalemare
26.05.2017
12:16:36
Нет

Umren
26.05.2017
12:16:48
мне казалось просто пк не справляется уже студия + эмулятор + хром + пару софтин = 10 гб памяти было забито
и вот такая же фигня была
как у тебя

Igor
26.05.2017
12:17:12

whalemare
26.05.2017
12:17:35
Угу, просто java норм вертится, а Котлин заикается)

Umren
26.05.2017
12:17:39
трейты это которые подмешивают некое поведение в класс?

Google

Ilya
26.05.2017
12:17:56
Да, они самые.

Umren
26.05.2017
12:18:22
экстеншионы этого не могут заменить?
по мне такие схожие задачи решают, только экстеншионы лучше из-за того что тебе их явно внедрять не надо

Ilya
26.05.2017
12:19:27
Нет. Ну, грубо говоря, я хочу такую штуку запилить.
Сделать трейты вида ProgressBar / Toaster и тому подобное. У них реализовать методы соответствующие (showProgress, hideProgress, toast), и иметь возможность примешивать к вьюхам сразу реализацию. Собирать вьюху из готовых заранее кусков.

whalemare
26.05.2017
12:20:28
Экстеншены

Konstantin
26.05.2017
12:20:34

Igor
26.05.2017
12:20:48

Admin
ERROR: S client not available

Quantum Harmonizer
26.05.2017
12:20:54
Кроме того, в Котлине есть делегирование реализаций интерфейсов.

Umren
26.05.2017
12:21:37
Вроде в котлине интерфейсы прокаченные
Можно тоже самое сделать
что в трейтах

Ilya
26.05.2017
12:22:23
@Harmonizr а вот тут я тебя начал понимать. Круто! Спасибо, попробую так.

whalemare
26.05.2017
12:23:38
Дефолтные методы?

Quantum Harmonizer
26.05.2017
12:24:31
Это как?
class DecoratedList : List by ArrayList() {
override fun getSize(): Int = 100500
}

Igor
26.05.2017
12:24:41
Это как?
https://kotlinlang.org/docs/reference/delegation.html

whalemare
26.05.2017
12:24:49
Спасибо!

Google

Igor
26.05.2017
12:29:48

Andrey
26.05.2017
12:29:48

Quantum Harmonizer
26.05.2017
12:30:35

? animufag ?
26.05.2017
12:35:07

Михаил
26.05.2017
12:36:38
ну то что это основной ботлнэк - это загнуто в кубе

Quantum Harmonizer
26.05.2017
12:36:47

Sergey
26.05.2017
12:37:33
а не запрещают

Konstantin
26.05.2017
12:37:59
Да блин, стоило тому адвокату снять видео, так сразу началось

Quantum Harmonizer
26.05.2017
12:38:38
Кто-нибудь рекомендует объединять несколько анонимных лисенеров в один класс? Memory footprint от анонимки должен быть аналогичен footprint'у от enum.

Andrey
26.05.2017
12:39:04
Есть такая рекомендация про энумы, что бы сэкономить пару классов, но в реальности влияние на размер приложения, количество методов и память мизерный и не заметный, микрооптимизация. Был небольшой холивар на эту тему даже, когда Кольт из Гугла стал эту рекомендацию форсить, а Вортон написал, что это херня, и был небольшой обмен мнениями в комментах

Konstantin
26.05.2017
12:39:38
Когда доходит до оптимизаций нужен опыт, чтобы понимать, что такие микрооптимизации решают только на огромных масштабах. А заменять enum на intdef больше проиграешь в поторченном на то времени

Quantum Harmonizer
26.05.2017
12:40:24
И снова, @IntDef порождают switch, когда у enum есть полиморфизм. Кто-нибудь избавлялся от полиморфизма в пользу switch в угоду производительности? Как вам результаты?

Aliaksei
26.05.2017
12:43:17
Это как всё должно быть плохо что бы несчастные пару enums в IntDef переводить

? animufag ?
26.05.2017
12:56:28
ну ладно ребят. я на самом деле просто иногда рофлю на тему этих енумов
весь андроид строится на сраных интах и этих микрооптимизациях
для кого то это часть культа как и нотация полей с буквы m

Quantum Harmonizer
26.05.2017
12:56:56

Konstantin
26.05.2017
12:57:11
Блин, на m у меня вообще триггер срабатывает

Egor
26.05.2017
12:57:12
ее точно не надо использовать

? animufag ?
26.05.2017
12:57:12
конечно же во время депенденси инжекшонов и rxjava с сотнями лямбд на каждый чих это всё должно быть безразлично
ого
я думал меня с буквой m не поддержут