Beste coderingsmethoden, tips en meer voor Android

Foto door Joshua Earle op Unsplash

Ik ben nu meer dan twee jaar ontwikkelaar en de manier waarop ik codeer is veranderd door te leren en met anderen te delen. In de afgelopen twee jaar heb ik duizenden regels code gezien, sommige waren redelijk, sommige waren lelijk en hadden gelukkig ook weinig sexy. Als je een programmeur bent en je kunt een code lezen zoals het lezen van een krant, gaat er niets boven dat, zelfs niet de hete meid die je volgt op Instagram. Dus laten we ingaan.

Coderingstips en geen trucs

Geneste If's

Ik haat dit, ik serieus, je hebt uitspraken die meerdere controles zoals deze onderstaande code vereisen en het gaat zo diep echt diep , In codering die eigenlijk slecht is .

if (voertuig! = null) {
       if (vehicle.getCar ()! = null) {
           if (vehicle.getCar (). getModel ()! = null) {
               int price = vehicle.getCar (). getModel (). getPrice ();
           }

       }
   }

En het ding is, het kan worden vermeden, dat kan je helemaal, op deze manier. Zoals u hieronder ziet, is een leesbaarder en gemakkelijker te begrijpen.

if (vehicle == null || vehicle.getCar () == null || vehicle.getCar (). getModel () == null) retourneren;

int price = vehicle.getCar (). getModel (). getPrice ();

Standaardwaarden opgeven

Bepaal en verklaar nu standaard in constanten indien nodig voor verschillende primitieve of objecten die u vaak gebruikt. Waarom? Hier is het voor b.v. u hebt een prijs (String) variabele, waarvoor u null, lege string en "N / A" op verschillende plaatsen retourneert. Doe dit niet. Het is een misdaad tegen de menselijkheid . Kies gewoon uw favoriet omdat consistentie minder foutgevoelig is.

String-aaneenschakeling in lus

Het ding is dat je waarschijnlijk al een aantal van deze dingen weet, want je bent badass maar je bent zo badass dat je het gewoon aan je toekomstige zelf overlaat, ervan uitgaande dat hij / zij meer badass zal zijn en het zal negeren, het feit negerend dat hij / zij een luie kont kon zijn. Ik hoop dat je het f *** punt krijgt .

Nee
voor (tekenreeksnaam: namen) {
    naam + = naam;
}
JEP
StringBuilder nameBuilder = new StringBuilder ();
voor (tekenreeksnaam: namen) {
    nameBuilder.append (name);
}

Naamgeving

Korte namen voor kortlevende variabelen en goed en betekenisvol voor langlevende, omdat ze lang bij je zullen zijn. Ze zijn familie.

Voor b.v. indexvariabele binnen voor lus kan 'i' zijn, maar als klassenvariabele 'index'

facultatief

Voor Java is dit verreweg de beste oplossing voor de fout van miljard dollar en het lijkt misschien een goedkope oplossing, maar je moet het gebruiken als je te weinig geld hebt.

terugkeer

Retourneer lege verzamelingen en lijsten waar u niet null kunt retourneren, anders wordt miljard triljoen of doet het bro, als u een miljonair bent .

Cognitieve complexiteit

Definitie: Het is een psychologische karakteristiek of psychologische variabele die aangeeft hoe complex of eenvoudig het kader en de perceptuele vaardigheid van een persoon is.

Bij het programmeren van een methode waarbij genest of anders en grotere omvang een hoge cognitieve complexiteit veroorzaakt, betekent minder begrijpelijkheid . Het is dus beter om grote methoden in logisch gescheiden kleinere methoden te splitsen en boven Geneste If's truc te gebruiken om het te verminderen. Ook SonarLint een statische code analyse tool berekent dit voor u in realtime in studio kunt u sonar gebruiken om te zien hoe het met u gaat?

lambda

Het is een must om uw code nauwkeurig te houden en krullen {} vrij te houden, omdat niet elke curve goed is. Gelukkig met Android Gradle> 3.0.0 die ze hebben gebouwd, is het ondersteuning in Studio Check hier.

Bijwerken

Update altijd je tools, vaardigheden en je taal, ik bedoel let op je taalkind (Go kotlin / flutter / react / hybride / native ... Onze 13 redenen waarom !!) anders zal dit gebeuren.

Google is boos en ze kunnen je *** blokkeren.

Regio

Gebruik regio's om uw codefragmenten in grote klassen te scheiden, zoals britisher deed met het verdeel- en regelbeleid, zeer effectief, vraag het aan indianen .

// regio betekenisvolle naam van uw logisch gescheiden regio
doe je werk hier.
// endregion

Begin

Maak een startmethode om activiteit in activiteit zelf te starten om te voorkomen dat je jezelf herhaalt, want wie houdt daar van en als je het al gebruikt, bundel dan de gegevens niet gewoon duizend parameters zoals hieronder.

openbare statische ongeldige start (context, bundelbundel) {
    Intent starter = new Intent (context, NextActivity.class);
    starter.putExtra (AppConstants.BUNDLE, bundel);
    context.startActivity (starter);
}

Max parameters in methode

Er is geen limiet voor geen enkele parameter toegestaan ​​in functies, maar dat betekent niet dat je het moet doen, net zoals een GF betekent niet dat je geen andere morele morele mensen kunt hebben. Idealiter zouden er niet meer dan 3-4 parameters moeten zijn en als u meer dan dat nodig hebt, gebruik dan het Parameter Object-patroon.

opmaak

Code-opmaak is erg belangrijk voor de leesbaarheid, er moet een verticale en horizontale beperking zijn voor code die u in uw methoden invoert, tenzij u uw methoden voor afvalverwerking gebruikt. Studio heeft een verticale lijn die niet mag worden overschreden of niet moet sterven.

overschrijd je limiet niet.Wow ik vind het leuk!

Advies

John Woods. Code voor leesbaarheid

Enkele goede artikelen voor mijn Android-mensen

Juiste manier om Splash-scherm te implementeren

Van de grote nerds

Hoe productiever te worden in Android met plug-ins voor Android Studio

Hoe maak je de perfecte Singleton?

Mindorks

Ik schrijf hier dat je ons kunt volgen, we hebben nog betere mensen dan ik.

Hulpmiddelen en plug-ins

Je hoeft niet alles te weten, je mag fouten maken zolang iemand je over het hoofd ziet en je zegt NEE !!! Probeer deze onderstaande tools.

SonarLint

Ik raad dit aan, ik heb het gebruikt en ik heb dit van een collega leren kennen, soms kunnen ze nuttig zijn, grapje. Het heeft verschillende functies beste om gewoon de aangepaste klassen te scannen en het zal je automatisch bekritiseren voor je slechte code en hoe lelijk je soms kunt zijn. BTW Cognitieve complexiteit waar we het eerder over hadden, het helpt.

FindBug

Het is een programma dat statische code-analyse gebruikt om bugs in Java-code te vinden, net als SonarLint. Controleer dit voor meer informatie over FindBug. Fellas gooit een munt of wat dan ook maar kiest een van deze tools.

Kijk hieronder voor een lijst met de beste en meest gebruikte plug-ins

De coderingsprincipes

SOLIDE

Het is een ezelsbruggetje dat helpt bij het definiëren van de vijf basisobjecten voor objectgeoriënteerd ontwerp:

  • Eén verantwoordelijkheidsprincipe
  • Open-gesloten principe
  • Liskov-vervangingsprincipe
  • Interface Segregation Principle
  • Afhankelijkheid Inversie Principe

Voor volledige referentiecontrole.

De padvindersregel

Definitie: Verlaat de camping schoner dan je hem hebt gevonden

Van schone code door oom Bob, ik hou van deze regel, dus als ik aan een slechte code werk, verander ik, maak ik de code schoon, verminder en maak ik deze meer betekenisvol en leesbaarder dan voorheen. Houd de omgeving altijd schoon, want president is te druk met het bouwen van een muur.

Herhaal jezelf niet (DRY)

Schrijf nooit twee keer hetzelfde stukje code, maak het je ijzeren regel en mensen verbieden dit strikt in je koninkrijk.

Het Critici-principe

Oké, het is helemaal verzonnen maar het is heel logisch. Wanneer je de code van je teamgenoten bekijkt, wees dan geen vriend, wees hun aartsvijand, laat ze geen fouten maken die je misschien ooit moet opruimen. Het reinigen van andermans shit maakt je hand alleen maar vuil. Handhaaf goede praktijken in codebeoordelingen.

Er zijn meer van dergelijke tips en best practices waar het vandaan komt, klik gewoon op deze link, vertrouw me, ik zou geen advertenties weergeven en jullie kunnen allemaal mijn fouten bijdragen, voorstellen en bewerken. Je zult goede mensen zijn. Ik stem op je.

Wordt vervolgd…

Bedankt voor het lezen van dit artikel. Klik op om dit artikel aan te bevelen als u het nuttig vond. Het betekent veel voor me.

Bekijk alle topartikelen op blog.mindorks.com

Laten we ook verbinding maken op Facebook, Twitter, Github en linkedin.

Klap, deel als je het leuk vindt en volg me voor de volgende zet.