Middle+
Ինչպե՞ս եք վերաբերվում շատ երկար դասարաններին, որոնք պարունակում են 2-4 հազար տող կոդ:
sobes.tech AI
Պատասխան AI-ից
Դրական չէ:
Երկար դասերը խախտում են միակ պատասխանատվության սկզբունքը (SRP) և ամենափոքր գիտելիքի սկզբունքը (Principle of Least Knowledge): Դա հանգեցնում է հետևյալ խնդիրների.
- Կարդալ և հասկանալ դժվար է: Մեծ կոդի ծավալը դժվարացնում է դասի տրամաբանության ընկալումը:
- Ապահովել և փոփոխել դժվար է: Դասի մի մասի փոփոխությունը կարող է անգիտակցաբար ազդել մյուս մասերի վրա, առաջացնելով սխալներ:
- Կոդի կրկնության ռիսկ: Ֆունկցիոնալությունը կարող է կրկնվել դասի տարբեր մասերում:
- Թեստավորման խնդիրներ: Մեծ դասի միավորային թեստերը դառնում են բարդ և ժամանակատար:
- Կրկնվող օգտագործման հնարավորության նվազում: Հեշտ չէ առանձնացնել և օգտագործել ֆունկցիոնալության մասերը այլ վայրերում:
Իդեալում, դասերը պետք է լինեն կարճ և իրականացնել մեկ կոնկրետ խնդիր: Ֆունկցիոնալությունը պետք է բաժանվի ավելի փոքր, մասնագիտացված դասերի կամ ֆունկցիաների: Այդպիսի "հարիսխային" դասերի վերականգնումը առաջնահերթ խնդիր է կոդային բազայի որակն բարելավելու համար:
Կանխատեսում ենք, որ բաժանման համար կարող են օգտագործվել հետևյալ մոտեցումները:
- Կապված տրամաբանությունը առանձնացնել առանձին դասերի: Օրինակ, տվյալների կառավարում, UI տրամաբանություն, բիզնես տրամաբանություն:
- Դիզայնի նմուշների կիրառումը: MVC, MVP, MVVM, Repository, Factory և այլն:
- Փոխել ավելի փոքր ֆունկցիաներ/մեթոդներ: Յուրաքանչյուր մեթոդ պետք է անի մեկ բան:
- Kotlin-ում ընդարձակումների (extensions) օգտագործումը: ֆունկցիոնալության ավելացման համար առանց սկզբնական դասի փոփոխության: