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 աջակցող գրադարանների տարբերակներ):
  • Կոդ, որը դժվար է հասկանալ և պահպանել առանց մեկնաբանությունների կամ անտեղի մեկնաբանություններով:
  • Կոմպոնենտների կյանքի ցիկլի սխալ կառավարում (օրինակ՝ հիշողության արտահոսք):

Այս կետերը հաճախ ցույց են տալիս հնարավոր խնդիրներ վստահելիության, պահպանելիության և կատարողականության հետ կապված։