Най-добри практики за кодиране, съвети и още за Android

Снимка на Джошуа Ърл на Unsplash

Аз съм разработчик вече повече от две години и начинът, по който съм кодирал, се промени чрез учене и споделяне с други. През последните две години видях хиляди редове от код, някои бяха прилични, някои бяха грозни и за щастие имаше и няколко секси. Ако сте програмист и можете да четете код като четене на вестник, нищо не бива, дори и горещото момиче, което следвате в Instagram. Така че нека копаем

Съвети за кодиране, а не трикове

Вложен Ако е

Мразя това, сериозно го правя, имате изявления, които изискват многократни проверки като този по-долу код и той отива толкова дълбоко наистина дълбоко , В кодирането, което всъщност е лошо .

ако (превозно средство! = нула) {
       ако (Vehicle.getCar ()! = null) {
           ако (Vehicle.getCar (). getModel ()! = null) {
               int цена = превозно средство.getCar (). getModel (). getPrice ();
           }

       }
   }

И нещото е, че може да се избегне, напълно можеш, като това. Както виждате по-долу, едната е по-четена и лесна за разбиране.

if (превозно средство == null || Vehicle.getCar () == null || vehicle.getCar (). getModel () == null) връщане;

int цена = превозно средство.getCar (). getModel (). getPrice ();

Обявете по подразбиране

Решете и декларирайте по подразбиране сега в константи, ако е необходимо за различни примитиви или обекти, които често използвате. Защо? Ето го напр. имате променлива цена (String), за която връщате нула, празен низ и „N / A“ на различни места. Не правете това. Това е престъпление срещу човечеството. Просто изберете любимия си, защото последователността е по-малко предразположена към грешки.

Свързване на низове в цикъл

Работата е в това, че вероятно вече знаете някои от тези неща, тъй като ще сте лошо, но сте толкова лошо, че просто го оставяте за бъдещото си себе си, приемайки, че той / тя ще бъде по-лош и ще го рефакторира, игнорирайки факта че той / тя може да бъде мързелив задник. Надявам се да получите точката f *** g .

Nope
за (Име на низ: имена) {
    име + = име;
}
Мда
StringBuilder nameBuilder = нов StringBuilder ();
за (Име на низ: имена) {
    nameBuilder.append (наименование);
}

наименуване

Кратки имена за променливи с кратък живот и добри и смислени за дълги живи, защото те ще бъдат с вас дълго-дълго време. Те са семейство.

Например напр. променливата на индекса в цикъл може да бъде 'i', но като променлива клас трябва да бъде 'index'

по избор

За Java това далеч не е най-доброто решение за грешка в милиарда долара и може да изглежда евтино решение, но трябва да го използвате, ако ви е трудно с пари.

връщане

Върнете празни колекции и списъци, където и да не можете да върнете нула, в противен случай милиарди ще станат трилиони или го направете, ако сте цилионер .

Когнитивна сложност

Определение: Това е психологическа характеристика или психологическа променлива, която показва колко сложна или проста е рамката и възприятието на човек.

При програмиране на метод с вложен, ако друг и по-голям размер причинява висока когнитивна сложност, означава по-малка разбираемост . Така че по-добре да разделите големи методи на логически разделени по-малки и използвайте по-горе трика на Nested If, за да го намалите. Също така SonarLint инструмент за анализ на статичен код изчислява това за вас в реално време в студио, можете да използвате сонар, за да видите как се справяте?

Lambda

Задължително е кодът ви да бъде точен и къдрян {} свободен, тъй като не всяка крива е добра. За щастие с android gradle> 3.0.0, които са изградили, това е поддръжка при проверка в студиото тук.

Актуализация

Винаги актуализирайте вашите инструменти, умения и вашия език, искам да кажа, че си дете дете (Go kotlin / flutter / react / hybrid / native ... Нашите 13 причини, защо !!) друго ще се случи.

Google е ядосан и те могат да блокират ***.

област

Използвайте региони, за да разделите фрагментите от кода в големи класове, като например британския с правилата за разделяне и управление, много ефективно питайте индийци .

// смислено име на региона на вашия логически отделен регион
свърши работата си тук
// endregion

начало

Създайте метод за стартиране, за да стартирате активност в самата дейност, за да не се повтаряте, защото кой обича това и ако вече го използвате, след това групирането на данните не просто преминава хиляди параметри, както е посочено по-долу.

публичен статичен невалиден старт (контекст на контекста, пакет от групи) {
    Intent starter = new Intent (контекст, NextActivity.class);
    starter.putExtra (AppConstants.BUNDLE, пакет);
    context.startActivity (стартер);
}

Максимални параметри в метода

Няма ограничение за нито един параметър, разрешен във функциите, но това не означава, че трябва да го правите, също като това, че GF не означава, че не можете да имате друг, но морални хора. В идеалния случай не трябва да има повече от 3–4 параметъра и ако имате нужда от повече от това, използвайте шаблон на обект на параметър.

форматиране

Форматирането на кода е много важно за четимостта, трябва да има вертикално и хоризонтално ограничение на кода, който сте поставили във вашите методи, освен ако не използвате вашите методи за изхвърляне на боклука. Студиото има вертикална линия, която не трябва да се пресича или да е подготвена да умре.

не разтягайте лимита сиУау, харесва ми!

Съвет

Джон Уудс. Код за четене

Някои добри статии за моите хора с Android

Правилен начин за внедряване на екрана Splash

От Големите нерви

Как да станем по-продуктивни в android с андроид студио плъгини

Как да направите перфектния Singleton?

Mindorks

Пиша тук, можете да ни следвате, Имаме хора дори по-добри от мен.

Инструменти и приставки

Не е нужно да знаете всичко, позволено е да правите грешки, стига някой да ви пренебрегне и да ви каже брато НЕ !!!. Опитайте тези инструменти по-долу.

SonarLint

Препоръчвам това, използвах го и се запознах с това от колега, понякога те могат да бъдат полезни, шегувам се. Той има няколко най-добри функции, за да сканирате модифицираните класове и автоматично ще ви критикува за лошия си код и колко грозен може да бъдете понякога. BTW Когнитивната сложност, за която говорихме по-рано, тя помага.

FindBug

Това е програма, която използва статичен анализ на кодове, за да намери грешки в java код точно като SonarLint. За да знаете повече за FindBug проверете това. Хората хвърлят монета или каквото и да е, но изберете един от тези инструменти.

За списък на всички най-добрите и най-използваните плъгини проверете по-долу

Принципи на кодиране

SOLID

Това е мнемоничен акроним, който помага да се дефинират петте основни обектно-ориентирани принципа на дизайн:

  • Принцип за единична отговорност
  • Принцип с отворен затвор
  • Принцип на заместване на Лисков
  • Принцип на разделяне на интерфейса
  • Принцип на инверсия на зависимостта

За пълна проверка на справка.

Правилото за момчетата на скаутите

Определение: Оставете лагера по-чист, отколкото сте го намерили

От чист код от чичо Боб, това правило ми харесва, така че когато работя върху лош код, рефактор, почиствам, намалявам и го правя по-смислен и четим от преди. Винаги поддържайте чистотата на околните си, защото президентът е твърде зает с изграждането на стена.

Не се повтаряйте (DRY)

Никога не напишете едно и също парче код два пъти, го прави вашето правило за желязо и хората строго забраняват това във вашето царство.

Принципът на критиците

Добре, че е напълно съставен, но е много логично. Когато преглеждате кода на съотборниците си, не бъдете приятел. Бъдете техен враг на арките, не им позволявайте да правят грешки, които може би трябва да почистите някой ден. Почистването на чужди глупости само ще направи ръката ви мръсна. Прилагане на добри практики при прегледи на кодове.

Има още такива съвети и най-добри практики, откъде идва, просто кликнете върху тази връзка, повярвайте ми, няма да пускам реклами и всички можете да допринасяте, да предлагате и редактирате грешките ми. Ще бъдете добри хора. Ще гласувам за теб

Следва продължение…

Благодаря, че прочетохте тази статия. Не забравяйте да щракнете върху , за да препоръчате тази статия, ако я намерите за полезна. Значи много за мен.

Вижте всички топ статии на blog.mindorks.com

Също така нека се свържем във фейсбук, twitter, github и linkedin.

Плеснете, споделете, ако ви харесва и ме последвайте за следващия ход.