169 похожих чатов

Что можно в этом маленьком куске кода улучшить? Буду рад

каждому комменту!

39 ответов

11 просмотров

setOnClickListener(::addNickname) fun addNickname(button: …

при каждом клике кнопки ищется ЕдитТекст и ТекстВью. Найти можно 1 раз и потом использовать когда нужно

и разница в итоге будет примерно никакая

addNickName(view аргумент не вижу чтоб использовался

используется

неужели лучше каждый раз, обращаясь к вьюхе, искать ее с помощью findViewById?

Вместо findViewById использовать view binding

всё равно кнопка после нажатия прячется. Что так один раз, что так

сохранения состояния не хватает

m_Rassska- Автор вопроса

да, согласен, спасибо большое!

но тут есть 2 вопроса 1) Может войти в привычку, что не желательно 2) Если тут вьюхи всего 2 и макет кажется простым, то на каких то сложных макетах при десятке поисков может зафризится приложение

hiding the keyboard в отдельный метод бы.

экстеншн

+

1) ну тут всё сводится к тому, что надо думать головой. Каждый раз 2) а так за старте зафризится :)

потому что котлин?))

ну лучше на старте 1 раз, чем потенциально много во время использования :) имхо

И что? На скрине не увидел предпосылок для создания экстеншена, метода вполне хватит.

подожди, а какие нужны предпосылки и чем экстеншен не метод?

m_Rassska- Автор вопроса

fun AppCompatActivity.hideKeyBoard(){ val view = this.currentFocus if (view != null) { val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager inputMethodManager.hideSoftInputFromWindow(view.windowToken, 0) } что-то типа этого имеете в виду?

Это сугубо личное восприятие, я определяю предпосылки создания экстеншена из того как я понимаю идею этой фичи. Для меня экстеншен - это фича, которая помогает добавить функциональность там, где ты её сам не можешь добавить по какой - то причине, а хочешь. Вон, у человека есть Activity, и он прячет на ней клавиатуру. Он находится внутри самой Activity, никакой экстеншен ему не нужен чисто технически. Он использует метод Activity getSystemService, всё под рукой, просто берёшь и пишешь внутренний метод. Экстеншн под капотом создаёт статический метод, нахрен ему статический метод в этом случае? Другое дело, если тебе нужно вызвать метод сокрытия клавиатуры извне откуда - то, с фрагмента условно. Я не могу залезть в Андроидовскую Activity и написать публичный метод там, и в написанную Activity я тоже лезть не хочу, и писать публичный метод там не хочу, т.к эта Activity например в другом модуле валяется и написана не мной, придётся добрасывать ещё в хрен пойми куда и проходить ревью у хрен пойми кого. В этом случае я пишу экстеншен где - нибудь у себя, и всё ок, все довольны. Повторюсь, сугубо имхо ок. Я понимаю что сейчас помимо адекватных людей набегут и те кто экстеншен хуярят при первом удобном случае над всем вообще чем можно, из разряда "бля мне надо один раз написать метод чтобы сделать первую букву строки большой, пишу fun String.firstCharToUpCase() нихуя я батя", мне вам сказать нечего сори.

> нахрен ему статический метод а нахрен инстанс-метод?) В данном случае никакой разницы. > те кто экстеншен хуярят при первом удобном случае над всем вообще чем можно eto ya

Стикер

> бля мне надо один раз написать метод чтобы сделать первую букву строки большой, пишу fun String.firstCharToUpCase() нихуя я батя В stdlib есть экстеншн, capitalize называется)

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

Нахрен тогда вообще нужны инстанс методы?))00 В любой непонятной ситуации хуярим экстеншен и нормалды. Плохо чтоль? Хорошо. Для меня крч это скорее вопрос дисциплины больше: использовать экстеншены только тогда, когда нужно запилить торчащий наружу функционал(или функциональность, вечно путаю, пощадити эксперти) для внутреннего(читай, не доступного для тебя по каким- то причинам) класса. Поэтому я и доебался до экстеншена в том конкретном случае c клавиатурой. Когда я узнал про экстеншены я долго пытался для себя понять, когда их нужно юзать. Наблюдая сейчас за своим рабочим проектом и наблюдая ебучую мешанину из экстешенов и инстанс методов(найс определение метода, зобрал ksta) у меня ощущение складывается, что только я над этим вопросом и думал.

так, а экстеншен, который приватный в файле, или приватный инстанс-экстеншен — это тоже срёт в скоуп?)

Не срёт, а зачем он такой нужен? Потому что красиво? Имхо это злоупотребление фичей. =( Меня тригерит что он развернётся в статический метод, который и нахрен не нужен по факту.

почему статические метод плохо?)

там же оптимизации есть внутри файлов, не?

Я не говорил что статический метод это плохо, я говорил что он тут лишний. А лишний - это уже плохо само по себе.

дык а почему инстанс-метод менее лишний?)

может вообще эта функциональность бизнесу не так и нужна?) больше кода - больше багов, дольше билды

Инстанс метод это наипростейший из способов запилить новый функционал. Статик - сложнее. Поэтому он более лишний.

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
кто-то пользуется компонентами rx ? как их лучше ставить, через OPM? (lazarus)
Iluha Companets
15
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
Слушайте, ещё такая интересная задачка. Сделан аудит действий пользователей через триггеры в базе, соответственно каждый пользователь имеет свой логин и пароль в базе. Это пре...
Сергей Бычков
12
Скажите, тут нет проблемы? IMyInterface1 = interface function GetInterface2: IInterface2; ... function TMyInterface.GetInterface2: IInterface2; begin Result := TI...
Ruslan aka DUDE
18
вопрос по москвину - не понимаю вот такого вопроса похоже Сколько разных всегда завершающихся функций с типом a -> a -> b -> a -> a можно реализовать? Две функции одинаково...
Fedor
11
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
t.me/<username> и tg://user?id=<id> отваливаются по понятным причинам
Denis 🐍|👑 | darling! 🥰
7
Кстати, раз про скачивание файлов разговор зашел) Сделал бота для себя (транскрибирующего и суммаризирующего встречи) но не ожидал что за 2 месяца 10к пользователей набежит😅...
Andrey Obolenskiy
8
Карта сайта