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