@kotlin_lang

Страница 96 из 982
Лёша
06.04.2017
12:03:00
Вот, разобрался. Кострукция map.forEach{k,v-> doSomesing(k, v)} вызывает java forEach, а конструкция map.forEach { doSomesing(it.key, it.value)} вызывает forEach из Kotlin stdlib
заглянул к danlew'у оказывается как раз таки об этом он писал) http://blog.danlew.net/2017/03/16/kotlin-puzzler-whose-line-is-it-anyways/

Михаил
06.04.2017
12:09:50
поясните плиз. в котлине возможно обойтись без джавовского рефлекшена?

мне допустим надо статик файнал поле класса поменять

как мне это чисто на котлине без использования джавовского рефлекта сделать?

Google
Ruslan
06.04.2017
12:13:25
The currently selected Java debugger doesn't support breakpoints of type 'Kotlin Line Breakpoints'. As a result, these breakpoints will not be hit. - сталкивался кто?

Andrey
07.04.2017
10:28:54
Всем привет! Как в tg://resolve?domain=kotlin_jobs вакансию закинуть?

Или можно сюда?

Руслан
07.04.2017
10:29:15
Можно сюда, а добавлю

Andrey
07.04.2017
10:30:32
Вакансия: #java #kotlin З/п: до 200к. Локация: #москва #мск Контакты: @andreyvesnin Ссылка на HH: https://hh.ru/vacancy/20178513 Ищем Java-программиста в международную компанию, занимающуюся спортивными ставками и разработкой соответствующего ПО. По факту большая часть Java-разработки сейчас переводится на Kotlin. Задачи на ближайшее время: - Написание новой комплексной системы для букмекерских компаний - Развитие системы для взаимодействия с CPA-сетями Чего ждём: - Опыт разработки на Java с текущим уровнем Senior / Middle+ - Стремление понимать то, КАК технологии работают, а не только как их использовать Будут плюсом: - Опыт работы с Kotlin либо простая любознательность и тяга к новым технологиям - Опыт разработки микросервисной архитектуры PostgreSQL, RxJava, Ratpack, Netty, Hazelcast (используются в компании) Условия: Интересные проекты с новыми технологиями (реактивное программирование, микросервисная архитектура, тот же Kotlin) Адекватный уровень заработной платы Офис в шаговой доступности от м. Волгоградский проспект / Пролетарская

Sergey
07.04.2017
10:52:00
а говорили бекенда на котлине нет

Boris
07.04.2017
10:54:13
Вот тоже подумал

Igor
07.04.2017
10:55:59
а говорили бекенда на котлине нет
Статистическая погрешность ?

Boris
07.04.2017
10:57:01
А кто-то в этой погрешности работает ?

Quantum Harmonizer
07.04.2017
11:25:29
Что-то я 200к видел только в букмекерстве, бинарных опционах и брокерстве. Печальбеда.

Alexander
07.04.2017
11:31:43
ну вообще сейчас очень много где

даже больше

Google
Roman
07.04.2017
11:51:30
Если что, слух прошел, что бэкенда на котлине примерно столько же сколько Андройда

? animufag ?
07.04.2017
11:54:55
Nikita
07.04.2017
11:55:45
Выборка нерепрезентативна

Art
07.04.2017
12:01:19
Привет ! Можно ли в VS Code собрать андроид апп с котлин. Есть ли IDE для сбора андроид апп кроме интеллиJ ?

Nikita
07.04.2017
12:01:56
Эклипсина есть

Roman
07.04.2017
12:26:54
Слух оч репрезентативен ))

Igor
07.04.2017
12:29:13
Привет ! Можно ли в VS Code собрать андроид апп с котлин. Есть ли IDE для сбора андроид апп кроме интеллиJ ?
Я играюсь с VSCode (пытаюсь разорвать вендор-лок) Сейчас там только подсветка кода, и можно собирать только gradle из консоли.

Alina
07.04.2017
12:56:44
Сделали онлайн голосовалку за фичи, кто хотел? https://goo.gl/S503K9

Думаю можно запинить числа до 17го @HeapyHop

Руслан
07.04.2017
12:58:22
Напомнишь убрать :)

Alina
07.04.2017
13:00:09
Roman
07.04.2017
13:44:31
а как от DDOS будете защищать?

=)

Igor
07.04.2017
13:57:50
Не могу найти инспекшен для Kotin на тему "`игнорирование результат функции (НЕ Unit))`". Никто не знает, есть ли он вообще, может как-то подругому называется?

Roman
07.04.2017
15:14:44
есть ли какие-то красивые способы решения проблемы с занулением свойств, чтобы предотвратить меморилик во фрагменте?

понятно, что можно делать все такие поля var nullable, но это засоряет в итоге код, так как по своей природе такое поле lazy с возможностю удаления. мб как-то можно через делегаты реализовать это?

? animufag ?
07.04.2017
15:19:06
Вроде не имеет ничего общего с lazy. я бы подумал что можно сделать WeakReferenceDelegate, который соответственно хранит в себе WeakReference и отдаёт опшонал

Roman
07.04.2017
15:22:19
Вроде не имеет ничего общего с lazy. я бы подумал что можно сделать WeakReferenceDelegate, который соответственно хранит в себе WeakReference и отдаёт опшонал
тут есть разные ситуации. вот например есть у меня диалог, вызывается он по нажатию на кнопку. соответственно создавать я его не должен до этого момента. обычный lazy тут идеально решал бы, если бы мог очищаться по команде. второй вариант когда поле железно создается, тогда можно и просто val использовать и lazy действительно не причем

Google
Roman
07.04.2017
15:23:53
Вроде не имеет ничего общего с lazy. я бы подумал что можно сделать WeakReferenceDelegate, который соответственно хранит в себе WeakReference и отдаёт опшонал
вот как раз не хотелось бы с опшоналами иметь дело. по сути при любом чтении свойства я уверен, что оно не null. просто нужно иметь возможность удаления. как lateinit только обратимый =) (чтобы можно было разинитить обратно)

просто странно. для андроид разработки это супер стандартный кейс - неужели никто ничего еще не придумал?

Max
07.04.2017
15:25:45
Я чето не догоняю, где у тебя потекет?

Roman
07.04.2017
15:28:35
Я чето не догоняю, где у тебя потекет?
если фрагмент удалит view то в диалоге останется ссылка на контекст и он утечет

Max
07.04.2017
15:30:44
Какое Вью?

Может пример кода лучше скинуть

Roman
07.04.2017
15:31:53
Какое Вью?
фрагмент в бэкстек положили например. фрагмент как объект жив, вью удален.

? animufag ?
07.04.2017
15:32:20
тут есть разные ситуации. вот например есть у меня диалог, вызывается он по нажатию на кнопку. соответственно создавать я его не должен до этого момента. обычный lazy тут идеально решал бы, если бы мог очищаться по команде. второй вариант когда поле железно создается, тогда можно и просто val использовать и lazy действительно не причем
просто в lazy есть как бы гарантии, что каждое обращение к нему вернет готовый объект. как ты себе представляешь это при возможности денициализации? Вот допустим у тебя есть val prop: View by Magic как ты гарантируешь, что не случится prop.deinit() doSomething(prop) ?

Roman
07.04.2017
15:33:18
может быть истанс делегата сохранять и потом на нем какой-то метод очищения вызывать.. хочется как-то лаконично это все сделать

Max
07.04.2017
15:34:59
Может не использовать фрагменты, в таком случае

Мне кажется там не потекет, Гц разберется

Roman
07.04.2017
15:36:23
Может не использовать фрагменты, в таком случае
из-за особенностей языка программирования и желания писать более простой код на нем? =) ну это как-то странно. тем более что приложение уже работает на фрагментах и такого варианта пока нет. по крайней мере не на этой итерации.

Мне кажется там не потекет, Гц разберется
как он разберется? есть объект - живой. он держит стронг референц на другой. тут без вариантов. тем более что это не что-то новое, а стандартная особенность фрагментов, с которой все так или иначе сталкиваются. в java просто добавляешь someField = null в нужном методе и все. остальной код при этом не заполняется дополнительной логикой

Andrew
07.04.2017
15:39:36
Мне кажется, ты пытаешься Disoposable из C# придумать

? animufag ?
07.04.2017
15:39:49
меня более чем устраивает если я в таком случае получу эксепшен как при использовании lateinit. я гарантирую в коде, больше ничего не нужно
не понимаю, что гарантируешь. ебошь смесь из WeakReference и обычной ссылки на джаве (обычную ссылку зануляй в определенный момент). вызывай это в котлине получай нулпоинтерэксепшен

Max
07.04.2017
15:41:22
Не понимаю, чем нулабле не нравится?

!! Поставил, раз уверен, что не нул, и все

Roman
07.04.2017
15:42:31
Не понимаю, чем нулабле не нравится?
тем что использование nullable меняет код использования свойства. ставить !! не красиво. имхо их не должно быть в нормальном коде

Max
07.04.2017
15:42:32
А при необходимости занулил

Google
Roman
07.04.2017
15:43:11
Мне кажется, ты пытаешься Disoposable из C# придумать
да, можно и так сказать. по сути я хочу lateinit с возможнось сделать uninit.

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

? animufag ?
07.04.2017
15:45:06
> дальше разработчик гарантирует что это равносильно !! только хуже

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

Max
07.04.2017
15:46:38
Мне кажется надо пересмотреть подход

Roman
07.04.2017
15:46:59
> дальше разработчик гарантирует что это равносильно !! только хуже
почему? в андроиде есть совершенно определенный контракт навязанный архитектурой платформы. зануление происходит ВСЕГДА в одном и всем известном месте в колбэке который обеспечивает фреймворк. Любой коллега понимает это за 5 минут. дальше ничего проверять не нужно вообще. только код пиши.

Andrew
07.04.2017
15:47:35
В теории - да

Admin
ERROR: S client not available

Andrew
07.04.2017
15:47:39
))

Roman
07.04.2017
15:47:55
а на практике при первом же запуске упадет - не проблема вообще

никаких отличий от !! тут не вижу по опасности

Andrew
07.04.2017
15:48:20
Не обязательно на первом)

Roman
07.04.2017
15:48:26
только !! писать не нужно

даже если не на первом. оно и в джаве ровно также упадет. ничего тут не ухудшается относительно java или nullable+!!

тут nullable вынужденный, он не определен бизнес логикой кода. при такой ситуации все равно его разрулить никак иначе кроме !! нельзя. а значит про безопасность говорить нечего. не было ее тут в джаве и не будет в котлине. главное чтобы хуже не стало - так вот не станет. ровно также =)

? animufag ?
07.04.2017
15:51:30
ты просто в определенный момент загнал себя в рамки !!

ты можешь ставить вопросительные знаки

всё чисто безопасно

язык предоставляет много средств чтобы можно было писать эти вопросы реже

Roman
07.04.2017
15:53:13
нет. не могу. код должен падать и только падать при такой ситуации если поле null и я его использую. вопросительные знаки имеют другую семантику и отложат ошибку и сделают ее труднообнаруживаемой. ? только для тех случаев когда это НОРМАЛЬНО если код не выполнится и это штатная ситуация

Google
Roman
07.04.2017
15:54:13
ты просто в определенный момент загнал себя в рамки !!
мне кажется что в такие рамки загоняет сам фреймворк и архитектура. тут не может быть другой семантики. можно только синтаксис менять, семантика останется

? animufag ?
07.04.2017
15:55:32
ссылки нужно только на вьюхи, верно?

реально интересно воспроизвести проблему. я думал что все такие траблы растут от asyncTask или всякие rx.

Смотри фрагмент твой в любом случае не умрёт, если я тебя понял?

и тебе жалко памяти на его поля?

Roman
07.04.2017
15:59:15
и тебе жалко памяти на его поля?
мне не жалко памяти на поля, если эти поля не держат вью. а если они держат вью, все очень плохо. там битмапы и тп. и все это очень много может весить

у меня в приложении лента с картинками

если вью утекает то 10-20мб может утечь за раз. таких ленты 4 в разных табах. прошел по табам и привет - OOM

это просто ситуация где это очень явно видно, но понятно что утекать будет и без картинок и табов

? animufag ?
07.04.2017
16:02:24
Ну короче по красоте это можно организовать как вьюхолдер в ресайклере

ты описываешь вложенную структурку содержащую поля, которые нужно обнулять (вьюхи)

описываешь метод который инициализирует эту структурку

Roman
07.04.2017
16:05:54
так вьюхи потом доставать же все равно также как nullable придется?

? animufag ?
07.04.2017
16:06:02
ну и переопределяешь все методы фрагмента, добавляя к ним передачу этой структурки (с проверкой на нул или !!) ну думаю ты понял идею. думаю это не так уж запарно будет, если это у тебя постоянно встречается в разработке

ну и потом в частных случаях наследуешься от получившегося фрагмента

больно короче это представлять

лучше бы нулейбл просто сделать

Boris
07.04.2017
16:10:31
вроде недавно это обсуждали, если очень хочется, то можно без проблем сделать свой делегат

просто придется и на делегат тоже ссылку сохранить рядом

Страница 96 из 982