Sobes.tech
Middle+

Pasakok apie antipatterns Android kūrime.

sobes.tech AI

Atsakymas iš AI

  • Ilgalaikių operacijų atlikimui naudokite AsyncTask (geriau naudoti Kotlin Coroutines arba RxJava).
  • Perduoti View/Context į ViewModel (gali sukelti atminties nutekėjimą).
  • Pagrindinei logikai naudokite tiesiogiai Activity arba Fragment paveldėjimą (geriau naudoti kompoziciją).
  • Kietai koduoti eilutės, skaičiai, spalvos vietoj išteklių naudojimo.
  • Užblokuoti pagrindinį srautą (MainThread) ilgomis sinchroninėmis operacijomis.
  • Naudoti statines kintamąsias duomenims saugoti, kurie reikalauja gyvavimo ciklo.
  • Per daug įterptų išdėstymų, kurie sukelia našumo problemas (ConstraintLayout arba LinearLayout su svoriu yra geriau).
  • Nenurodyti konfigūracijos pokyčių (ekrano pasukimo, kalbos keitimo) apdorojimo.
  • Tiesioginis prieigos prie duomenų bazės ar tinklo operacijų iš UI srauto.
  • Netinkamas SharedPreferences naudojimas dideliems objektams ar konfidencialiems duomenims saugoti.
  • Trūksta išimčių tvarkymo arba netinkama jos įgyvendinimas (pvz., tušti catch blokai).
  • Naudoti neaiškius intentus be patikrinimo, ar yra tinkamų aktyvumų (resolveActivity).
  • Netinkamas prenumeratų valdymas (pvz., RxJava), kuris sukelia nuotėkį.

Per daug įterptų išdėstymų pavyzdys:

<!-- Blogai -->
<LinearLayout>
    <LinearLayout>
        <TextView/>
    </LinearLayout>
</LinearLayout>

<!-- Gerai -->
<LinearLayout>
    <TextView/>
</LinearLayout>