Sobes.tech
Middle+

Ինչպե՞ս եք վերաբերվում շատ երկար դասարաններին, որոնք պարունակում են 2-4 հազար տող կոդ:

sobes.tech AI

Պատասխան AI-ից

Դրական չէ:

Երկար դասերը խախտում են միակ պատասխանատվության սկզբունքը (SRP) և ամենափոքր գիտելիքի սկզբունքը (Principle of Least Knowledge): Դա հանգեցնում է հետևյալ խնդիրների.

  • Կարդալ և հասկանալ դժվար է: Մեծ կոդի ծավալը դժվարացնում է դասի տրամաբանության ընկալումը:
  • Ապահովել և փոփոխել դժվար է: Դասի մի մասի փոփոխությունը կարող է անգիտակցաբար ազդել մյուս մասերի վրա, առաջացնելով սխալներ:
  • Կոդի կրկնության ռիսկ: Ֆունկցիոնալությունը կարող է կրկնվել դասի տարբեր մասերում:
  • Թեստավորման խնդիրներ: Մեծ դասի միավորային թեստերը դառնում են բարդ և ժամանակատար:
  • Կրկնվող օգտագործման հնարավորության նվազում: Հեշտ չէ առանձնացնել և օգտագործել ֆունկցիոնալության մասերը այլ վայրերում:

Իդեալում, դասերը պետք է լինեն կարճ և իրականացնել մեկ կոնկրետ խնդիր: Ֆունկցիոնալությունը պետք է բաժանվի ավելի փոքր, մասնագիտացված դասերի կամ ֆունկցիաների: Այդպիսի "հարիսխային" դասերի վերականգնումը առաջնահերթ խնդիր է կոդային բազայի որակն բարելավելու համար:

Կանխատեսում ենք, որ բաժանման համար կարող են օգտագործվել հետևյալ մոտեցումները:

  • Կապված տրամաբանությունը առանձնացնել առանձին դասերի: Օրինակ, տվյալների կառավարում, UI տրամաբանություն, բիզնես տրամաբանություն:
  • Դիզայնի նմուշների կիրառումը: MVC, MVP, MVVM, Repository, Factory և այլն:
  • Փոխել ավելի փոքր ֆունկցիաներ/մեթոդներ: Յուրաքանչյուր մեթոդ պետք է անի մեկ բան:
  • Kotlin-ում ընդարձակումների (extensions) օգտագործումը: ֆունկցիոնալության ավելացման համար առանց սկզբնական դասի փոփոխության: