Sobes.tech
Middle+

Шумо чӣ гуна хато дар кодро мешуморед, ки мехоҳед фавран иваз кунед?

sobes.tech AI

Ҷавоб аз AI

findViewById-ни истифода на ҷойи View Binding ё Data Binding. findViewById намехоҳад, ки бехатарии навъи дошта бошад ва ба коди иловагӣ оварда мерасонад.

// Нусхаи истифодаи findViewById
val textView: TextView = findViewById(R.id.myTextView)
textView.text = "Hello"

Вариантҳои пешфарз:

// Нусхаи истифодаи View Binding
// Дар build.gradle фаъол карда мешавад
// buildFeatures { viewBinding true }
val binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.myTextView.text = "Hello"
// Нусхаи истифодаи Data Binding
// Дар build.gradle фаъол карда мешавад
// buildFeatures { dataBinding true }
// Тарҳбандӣ дар дохили теги <layout> қарор дорад
val binding = DataBindingUtil.setContentView<ActivityMainBinding>(this, R.layout.activity_main)
binding.myTextView.text = "Hello"

Ҳамчунин, бояд ба назар гирифт:

  • Набудани коркарди арзишҳои эҳтимолии null.
  • Андозаи зиёди синф ё усул (қаллобӣ аз принсипи масъулияти ягона).
  • Истифодаи сатрҳо ё рақамҳои "магик" ба ҷои констант.
  • Такрори коди.
  • Набудани тестҳо (юнит, интегратсионӣ).
  • Истифодаи API-ҳои кӯҳна (масалан, версияҳои кӯҳнаи китобхонаҳои дастгирии Android).
  • Коди душвор барои фаҳмидан ва нигоҳдорӣ бе шарҳҳо ё бо шарҳҳои номувофиқ.
  • Идоракунии нодуруст дар давраи ҳаёти компонентҳо (масалан, шикастҳои хотира).

Ин нуқтаҳо одатан ба мушкилоти эҳтимолӣ дар боварӣ, нигоҳдорӣ ва иҷрои барнома ишора мекунанд.