More

    Hogyan írhatunk tiszta kódot az Android számára

    Mielőtt elkezdené írni a kódot, meg kell tanulni, hogyan kell kezelni, hogy skálázható. 20215. április 07. минут6782https://d2xzmw6cctk25h.cloudfront.net/post/2587/image/original-e7579398b3ed6a0bdf88514555498ce2.png

    Fordítás GeekBrains egy népszerű cikket közepes.

    Bob bácsi azt mondta a könyvében: “két okból olvasod ezt a cikket. Először is, Ön Fejlesztő. Másodszor, azt szeretnénk, hogy jobb, mint a fejlesztő.”

    Képzeld el, hogy egy könyvtárban vagy, és egy könyvet keresel. Ha a kiadványok vannak rendezve, katalogizált, akkor gyorsan megtalálja, amire szüksége van. És ha a könyvtár szép belső és Építészet, akkor különösen kényelmes a keresés során.

    Ugyanez a helyzet a kóddal. Ha azt szeretnénk, hogy hozzon létre valami jó, meg kell, hogy képes legyen írni érthető kódot szervezni azt a projektet. Amikor a kollégáknak meg kell találniuk valamit a kódban, elegendő lesz megnézni a módszerek, osztályok nevét, pekedzhey-t, hogy megértsék. És nem kell mindent a semmiből átírnod, feladnod a munkádat.

    Mi a tiszta kód?

    Как написать чистый код для Android

    Mint tudják, nem elég gyorsan írni egy alkalmazást. Ha más fejlesztők számára nehéz megérteni, akkor egyszerűen növeli a technikai adósságot.

    A kódot tisztának lehet nevezni, ha más fejlesztők azonnal megértik. Ezután olvasható, módosítható, bővíthető és karbantartható.

    Miért fontos ez

    A kód tükrözi a gondolkodási folyamatot. Ezért meg kell próbálnia a kódot egyszerűbbé és olvashatóbbá tenni.

    A tiszta kód főbb jellemzői

    • Elegáns – mosolyognia kell, mint amikor megcsodál egy jól megtervezett házat, vagy ízletes ételeket kóstol.
    • Gondoskodtak róla. sok időt töltöttél a kód strukturálásával és egyszerűsítésével. Időt töltöttünk a részletekkel. 
    • Fókuszált – minden módszer, osztály, modul egy világos cél, nem túlterhelt részleteket.
    • Nincsenek megismételhető funkciók a funkció nem duplikált.
    • Minden tesztet átmegy.
    • Az entitások száma – módszerek, osztályok, absztrakciók-tartják a minimum.

    Az intelligens fejlesztő és a profi közötti különbség az, hogy az utóbbi az olvashatóságot helyezi előtérbe. A szakemberek minden tapasztalatukat arra használják, hogy olyan kódot írjanak, amelyet mások meg fognak érteni.

    Martin Róbert

    Beszélő nevek létrehozása

    A jó beszélő név kiválasztása időt vesz igénybe, de végül még többet takarít meg. A változó, módszer vagy osztály nevének válaszolnia kell az összes alapvető kérdésre. Ez azt jelenti, hogy elmagyarázza, mi ez az osztály (módszer, változó), mit csinál, hogyan kell használni. Ha valamit meg kell magyaráznia a megjegyzésekben, ez azt jelenti, hogy a név nem eléggé mondja. Nézzünk egy példát:

     // Rossz nevek var a = 0 / / kor var w = 0 / / súly var h = 0 / / magasság / / rossz módszer nevek fun kor () fun súly () fun magasság () / / rossz név az osztály szerzés felhasználói adatok osztály userInfo () / / jó nevek var userAge = 0 var userheight = 0 / / Jó nevek fun setuserweight () fun setuserheight () / / jó nevek osztály felhasználó()

    Osztálynevek

    Az osztályok és objektumok nevének a típus ügyfél, WikiPage, Account, AddressParser főnevének kell lennie. Kerülje el a szavak kezelőjét, processzorát, adatait vagy információit a nevekben, mert nem sokat mondanak az objektum funkcionalitásáról. Ne használjon igéket.

    OLVASS TOVÁBB:  Hogyan lehet pénzt keresni az Android-alkalmazásokban a Play piacon
    OLVASS TOVÁBB:  Megnyitjuk a GeekUniversity "Network Engineer" karát

    Módszer nevek

    A módszerek nevének csak olyan igékre van szüksége, mint a postPayment, deletePage, save.

    Használjon neveket a tárgy területéről

    Ha nincs általánosan elfogadott kifejezés, használjon nevet a tárgy területéről. Ezután a fejlesztő, aki támogatja a kódot, megkérdezheti a szakértőt a jelentéséről.

    A cikk szerzőjének megjegyzése

    Például írsz szoftver távközlési berendezések. Szakterületei (szaktudás, megoldások) a szöveg-és hangkommunikáció, a videó kommunikáció. Nem számít, hogy milyen nyelven, hogyan és milyen platformon írsz-a tárgyterület nem változik ettől. Ha a fejlesztés egy alkalmazás létrehozására, illetve értékesítési fotó tartalom, akkor a tárgy terület magában foglalja a fényképezés, az e-kereskedelem. Bárki, aki először látja a kódot, azonnal meg kell értenie, hogy mit tesz az alkalmazás minden osztálya, modulja vagy oldala. Gondolj erre, amikor hozzáad valamit az osztály tárgyterületéről a névhez.

    A szilárd elvek alapján kódot írunk

    Ezeket az elveket Robert Martin vezette be az OOP gyakorlatába, a SOLID pedig mnemonikus rövidítés számukra. Leírják az egyszerű, olvasható, megbízható szoftvermegoldások tervezésének megközelítését, nem csak az Android fejlesztésében, hanem általában az objektumorientált programozásban is.

    Az egységes felelősség elve (SRP)

    Az osztálynak egy feladattal kell rendelkeznie. Csak egy osztály állapotát változtathatja meg egy adott feladat végrehajtásához. Ne add funkcionalitás egy osztály csak azért, mert lehet. Ha az osztály különböző feladatokat hajt végre, ossza ketté, vagy mozgassa a feladatok egy részét más osztályokba. Kerülje az isteni osztályokat. Nézzünk egy példát:

       osztály MyAdapter (val barátlista:lista < FriendListData.Barát>): RecyclerView.Adapter() { override fun onBindViewHolder (holder: MyViewHolder, pozíció: Int) {val friend = friendList[pozíció] val status = if(Barát.maritalStatus == "Married") {"Sold out"} else {"Available"} holder. name. text = friend.name holder.popText.szöveg = Barát.e-mail birtokosa.állapot.text = status } felülírása fun getItemCount (): Int { return friendList.méret } felülírása fun onCreateViewHolder (szülő: ViewGroup, viewType: Int): MyViewHolder { val view = LayoutInflater.tól től (szülő.kontextus).felfújja (R. elrendezés.item_friendlist, szülő, hamis) vissza MyViewHolder (nézet) } belső osztály MyViewHolder (nézet: nézet): RecyclerView.ViewHolder(nézet) { var név: TextView = view.findViewById (R. id.text1) var popText: TextView = view. findViewById(R. id. text2)     } } }    

    A RecyclerView osztályban.Az adapternek van egy onBindViewHolder módszere, amely idegen feladatokat kezel. Az adapternek csak Viewholdert kell létrehoznia, és adatokat kell továbbítania hozzá. Nem szabad feldolgozni ezeket az adatokat az onBindViewHolder módszerben. Még a módszer neve is ezt mondja nekünk.

    A nyitott-zárt elv (OCP)

    Az osztályoknak nyitottnak kell lenniük a bővítéshez, de módosításra zárva. Más szóval, ha valaki módosítani akarja az A osztályát, akkor meghosszabbíthatja (örökölheti tőle), de nem változtathatja meg közvetlenül.

    Egy egyszerű példa ugyanaz az Újrahasznosításnézet.Adapter. Örökölhet tőle, hogy saját végrehajtást hozzon létre a szükséges tulajdonságokkal és viselkedéssel. De ezeket a változtatásokat nem teheti meg közvetlenül a RecyclerView-ban.Adapter.

       class FriendListAdapter(val friendList: List): RecyclerView.Adapter () { belső osztály MyViewHolder (nézet: nézet): RecyclerView.ViewHolder (nézet) { var név: TextView = view.findViewById(R. id.text1) var popText: TextView = view.findViewById(R. id.text2) } override fun onBindViewHolder(holder: MyViewHolder, pozíció: Int) { val friend = friendList[pozíció] holder.setData (Barát) } felülírása fun getItemCount (): Int { return friendList.méret } felülírása fun onCreateViewHolder (szülő: ViewGroup, viewType: Int): MyViewHolder { val view = LayoutInflater.tól től (szülő.kontextus).felfújja (R. elrendezés.item_friendlist, szülő, hamis) vissza MyViewHolder (nézet)     } }    

    Barbara Liskov helyettesítési elve — Liskov helyettesítési elv-LSP)

    A gyermekosztály soha nem változtatja meg a szülői osztály viselkedését. Vagyis egy alosztály csak akkor tudja felülírni a szülőosztály módszereit, ha nem változtatja meg annak funkcionalitását.

    Például létrehoz egy felületet, amely onClick () módszerrel rendelkezik. Ezután implementálja az interfészt a MyActivity-ben, majd amikor az onClick () – t hívják, jelenítse meg benne a pirítóst. Ne írja ezt a funkciót az interfészbe. KOMPLEMENT onClick () csak felülírja azt a leszármazott osztály.

     interface ClickListener { fun onClick ()} class MyActivity: AppCompatActivity (), ClickListener { //........    felülbírálása fun onClick () {//új funkció az újradefiniált toast módszer ("OK gombra kattintva")    } }

    Interfész szegregáció elve (ISP)

    Friss cikkek

    Kapcsolódó történetek

    HOZZÁSZÓLOK A CIKKHEZ

    Kérjük, írja be véleményét!
    írja be ide nevét

    Maradjon op - Ge a napi híreket a postaládájában