Sobes.tech
Middle+

Қоидаҳои SOLID дар барномасозӣ чистанд?

sobes.tech AI

Ҷавоб аз AI

SOLID — бу кӯтоҳ навъ, ки панҷ асосии принсипи тарҳи объектӣ-ба равишро ифода мекунад ва барои эҷоди коди бештар фаҳмо, чандир ва нигоҳдоштанӣ равона шудааст.

Принсипҳо:

  1. Single Responsibility Principle (Принсипи масъулияти ягона): Модул ё синф бояд танҳо як сабаби тағирот дошта бошад, яъне танҳо як масъулиятро дошта бошад.

  2. Open/Closed Principle (Принсипи кушод/банд): Ҳақиқати нармафзор (синфҳо, модулҳо, функсияҳо) бояд барои васеъ кардан кушод ва барои тағир додан банд бошад.

  3. Liskov Substitution Principle (Принсипи ивазкунии Лисков): Объектҳо дар барнома бояд бо намунаҳои зери навъҳои худ ивазшаванда бошанд бе тағир додани дурустии барнома. Агар S зери навъи T бошад, пас объектҳои навъи T метавонанд бо объектҳои навъи S иваз шаванд бе вайрон кардани хосиятҳои барнома.

  4. Interface Segregation Principle (Принсипи ҷудо кардани интерфейсҳо): Беҳтар аст, ки бисёр интерфейсҳои махсус дошта бошем, на як интерфейси умумӣ. Мизоҷон набояд аз интерфейсҳое, ки онҳо истифода намебаранд, вобаста бошанд.

  5. Dependency Inversion Principle (Принсипи ивазкунии вобастагиҳо): Модулҳои сатҳи боло набояд аз модулҳои сатҳи поён вобаста бошанд. Ҳарду навъ модулҳо бояд вобаста бошанд ба абстраксияҳо. Абстраксияҳо набояд аз тафсилот вобаста бошанд. Тафсилот бояд вобаста бошанд ба абстраксияҳо.

Истифодаи принсипҳои SOLID ба рушди системаҳо мусоидат мекунад, ки осонтар тағир дода шаванд, фаҳмиданд ва санҷида шаванд. Дар Golang, принсипҳои SOLID татбиқшавандаанд, ҳарчанд хусусиятҳои забон (масалан, набудани меросии классикӣ) талаб мекунанд, ки ба онҳо муносибати дигар дошта бошем, аксар вақт тавассути композиция ва интерфейсҳо.