JavaRush /Блоги Java /Random-TG /Қоидаҳои навиштани код: аз сохтани система то кор бо объе...

Қоидаҳои навиштани код: аз сохтани система то кор бо объектҳо

Дар гурӯҳ нашр шудааст
Нимаи хуб ба ҳама: имрӯз ман мехоҳам бо шумо дар бораи дуруст навиштани code сӯҳбат кунам. Вақте ки ман бори аввал барномасозӣ карданро оғоз кардам, дар ҳеҷ куҷо равшан навишта нашуда буд, ки шумо ин тавр нависед ва агар ин тавр нависед, ман шуморо меёбам ва…. Дар натича дар сарам саволхои зиёде пайдо шуд: чи тавр дуруст навиштан, дар ин ё он фасли программа ба кадом принципхо риоя кардан лозим аст ва гайра. Қоидаҳои навиштани code: аз сохтани система то кор бо an objectҳо - 1Хуб, на ҳама мехоҳанд, ки фавран ба китобҳое мисли Кодекси тоза ғарқ шаванд, зеро дар онҳо бисёр чиз навишта шудааст, аммо дар аввал каме равшан аст. Ва вақте ки шумо хонданро ба итмом мерасонед, шумо метавонед ҳама хоҳиши рамзгузорӣ карданро боздоред. Бинобар ин, дар асоси гуфтаҳои боло, имрӯз ман мехоҳам ба шумо як дастури хурд (маҷмӯи тавсияҳои хурд) барои навиштани codeи сатҳи болотар пешниҳод кунам. Дар ин мақола мо қоидаҳо ва мафҳумҳои асосиро баррасӣ хоҳем кард, ки ба эҷоди система ва кор бо интерфейсҳо, синфҳо ва an objectҳо алоқаманданд. Мутолиаи ин мавод вақти зиёдро намегирад ва умедворам, ки шумо дилгир шавед. Ман аз боло ба поён, яъне аз сохтори умумии барнома то тафсилоти мушаххастар меравам. Қоидаҳои навиштани code: аз сохтани система то кор бо an objectҳо - 2

Система

Хусусиятҳои умумии матлуби система инҳоянд:
  • мураккабии ҳадди ақал - лоиҳаҳои аз ҳад мураккаб бояд пешгирӣ карда шаванд. Чизи асосӣ содда ва возеҳият аст (беҳтарин = содда);
  • осонии нигоҳдорӣ - ҳангоми сохтани барнома, шумо бояд дар хотир доред, ки он бояд дастгирӣ карда шавад (ҳатто агар он шумо набошед), аз ин рӯ code бояд равшан ва возеҳ бошад;
  • пайвасти заиф - шумораи ҳадди ақали пайвастҳо байни қисмҳои гуногуни барнома (истифодаи ҳадди аксар аз принсипҳои OOP);
  • истифодаи такрорӣ - тарҳрезии система бо қобorяти дубора истифода бурдани порчаҳои он дар дигар барномаҳо;
  • интиқол - система бояд ба осонӣ ба муҳити дигар мутобиқ карда шавад;
  • услуби ягона - тарҳрезии система бо услуби ягона дар қисмҳои гуногуни он;
  • васеъшавӣ (миқёспазирӣ) - такмил додани система бе вайрон кардани сохтори асосии он (агар шумо порчаро илова кунед ё тағир диҳед, ин набояд ба боқимонда таъсир расонад).
Сохтани барномае, ки тағиротро талаб намекунад, бидуни илова кардани функсия амалан ғайриимкон аст. Ба мо лозим меояд, ки пайваста унсурҳои навро ҷорӣ кунем, то ки мағзи сари мо бо замон баробар бошад. Ва дар ин ҷо миқёспазирӣ ба бозӣ меояд . Миқёспазирӣ аслан васеъ кардани барнома, илова кардани функсияҳои нав, кор бо захираҳои бештар (ё ба ибораи дигар, бо бори бештар) мебошад. Яъне, мо бояд баъзе қоидаҳоро риоя кунем, масалан, кам кардани пайвастагии система тавассути баланд бардоштани модулият, то илова кардани мантиқи нав осонтар шавад.

Марҳилаҳои тарҳрезии система

  1. Системаи нармафзор - тарҳрезии барнома дар шакли умумӣ.
  2. Ҷудокунӣ ба зерсистемаҳо/бастаҳо - муайян кардани қисмҳои аз ҷиҳати мантиқӣ ҷудошаванда ва муайян кардани қоидаҳои ҳамкории байни онҳо.
  3. Ба синфхо таксим кардани зерсистемахо - таксим кардани кисмхои система ба синфхо ва интерфейсхои мушаххас, инчунин муайян кардани таъсири мутакобилаи байни онхо.
  4. Ба усулхо таксим кардани синфхо таърифи пурраи усулхои зарурии синф мебошад, ки дар асоси вазифаи ин синф асос ёфтааст. Тарҳрезии усул - муайянкунии муфассали функсияҳои усулҳои инфиродӣ.
Одатан, таҳиягарони оддӣ барои тарҳрезӣ масъуланд ва меъмори барнома барои ҷузъҳои дар боло тавсифшуда масъул аст.

Принсипҳо ва консепсияҳои асосии тарҳрезии система

Идиоми ибтидоии танбалӣ Барнома то истифода шудани он вақти эҷоди an objectро сарф намекунад, ки ин раванди оғозкуниро суръат мебахшад ва бори коллекторҳои ахлотро кам мекунад. Аммо шумо набояд бо ин хеле дур наравед, зеро ин метавонад ба вайрон кардани модулият оварда расонад. Мумкин аст, ки ҳамаи қадамҳои тарроҳиро ба як қисми мушаххас, масалан, асосӣ ё ба синфе, ки ба мисли фабрика кор мекунад, интиқол диҳед . Яке аз ҷанбаҳои рамзи хуб ин набудани рамзи зуд-зуд такроршаванда мебошад. Чун қоида, чунин code дар синфи алоҳида ҷойгир карда мешавад, то он метавонад дар вақти лозима даъват карда шавад. AOP Алоҳида, ман мехоҳам барномасозии ба ҷанба нигаронидашударо зикр намоям . Ин барномасозӣ тавассути ҷорӣ кардани мантиқи охири ба охир аст, яъне codeи такрорӣ ба синфҳо - ҷанбаҳо гузошта мешавад ва ҳангоми расидан ба шартҳои муайян даъват карда мешавад. Масалан, ҳангоми дастрасӣ ба усул бо номи муайян ё дастрасӣ ба тағирёбандаи навъи муайян. Баъзан ҷанбаҳо метавонанд печида шаванд, зеро фавран маълум нест, ки code аз куҷо даъват шудааст, аммо ба ҳар ҳол, ин як функсияи хеле муфид аст. Махсусан, ҳангоми кэш ё сабт: мо ин функсияро бе илова кардани мантиқи иловагӣ ба синфҳои муқаррарӣ илова мекунем. Шумо метавонед бештар дар бораи OAP дар ин ҷо бихонед . 4 Қоидаҳои тарҳрезии меъмории оддӣ мувофиқи Кент Бек
  1. Экспрессивӣ - зарурати ҳадафи возеҳ ифодаёфтаи синф, тавассути номгузории дуруст, андозаи хурд ва риояи принсипи як масъулияти ягона (мо онро дар поён муфассалтар дида мебароем) ба даст оварда мешавад.
  2. Ҳадди ақали дарсҳо ва усулҳо - бо хоҳиши шикастани синфҳо ба қадри имкон хурд ва якҷониба, шумо метавонед хеле дур равед (антипалтер - тирандозӣ). Ин принсип талаб мекунад, ки система паймон нигоҳ дошта шавад ва аз ҳад дур наравад, барои ҳар атса синф эҷод кунад.
  3. Набудани такрорӣ - рамзи изофӣ, ки иштибоҳ мекунад, аломати тарҳрезии сусти система аст ва ба ҷои алоҳида интиқол дода мешавад.
  4. Иҷрои ҳама санҷишҳо - системае, ки аз ҳама санҷишҳо гузаштааст, назорат карда мешавад, зеро ҳама гуна тағирот метавонад ба нокомии санҷишҳо оварда расонад, ки метавонад ба мо нишон диҳад, ки тағирот дар мантиқи дохorи усул инчунин ба тағирёбии рафтори интизоршуда оварда мерасонад. .
SOLID Ҳангоми тарҳрезии система бояд принсипҳои маъруфи SOLID ба назар гирифта шаванд: S - масъулияти ягона - принсипи масъулияти ягона; О - кушода-пўшида - принсипи ошкоро/наздикї; Л - ивазкунии Лисков - Принсипи ивазкунии Барбара Лисков; I - сегрегатсияи интерфейс - принсипи ҷудокунии интерфейс; D - инversionи вобастагӣ - принсипи инversionи вобастагӣ; Мо дар бораи ҳар як принсип махсус таваққуф намекунем (ин аз доираи ин мақола каме берун аст, аммо шумо метавонед дар ин ҷо маълумоти бештар гиред

Интерфейс

Эҳтимол, яке аз марҳилаҳои муҳими эҷоди синфи мувофиқ эҷоди интерфейси мувофиқ бошад, ки абстраксияи хуберо нишон медиҳад, ки тафсилоти татбиқи синфро пинҳон мекунад ва ҳамзамон як гурӯҳи усулҳоро ифода мекунад, ки бо ҳамдигар комилан мувофиқанд. . Биёед ба яке аз принсипҳои SOLID - сегрегатсияи интерфейс бодиққат назар кунем : муштариён (синфҳо) набояд усулҳои нолозимеро, ки онҳо истифода нахоҳанд кард, татбиқ кунанд. Яъне, агар мо дар бораи сохтани интерфейсҳо бо миқдори ҳадди ақали усулҳо сухан ронем, ки барои иҷрои ягона вазифаи ин интерфейс нигаронида шудаанд (барои ман, он ба масъулияти ягона хеле монанд аст ), беҳтар аст, ки якчанд намуди хурдтарро эҷод кунед. ба ҷои як интерфейси дабдабанок. Хушбахтона, синф метавонад зиёда аз як интерфейсро татбиқ кунад, ба монанди мерос. Шумо инчунин бояд дар бораи номгузории дурусти интерфейсҳо фаромӯш накунед: ном бояд вазифаи худро то ҳадди имкон дақиқ инъикос кунад. Ва, албатта, хар кадар кутох бошад, хамон кадар нофахмихо кам мешавад. Маҳз дар сатҳи интерфейс аст, ки шарҳҳо барои ҳуҷҷатгузорӣ одатан навишта мешаванд , ки дар навбати худ ба мо кӯмак мекунад, ки ба таври муфассал шарҳ диҳанд, ки усул чӣ кор кунад, кадом далелҳоро талаб мекунад ва он чӣ бармегардад.

Синф

Қоидаҳои навиштани code: аз сохтани система то кор бо an objectҳо - 3Ташкor дохorи машгулиятхоро дида мебароем. Дурусттараш, баъзе ақидаҳо ва қоидаҳое, ки ҳангоми сохтани синфҳо бояд риоя шаванд. Одатан, синф бояд бо рӯйхати тағирёбандаҳо оғоз шавад, ки бо тартиби муайян ҷойгир шудаанд:
  1. константаҳои статикии ҷамъиятӣ;
  2. константаҳои хусусии статикӣ;
  3. тағирёбандаҳои мисоли хусусӣ.
Минбаъд конструкторҳои гуногун бо тартиби аз камтар ба далелҳои зиёд ҷойгиранд. Пас аз онҳо усулҳо аз дастрасии бештар кушода ба дастрасии пӯшидатарин меоянд: чун қоида, усулҳои хусусие, ки татбиқи баъзе функсияҳоро пинҳон мекунанд, ки мо мехоҳем маҳдуд кунем, дар поёни онҳо ҷойгиранд.

Андозаи синф

Ҳоло ман мехоҳам дар бораи андозаи синф сӯҳбат кунам. Қоидаҳои навиштани code: аз сохтани система то кор бо an objectҳо - 4Биёед яке аз принсипҳои SOLID - масъулияти ягонаро ба ёд орем . Масъулияти ягона — принципи масъулияти ягона. Дар он гуфта мешавад, ки хар як an object танхо як максад (масъулият) дорад ва мантики хамаи усулхои он ба таъмини он нигаронида шудааст. Яъне, дар асоси ин, мо бояд аз синфҳои калон ва дабдабанок (ки аз рӯи табиати худ антиплаттер – “an objectи илоҳӣ” аст) канорагирӣ кунем ва агар дар синф усулҳои зиёди мантиқи гуногунранг ва гетерогенӣ дошта бошем, мо бояд фикр кунем. дар бораи ба якчанд қисмҳои (синфҳо) мантиқӣ тақсим кардани он. Ин, дар навбати худ, хондани рамзро беҳтар мекунад, зеро ба мо барои фаҳмидани ҳадафи усул вақти зиёд лозим нест, агар мо ҳадафи тахминии синфи додашударо донем. Шумо инчунин бояд ба номи синф диққат диҳед : он бояд мантиқи онро инъикос кунад. Фарз мекунем, ки агар мо синфе дошта бошем, ки номаш 20+ калима дорад, мо бояд дар бораи рефакторинг фикр кунем. Ҳар як синфе, ки худро эҳтиром мекунад, набояд чунин миқдори зиёди тағирёбандаҳои дохилӣ дошта бошад. Дар асл, ҳар як усул бо яке аз онҳо ё якчанд кор мекунад, ки боиси пайвастагии бештар дар дохor синф мегардад (ки маҳз ҳамон чизест, ки он бояд бошад, зеро синф бояд дар як маҷмӯъ бошад). Дар нати-ча, афзудани мутаносибии синфхо боиси кам шудани он мегардад ва табиист, ки шумораи синфхои мо зиёд мешавад. Барои баъзеҳо, ин хашмгин аст; онҳо бояд бештар ба дарс раванд, то бубинанд, ки вазифаи мушаххаси бузург чӣ гуна кор мекунад. Дар байни чизҳои дигар, ҳар як синф як модули хурд аст, ки бояд ҳадди аққал бо дигарон пайваст бошад. Ин изолятсия шумораи тағиротеро, ки мо бояд ҳангоми илова кардани мантиқи иловагӣ ба синф анҷом диҳем, кам мекунад.

Объектхо

Правила написания codeа: от создания системы до работы с an objectми - 5

Инкапсуляция

Дар ин ҷо мо пеш аз ҳама дар бораи яке аз принсипҳои OOP - инкапсуляция гап мезанем . Ҳамин тавр, пинҳон кардани татбиқ ба эҷоди қабати методӣ байни тағирёбандаҳо (беандешона маҳдуд кардани дастрасӣ тавассути усулҳои ягона, гирандагон ва танзимкунандагон, ки хуб нест, зеро тамоми нуқтаи инкапсуляция гум мешавад) намерасад. Пинҳон кардани дастрасӣ ба ташаккули абстраксияҳо нигаронида шудааст, яъне синф усулҳои умумии мушаххасро пешниҳод мекунад, ки тавассути онҳо мо бо маълумоти худ кор мекунем. Аммо корбар набояд дақиқ донад, ки мо бо ин маълумот чӣ гуна кор мекунем - он кор мекунад ва ин хуб аст.

Қонуни Деметр

Шумо инчунин метавонед Қонуни Деметрро баррасӣ кунед: он маҷмӯи хурди қоидаҳоест, ки барои идора кардани мураккабӣ дар сатҳи синф ва усул кӯмак мекунад. Пас, фарз кунем, ки мо an object дорем Carва он усули - move(Object arg1, Object arg2). Тибқи Қонуни Деметр, ин усул танҳо бо занг задан маҳдуд аст:
  • усулҳои худи an object Car(ба ибораи дигар, ин);
  • усулхои an objectхои дар move;
  • усулхои an objectхои гузарондашуда хамчун аргументхо - arg1, arg2;
  • усулҳои an objectҳои дохилӣ Car(ҳамон ин).
Ба ибораи дигар, қонуни Деметер як қоидаи кӯдакон аст - шумо метавонед бо дӯстон сӯҳбат кунед, аммо на бо бегонагон .

Сохтори маълумот

Сохтори маълумот маҷмӯи унсурҳои алоқаманд аст. Ҳангоми баррасии an object ҳамчун сохтори додаҳо, он маҷмӯи унсурҳои додаҳо мебошад, ки бо усулҳо коркард карда мешаванд, ки мавҷудияти онҳо ба таври номувофиқ ифода карда мешавад. Яъне, ин an objectест, ки ҳадафаш нигоҳ доштан ва кор кардан (коркарди) додаҳои захирашуда мебошад. Фарқи калидӣ аз an objectи муқаррарӣ дар он аст, ки an object маҷмӯи усулҳоест, ки дар унсурҳои додаҳо амал мекунанд, ки мавҷудияти онҳо дар назар аст. Шумо фаҳмидед? Дар an objectи муқаррарӣ ҷанбаи асосӣ усулҳост ва тағирёбандаҳои дохилӣ ба кори дурусти онҳо нигаронида шудаанд, аммо дар сохтори додаҳо ин роҳи дигар аст: усулҳо кор бо унсурҳои захирашударо дастгирӣ мекунанд ва кӯмак мекунанд, ки дар ин ҷо унсурҳои асосӣ мебошанд. Як намуди сохтори додаҳо Объекти интиқоли маълумот (DTO) мебошад . Ин синф бо тағирёбандаҳои оммавӣ мебошад ва ҳеҷ гуна усул (ё танҳо усулҳои хондан/навиштан), ки маълумотро ҳангоми кор бо пойгоҳи додаҳо интиқол медиҳад, бо таҳлor паёмҳо аз розеткаҳо кор мекунад ва ғайра. Одатан, маълумот дар чунин an objectҳо муддати тӯлонӣ нигоҳ дошта намешаванд ва қариб фавран ба an objectе табдил ёфт, ки замимаи мо бо он кор мекунад. Дар навбати худ, субъект инчунин сохтори додаҳост, аммо ҳадафи он иштирок дар мантиқи тиҷорат дар сатҳҳои гуногуни барнома мебошад, дар ҳоле ки DTO интиқоли маълумот ба/аз барнома мебошад. Намунаи DTO:
@Setter
@Getter
@NoArgsConstructor
public class UserDto {
    private long id;
    private String firstName;
    private String lastName;
    private String email;
    private String password;
}
Ҳама чиз равшан ба назар мерасад, аммо дар ин ҷо мо дар бораи мавҷудияти гибридҳо маълумот мегирем. Гибридҳо an objectҳое мебошанд, ки дорои усулҳои коркарди мантиқи муҳим ва нигоҳ доштани унсурҳои дохилӣ ва усулҳои дастрасӣ (даст/танзим) ба онҳо мебошанд. Чунин an objectхо бесарусомон буда, илова кардани усулхои навро душвор мегардонанд. Шумо набояд онҳоро истифода баред, зеро маълум нест, ки онҳо барои чӣ пешбинӣ шудаанд - нигоҳ доштани унсурҳо ё иҷрои ягон намуди мантиқ. Шумо метавонед дар бораи намудҳои имконпазири an objectҳо дар ин ҷо хонед .

Принсипҳои эҷоди тағирёбандаҳо

Правила написания codeа: от создания системы до работы с an objectми - 6Биёед каме дар бораи тағирёбандаҳо фикр кунем, ё дурусттар, дар бораи принсипҳои эҷоди онҳо фикр кунем:
  1. Идеалӣ, шумо бояд тағирёбандаро фавран пеш аз истифодаи он эълон кунед ва оғоз кунед (ба ҷои эҷоди он ва фаромӯш кардани он).
  2. То ҳадди имкон, тағирёбандаҳоро ниҳоӣ эълон кунед, то ки арзиши онҳо пас аз оғозёбӣ тағир наёбад.
  3. Дар бораи тағирёбандаҳои ҳисобкунак фаромӯш накунед (одатан мо онҳоро дар як намуди ҳалқа истифода мебарем for, яъне мо набояд аз нав танзим кардани онҳоро фаромӯш кунем, вагарна он метавонад тамоми мантиқи моро вайрон кунад).
  4. Шумо бояд кӯшиш кунед, ки тағирёбандаҳоро дар созанда оғоз кунед.
  5. Агар интихоби байни истифодаи an object бо ё бидуни истинод ( new SomeObject()) мавҷуд бошад, бидуни ( ) -ро интихоб кунед, зеро ин an object як бор истифода мешавад, ҳангоми ҷамъоварии партовҳои навбатӣ нест карда мешавад ва захираҳоро беҳуда сарф намекунад.
  6. Муҳлати ҳаёти тағирёбандаҳоро то ҳадди имкон кӯтоҳ кунед (масофа байни эҷоди тағирёбанда ва дастрасии охирин).
  7. Тағйирёбандаҳоеро, ки дар давра истифода мешаванд, фавран пеш аз давра оғоз кунед, на дар оғози усули дорои давра.
  8. Ҳамеша бо доираи маҳдудтарин оғоз кунед ва онро танҳо дар ҳолати зарурӣ васеъ кунед (шумо бояд кӯшиш кунед, ки тағирёбанда то ҳадди имкон маҳаллӣ бошад).
  9. Ҳар як тағирёбандаро танҳо барои як мақсад истифода баред.
  10. Аз тағирёбандаҳои дорои маънои пинҳон худдорӣ кунед (тағйирёбанда дар байни ду вазифа канда шудааст, яъне навъи он барои ҳалли яке аз онҳо мувофиқ нест).
Правила написания codeа: от создания системы до работы с an objectми - 7

Усулҳо

Правила написания codeа: от создания системы до работы с an objectми - 8Биёед бевосита ба татбики мантики худ, яъне ба усулхо гузарем.
  1. Қоидаи аввал компактӣ аст. Идеалӣ, як усул набояд аз 20 сатр зиёд бошад, бинобар ин, агар, масалан, усули оммавӣ ба таври назаррас "варам кунад", шумо бояд дар бораи интиқол додани мантиқи ҷудошуда ба усулҳои хусусӣ фикр кунед.

  2. Қоидаи дуюм ин аст, ки блокҳо дар фармонҳои if, else, whileва ғайра набояд хеле лона гузошта шаванд: ин хониши codeро ба таври назаррас коҳиш медиҳад. Идеалӣ, лона бояд на бештар аз ду блок бошад {}.

    Инчунин тавсия дода мешавад, ки code дар ин блокҳо паймон ва содда карда шавад.

  3. Қоидаи сеюм ин аст, ки усул бояд танҳо як амалро иҷро кунад. Яъне, агар усул мантиқи мураккаб ва гуногунро иҷро кунад, мо онро ба зерметодҳо тақсим мекунем. Дар натиҷа, худи усул як фасад хоҳад буд, ки ҳадафи он даъват кардани ҳама амалиёти дигар бо тартиби дуруст аст.

    Аммо чӣ мешавад, агар амалиёт барои сохтани усули алоҳида хеле содда ба назар мерасад? Бале, баъзан чунин ба назар мерасад, ки гунҷишкҳо аз туп тирандозӣ мекунанд, аммо усулҳои хурд як қатор манфиатҳо медиҳанд:

    • хондани code осонтар;
    • усулҳо дар ҷараёни рушд тамоюли мураккабтар мешаванд ва агар усул дар аввал оддӣ бошад, мураккаб кардани функсияи он каме осонтар мешавад;
    • пинҳон кардани тафсилоти татбиқ;
    • мусоидат ба истифодаи такрории code;
    • эътимоднокии codeи баландтар.
  4. Қоидаи поён ин аст , ки code бояд аз боло то поён хонда шавад: ҳар қадар пасттар бошад, умқи мантиқ ва баръакс, баландтар бошад, усулҳо ҳамон қадар абстрактӣ доранд. Масалан, фармонҳои гузариш хеле ноустувор ва номатлуб мебошанд, аммо агар шумо бе истифодаи коммутатор кор карда натавонед, шумо бояд кӯшиш кунед, ки онро то ҳадди имкон пасттар, ба усулҳои сатҳи пасттарин интиқол диҳед.

  5. Далелҳои методӣ - чандтои онҳо идеалӣ мебошанд? Идеалӣ, ҳеҷ чиз вуҷуд надорад)) Аммо ин воқеан рӯй медиҳад? Бо вуҷуди ин, шумо бояд кӯшиш кунед, ки шумораи онҳо то ҳадди имкон камтар бошад, зеро ҳар қадаре, ки онҳо камтар бошанд, истифодаи ин усул осонтар ва санҷиши он осонтар аст. Агар шубҳа дошта бошед, кӯшиш кунед, ки ҳама сенарияҳоро барои истифодаи усул бо шумораи зиёди далелҳои воридотӣ тахмин кунед.

  6. Алоҳида, ман мехоҳам усулҳоеро қайд намоям, ки ҳамчун аргументи вурудӣ парчами логикӣ доранд , зеро ин табиист, ки ин усул беш аз як амалро иҷро мекунад (агар дуруст бошад, як амал, бардурӯғ - дигар). Тавре ки ман дар боло навишта будам, ин хуб нест ва агар имконпазир бошад, бояд пешгирӣ карда шавад.

  7. Агар усул шумораи зиёди аргументҳои воридшаванда дошта бошад (қимати шадид 7 аст, аммо шумо бояд дар бораи он пас аз 2-3 фикр кунед), шумо бояд баъзе далелҳоро дар an objectи алоҳида гурӯҳбандӣ кунед.

  8. Агар якчанд усулҳои шабеҳ вуҷуд дошта бошанд (аз изофаборӣ) , пас параметрҳои шабеҳ бояд бо ҳамон тартиб интиқол дода шаванд: ин хониш ва қобor истифодаро беҳтар мекунад.

  9. Вақте ки шумо параметрҳоро ба усул мегузоред, шумо бояд боварӣ дошта бошед, ки ҳамаи онҳо истифода мешаванд, вагарна далел барои чӣ аст? Онро аз интерфейс буред ва ҳамин аст.

  10. try/catchОн аз рӯи табиати худ чандон хуб ба назар намерасад, аз ин рӯ як иқдоми хуб ин аст, ки онро ба усули ҷудогонаи фосилавӣ гузаронед (усул барои коркарди истисноҳо):

    public void exceptionHandling(SomeObject obj) {
        try {
            someMethod(obj);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
Ман дар бораи такрори code дар боло сухан гуфтам, аммо онро дар ин ҷо илова мекунам: Агар мо якчанд усул бо такрори қисмҳои code дошта бошем, мо бояд онро ба усули алоҳида интиқол диҳем, ки ин ҳам компактияти ҳам усул ва ҳам codeын зиёд мекунад. синф. Ва дар бораи номҳои дуруст фаромӯш накунед. Ман ба шумо тафсилоти дурусти номгузории синфҳо, интерфейсҳо, усулҳо ва тағирёбандаҳоро дар қисми навбатии мақола нақл мекунам. Ва ин ҳама чизест, ки ман имрӯз дорам. Правила написания codeа: от создания системы до работы с an objectми - 9Қоидаҳои code: қудрати номгузории дуруст, шарҳҳои хуб ва бад
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION