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

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

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

39 ответов

24 просмотра

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) у меня ощущение складывается, что только я над этим вопросом и думал.

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

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

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

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

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

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

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

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта