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

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

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

39 ответов

22 просмотра

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

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

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

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

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

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

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

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

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

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

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

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта