Middle+
Räägi Androidi arendamise antipatternidest.
sobes.tech AI
Vastus AI-lt
- Pikkade operatsioonide jaoks kasutage
AsyncTask(parem on kasutada Kotlin Coroutines või RxJava). - View/Context edastamine ViewModelile (põhjustab mälulekkeid).
- Põhilise loogika jaoks otse
ActivityvõiFragmentpärimine (parem on kasutada koostamist). - Ridade, numbrite, värvide rangeerimine ressursside asemel.
- Pikaajaliste sünkroonsete operatsioonidega peamise niidi (
MainThread) blokeerimine. - Statiliste muutujate kasutamine andmete salvestamiseks, mis nõuavad elutsüklit.
- Liiga palju sisse ehitatud paigutusi, mis põhjustavad jõudlusprobleeme (
ConstraintLayoutvõiLinearLayoutkoos kaalu on parem). - Konfiguratsioonimuutuste (ekraani pööramine, keele muutmine) töötlemise puudumine.
- Otse andmebaaside või võrgutoimingute kasutamine UI niidist.
SharedPreferencesvale kasutamine suurte objektide või konfidentsiaalsete andmete salvestamiseks.- Väljaheidete töötlemise või selle vale rakendamise puudumine (näiteks tühjad
catchplokid). - Ebaselgete kavatsuste kasutamine ilma sobivate tegevuste olemasolu kontrollimata (
resolveActivity). - Vale tellimuste haldamine (näiteks RxJava-s), mis põhjustab lekked.
Liiga palju sisse ehitatud paigutuse näide:
<!-- Halb -->
<LinearLayout>
<LinearLayout>
<TextView/>
</LinearLayout>
</LinearLayout>
<!-- Hea -->
<LinearLayout>
<TextView/>
</LinearLayout>