āĻ
āĻ¨ā§āĻŦāĻžāĻĻāĻ āĻĨā§āĻā§: āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻāĻžāĻļāĻŋāĻ¤
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ā§ āĻĨāĻžāĻā§āĻ¨, āĻāĻĒāĻ¨āĻŋ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻ¸āĻ˛āĻŋāĻĄ āĻ¨ā§āĻ¤āĻŋāĻ° āĻāĻĨāĻž āĻļā§āĻ¨ā§āĻā§āĻ¨āĨ¤ āĻ¤āĻžāĻ°āĻž āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻžāĻ°āĻā§ āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ°, āĻ¸ā§āĻāĻ āĻŋāĻ¤ āĻāĻŦāĻ āĻ¸āĻšāĻā§ āĻ°āĻā§āĻˇāĻŖāĻžāĻŦā§āĻā§āĻˇāĻŖāĻ¯ā§āĻā§āĻ¯ āĻā§āĻĄ āĻ˛āĻŋāĻāĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻ˛āĻā§āĻˇāĻŖā§āĻ¯āĻŧ āĻ¯ā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻāĻ¯āĻŧā§ āĻā§āĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻžāĻ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¤āĻžāĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻŦāĻŋāĻļā§āĻˇāĻā§āĻā§āĻ° "āĻ¸āĻ āĻŋāĻ āĻĒāĻĨ" āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻžāĻ°āĻŖāĻž āĻāĻŦāĻ āĻŦā§āĻāĻžāĻĒāĻĄāĻŧāĻž āĻ°āĻ¯āĻŧā§āĻā§; āĻāĻāĻŋ āĻ¸āĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻ° āĻ āĻāĻŋāĻā§āĻāĻ¤āĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§āĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, SOLID-āĻ āĻā§āĻˇāĻŋāĻ¤ āĻ§āĻžāĻ°āĻŖāĻžāĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°āĻĻāĻžāĻ¯āĻŧā§āĻ° āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻā§āĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻ¤āĻžāĻ°āĻž āĻ āĻ¨ā§āĻ āĻāĻžāĻ˛ā§ āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨ā§āĻ° āĻāĻ¤ā§āĻĨāĻžāĻ¨ āĻāĻŦāĻ āĻŦāĻŋāĻāĻžāĻļā§āĻ° āĻ¸ā§āĻāĻ¨āĻž āĻŦāĻŋāĻ¨ā§āĻĻā§ āĻšāĻ¯āĻŧā§ āĻāĻ ā§āĨ¤
āĻāĻ¸ā§āĻ¨ āĻŦā§āĻāĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻ¸āĻ˛āĻŋāĻĄ āĻ¨ā§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻā§ āĻāĻŦāĻ āĻā§āĻāĻžāĻŦā§ āĻ¤āĻžāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°ā§āĨ¤
Skillbox āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻāĻ°ā§: āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ āĻā§āĻ°ā§āĻ¸
"āĻŽā§āĻŦāĻžāĻāĻ˛ āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ° āĻĒā§āĻ°ā§" .āĻāĻŽāĻ°āĻž āĻŽāĻ¨ā§ āĻāĻ°āĻŋāĻ¯āĻŧā§ āĻĻāĻŋāĻā§āĻāĻŋ: "Habr"-āĻāĻ° āĻ¸āĻāĻ˛ āĻĒāĻžāĻ āĻāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ - "Habr" āĻĒā§āĻ°āĻāĻžāĻ°āĻŽā§āĻ˛āĻ āĻā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¯ā§āĻā§āĻ¨ā§ Skillbox āĻā§āĻ°ā§āĻ¸ā§ āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ 10 āĻ°ā§āĻŦā§āĻ˛ āĻāĻžāĻĄāĻŧāĨ¤
āĻ¸āĻ˛āĻŋāĻĄ āĻāĻŋ?
āĻāĻ āĻļāĻŦā§āĻĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻ°ā§āĻĒ, āĻļāĻŦā§āĻĻāĻāĻŋāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ āĻā§āĻˇāĻ° āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¨ā§āĻ¤āĻŋāĻ° āĻ¨āĻžāĻŽā§āĻ° āĻļā§āĻ°ā§:
- SāĻāĻāĻ āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦ āĻ¨ā§āĻ¤āĻŋāĨ¤ āĻāĻāĻāĻŋ āĻŽāĻĄāĻŋāĻāĻ˛ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻŦāĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻāĻžāĻ°āĻŖ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° OāĻāĻ˛āĻŽ/āĻŦāĻ¨ā§āĻ§ āĻ¨ā§āĻ¤āĻŋ (āĻā§āĻ˛āĻž/āĻŦāĻ¨ā§āĻ§ āĻ¨ā§āĻ¤āĻŋ)āĨ¤ āĻā§āĻ˛āĻžāĻ¸ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¨ā§āĻŽā§āĻā§āĻ¤ āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤āĨ¤âāĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° LāĻāĻ¸āĻāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ¨ā§āĻ¤āĻŋ (āĻ˛āĻŋāĻ¸āĻāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ¨ā§āĻ¤āĻŋ)āĨ¤ āĻāĻāĻāĻŋ āĻŦā§āĻ¸ āĻāĻžāĻāĻĒ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋ āĻŦā§āĻ¸ āĻāĻžāĻāĻĒā§āĻ° āĻ¸āĻžāĻŦāĻāĻžāĻāĻĒāĻā§āĻ˛āĻŋ āĻ¨āĻž āĻā§āĻ¨ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤āĨ¤āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° IāĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻŦāĻŋāĻāĻžāĻāĻ¨ āĻ¨ā§āĻ¤āĻŋ â (āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻŦāĻŋāĻā§āĻā§āĻĻ āĻ¨ā§āĻ¤āĻŋ)āĨ¤ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¸āĻ¤ā§āĻ¤ā§āĻŦāĻžāĻā§āĻ˛āĻŋ āĻ¯ā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨āĻž āĻ¤āĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧā§ˇāĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° DāĻĒāĻ°āĻžāĻ§ā§āĻ¨āĻ¤āĻž āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ āĻ¨ā§āĻ¤āĻŋ (āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻžāĻ° āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ āĻ¨ā§āĻ¤āĻŋ)āĨ¤ āĻāĻā§āĻ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻŽā§āĻ¨ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧāĨ¤
āĻāĻāĻ āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦ āĻ¨ā§āĻ¤āĻŋ
â
āĻ¸āĻŋāĻā§āĻā§āĻ˛ āĻ°ā§āĻ¸āĻĒāĻ¨āĻ¸āĻŋāĻŦāĻŋāĻ˛āĻŋāĻāĻŋ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ¸āĻŋāĻĒāĻ˛ (āĻāĻ¸āĻāĻ°āĻĒāĻŋ) āĻŦāĻ˛ā§ āĻ¯ā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ āĻŦāĻž āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¸ā§āĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻžāĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻ
āĻāĻļā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§āĨ¤ āĻ
āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤āĻāĻžāĻŦā§, āĻāĻ āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦā§āĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻļā§āĻ°ā§āĻŖā§āĻ¤ā§ āĻ
āĻ°ā§āĻĒāĻŖ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤, āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻšā§āĻ¨ āĻļā§āĻ°ā§āĻŖā§āĻ¤ā§ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻāĻŋāĻāĻŋāĻ¯āĻŧā§ āĻ¨āĻž āĻĨā§āĻā§āĨ¤ SRP āĻāĻ° āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĒā§āĻ°āĻāĻžāĻ°āĻ, āĻ°āĻŦāĻžāĻ°ā§āĻ āĻāĻ¸ āĻŽāĻžāĻ°ā§āĻāĻŋāĻ¨, āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻāĻžāĻ°āĻŖ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻŦāĻžāĻŦāĻĻāĻŋāĻšāĻŋāĻ¤āĻž āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§āĻā§āĻ¨āĨ¤ āĻ¤āĻŋāĻ¨āĻŋ āĻŽā§āĻ˛āĻ¤ āĻāĻ āĻļāĻŦā§āĻĻāĻāĻŋāĻā§ āĻ¤āĻžāĻāĻ° āĻāĻžāĻā§āĻ° "āĻ
āĻŦāĻā§āĻā§āĻ-āĻāĻ°āĻŋāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻĄ āĻĄāĻŋāĻāĻžāĻāĻ¨ā§āĻ° āĻ¨ā§āĻ¤āĻŋ" āĻāĻ° āĻ
āĻ¨ā§āĻ¯āĻ¤āĻŽ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦ āĻāĻ°ā§āĻāĻŋāĻ˛ā§āĻ¨āĨ¤ āĻ§āĻžāĻ°āĻŖāĻžāĻāĻŋ āĻ¸āĻāĻ¯ā§āĻā§āĻ° āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ā§āĻ° āĻ
āĻ¨ā§āĻāĻāĻžāĻ āĻ
āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§ āĻ¯āĻž āĻĒā§āĻ°ā§āĻŦā§ āĻāĻŽ āĻĄāĻŋāĻŽāĻžāĻ°ā§āĻā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤
āĻ§āĻžāĻ°āĻŖāĻžāĻāĻŋāĻ¤ā§ āĻĄā§āĻāĻŋāĻĄ āĻĒāĻžāĻ°ā§āĻ¨āĻžāĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻŖā§āĻ¤ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻ§āĻžāĻ°āĻŖāĻž āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻŋāĻ˛āĨ¤ āĻĻā§āĻāĻŋ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻšāĻ˛ āĻāĻ¨āĻā§āĻ¯āĻžāĻĒāĻ¸ā§āĻ˛ā§āĻļāĻ¨ āĻāĻŦāĻ āĻ¤āĻĨā§āĻ¯ āĻā§āĻĒāĻ¨ āĻāĻ°āĻžāĨ¤ āĻĒāĻžāĻ°ā§āĻ¨āĻžāĻ¸ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻĻāĻŋāĻ¯āĻŧā§āĻāĻŋāĻ˛ā§āĻ¨ āĻ¯ā§ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻā§ āĻĒā§āĻĨāĻ āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻŦāĻŋāĻāĻā§āĻ¤ āĻāĻ°āĻž āĻŦā§āĻ˛āĻ āĻĄāĻžāĻ¯āĻŧāĻžāĻā§āĻ°āĻžāĻŽ āĻŦāĻž āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨ āĻĒā§āĻ°āĻŦāĻžāĻšā§āĻ° āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧāĨ¤ āĻ¯ā§āĻā§āĻ¨ā§ āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§ āĻ¯āĻž āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻāĻĻā§āĻ° āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤
āĻ¯āĻžāĻāĻšā§āĻ, āĻŽāĻžāĻ°ā§āĻāĻŋāĻ¨ āĻāĻāĻāĻŋ āĻā§āĻŽā§āĻĒāĻžāĻ¨āĻŋāĻ° āĻ¸āĻŋāĻ¨āĻŋāĻ¯āĻŧāĻ° āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻžāĻ°āĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻāĻŋāĻ¯āĻŧā§āĻā§āĻ¨ (COO, CTO, CFO), āĻ¯āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¯ā§ āĻā§āĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻāĻĻā§āĻ° āĻ¸ā§āĻŦāĻžāĻ°ā§āĻĨāĻā§ āĻĒā§āĻ°āĻāĻžāĻŦāĻŋāĻ¤ āĻ¨āĻž āĻāĻ°ā§ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻļā§āĻŦāĻ°āĻŋāĻ āĻŦāĻ¸ā§āĻ¤ā§
āĻŦāĻ°āĻžāĻŦāĻ°ā§āĻ° āĻŽāĻ¤ā§, āĻāĻ¸āĻāĻ°āĻĒāĻŋ āĻļā§āĻāĻžāĻ° āĻ¸āĻ°ā§āĻŦā§āĻ¤ā§āĻ¤āĻŽ āĻāĻĒāĻžāĻ¯āĻŧ āĻšāĻ˛ āĻāĻāĻŋāĻā§ āĻāĻ°ā§āĻŽā§ āĻĻā§āĻāĻžāĨ¤ āĻāĻ¸ā§āĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ° āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻ āĻāĻļ āĻĻā§āĻāĻŋ āĻ¯āĻž āĻāĻāĻ āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦ āĻ¨ā§āĻ¤āĻŋ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°ā§ āĻ¨āĻžāĨ¤ āĻāĻāĻŋ āĻ°ā§āĻŦāĻŋ āĻā§āĻĄ āĻ¯āĻž āĻ¸ā§āĻĒā§āĻ¸ āĻ¸ā§āĻā§āĻļāĻ¨ā§āĻ° āĻāĻāĻ°āĻŖ āĻāĻŦāĻ āĻā§āĻŖāĻžāĻŦāĻ˛ā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§āĨ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻ¨:
āĻ¸ā§āĻĒā§āĻ¸āĻ¸ā§āĻā§āĻļāĻ¨ āĻā§āĻ˛āĻžāĻ¸ā§ āĻā§āĻˇāĻŋāĻ¤ āĻ¸ā§āĻ āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋāĻ° āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦāĨ¤
āĻ¯āĻžāĻ°āĻž āĻŽāĻšāĻžāĻāĻžāĻļ āĻ¸ā§āĻā§āĻļāĻ¨ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻāĻā§āĻ°āĻšā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
class SpaceStation
def initialize
@supplies = {}
@fuel = 0
end
def run_sensors
puts "----- Sensor Action -----"
puts "Running sensors!"
end
def load_supplies(type, quantity)
puts "----- Supply Action -----"
puts "Loading #{quantity} units of #{type} in the supply hold."
if @supplies[type]
@supplies[type] += quantity
else
@supplies[type] = quantity
end
end
def use_supplies(type, quantity)
puts "----- Supply Action -----"
if @supplies[type] != nil && @supplies[type] > quantity
puts "Using #{quantity} of #{type} from the supply hold."
@supplies[type] -= quantity
else
puts "Supply Error: Insufficient #{type} in the supply hold."
end
end
def report_supplies
puts "----- Supply Report -----"
if @supplies.keys.length > 0
@supplies.each do |type, quantity|
puts "#{type} avalilable: #{quantity} units"
end
else
puts "Supply hold is empty."
end
end
def load_fuel(quantity)
puts "----- Fuel Action -----"
puts "Loading #{quantity} units of fuel in the tank."
@fuel += quantity
end
def report_fuel
puts "----- Fuel Report -----"
puts "#{@fuel} units of fuel available."
end
def activate_thrusters
puts "----- Thruster Action -----"
if @fuel >= 10
puts "Thrusting action successful."
@fuel -= 10
else
puts "Thruster Error: Insufficient fuel available."
end
end
end
āĻāĻ¸āĻ˛ā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸ā§āĻĒā§āĻ¸ āĻ¸ā§āĻā§āĻļāĻ¨āĻāĻŋ āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° (āĻāĻŽāĻŋ āĻŽāĻ¨ā§ āĻāĻ°āĻŋ āĻ¨āĻž āĻ¯ā§ āĻāĻŽāĻŋ āĻļā§āĻā§āĻ°āĻ āĻ¨āĻžāĻ¸āĻž āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻāĻ˛ āĻĒāĻžāĻŦ), āĻ¤āĻŦā§ āĻāĻāĻžāĻ¨ā§ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻāĻ°āĻžāĻ° āĻŽāĻ¤ā§ āĻāĻŋāĻā§ āĻāĻā§āĨ¤
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻ¸ā§āĻĒā§āĻ¸āĻ¸ā§āĻā§āĻļāĻ¨ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦ (āĻŦāĻž āĻāĻžāĻ) āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻŦ āĻ§āĻ°āĻ¨ā§āĻ° āĻŦāĻŋāĻāĻā§āĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§:
- āĻ¸ā§āĻ¨ā§āĻ¸āĻ°;
- āĻ¸āĻ°āĻŦāĻ°āĻžāĻš (āĻā§āĻā§āĻ¯ āĻĻā§āĻ°āĻŦā§āĻ¯);
- āĻā§āĻŦāĻžāĻ˛āĻžāĻ¨ā§
- āĻāĻā§āĻ¸āĻŋāĻ˛āĻžāĻ°ā§āĻāĻ°
āĻ¯āĻĻāĻŋāĻ āĻ¸ā§āĻā§āĻļāĻ¨ā§āĻ° āĻāĻ°ā§āĻŽāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻžāĻāĻā§āĻ āĻā§āĻ˛āĻžāĻ¸ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĻ¨āĻŋ, āĻāĻŽāĻ°āĻž āĻ¸āĻšāĻā§āĻ āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻā§ āĻā§ āĻāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§āĨ¤ āĻ¸āĻŽā§āĻāĻŦāĻ¤, āĻŦāĻŋāĻā§āĻāĻžāĻ¨ā§ āĻ¸ā§āĻ¨ā§āĻ¸āĻ°āĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°ā§āĻ¨, āĻ°āĻ¸āĻĻ āĻ¸āĻ°āĻŦāĻ°āĻžāĻšāĻāĻžāĻ°ā§ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¸āĻ°āĻŦāĻ°āĻžāĻšā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§, āĻĒā§āĻ°āĻā§āĻļāĻ˛ā§ āĻā§āĻŦāĻžāĻ˛āĻžāĻ¨ā§ āĻ¸āĻ°āĻŦāĻ°āĻžāĻšā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§ āĻāĻŦāĻ āĻĒāĻžāĻāĻ˛āĻ āĻŦā§āĻ¸ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°ā§āĨ¤
āĻāĻŽāĻ°āĻž āĻāĻŋ āĻŦāĻ˛āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻ¯ā§ āĻāĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ SRP āĻ āĻ¨ā§āĻāĻ¤ āĻ¨āĻ¯āĻŧ? āĻšā§āĻ¯āĻžāĻ āĻ āĻŦāĻļā§āĻ¯āĻ. āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸ā§āĻĒā§āĻ¸āĻ¸ā§āĻā§āĻļāĻ¨ āĻā§āĻ˛āĻžāĻ¸ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ "āĻāĻļā§āĻŦāĻ° āĻŦāĻ¸ā§āĻ¤ā§" āĻ¯āĻž āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻžāĻ¨ā§ āĻāĻŦāĻ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻ āĻŦāĻā§āĻā§āĻ-āĻāĻ°āĻŋāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻĄ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ ā§āĻ¯āĻžāĻ¨ā§āĻāĻŋ-āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻāĻāĻ¨ āĻļāĻŋāĻā§āĻˇāĻžāĻ¨āĻŦāĻŋāĻļā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻŦāĻ¸ā§āĻ¤ā§ āĻŦāĻāĻžāĻ¯āĻŧ āĻ°āĻžāĻāĻž āĻ āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻ āĻŋāĻ¨āĨ¤ āĻāĻāĻ¨ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻā§āĻŦāĻ āĻ¸āĻšāĻ, āĻšā§āĻ¯āĻžāĻ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻ¨āĻ¤ā§āĻ¨ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¯ā§āĻ āĻāĻ°āĻ˛ā§ āĻā§ āĻšāĻŦā§ āĻ¤āĻž āĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°ā§āĻ¨āĨ¤ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻŽāĻšāĻžāĻāĻžāĻļ āĻ¸ā§āĻā§āĻļāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻŽā§āĻĄāĻŋāĻā§āĻ˛ āĻ¸ā§āĻā§āĻļāĻ¨ āĻŦāĻž āĻāĻāĻāĻŋ āĻŽāĻŋāĻāĻŋāĻ āĻ°ā§āĻŽ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻŦā§āĨ¤ āĻāĻŦāĻ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻ¯āĻ¤ āĻŦā§āĻļāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻĨāĻžāĻāĻŦā§, āĻ¤āĻ¤ āĻŦā§āĻļāĻŋ āĻ¸ā§āĻĒā§āĻ¸āĻ¸ā§āĻā§āĻļāĻ¨ āĻŦāĻžāĻĄāĻŧāĻŦā§āĨ¤ āĻ āĻŋāĻ āĻāĻā§, āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻŋ āĻ āĻ¨ā§āĻ¯āĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻšāĻŦā§, āĻĒā§āĻ°ā§ āĻāĻŽāĻĒā§āĻ˛ā§āĻā§āĻ¸ā§āĻ° āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻĻā§āĻāĻ¯āĻŧāĻž āĻāĻ°āĻ āĻāĻ āĻŋāĻ¨ āĻšāĻ¯āĻŧā§ āĻāĻ āĻŦā§āĨ¤ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻŽāĻ°āĻž āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒ āĻŦā§āĻ¯āĻžāĻšāĻ¤ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻā§āĻ¸āĻŋāĻ˛āĻžāĻ°ā§āĻāĻ°āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻāĻāĻ¨ āĻāĻŦā§āĻˇāĻ āĻ¸ā§āĻ¨ā§āĻ¸āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°ā§āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻāĻŋ āĻ¸ā§āĻā§āĻļāĻ¨ā§āĻ° āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻā§ āĻā§āĻŦ āĻāĻžāĻ˛ā§āĻāĻžāĻŦā§ āĻĒā§āĻ°āĻāĻžāĻŦāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
SRP āĻ¨ā§āĻ¤āĻŋ āĻ˛āĻā§āĻāĻ¨ āĻāĻāĻāĻŋ āĻ¸ā§āĻŦāĻ˛ā§āĻĒāĻŽā§āĻ¯āĻŧāĻžāĻĻā§ āĻā§āĻļāĻ˛āĻāĻ¤ āĻŦāĻŋāĻāĻ¯āĻŧ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻļā§āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻŽāĻ°āĻž "āĻ¯ā§āĻĻā§āĻ§ āĻšā§āĻ°ā§ āĻ¯āĻžāĻŦ", āĻāĻŦāĻ āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻĻāĻžāĻ¨āĻŦ āĻŦāĻāĻžāĻ¯āĻŧ āĻ°āĻžāĻāĻž āĻā§āĻŦ āĻāĻ āĻŋāĻ¨ āĻšāĻ¯āĻŧā§ āĻāĻ āĻŦā§āĨ¤ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋāĻā§ āĻā§āĻĄā§āĻ° āĻĒā§āĻĨāĻ āĻŦāĻŋāĻāĻžāĻā§ āĻāĻžāĻ āĻāĻ°āĻž āĻāĻžāĻ˛, āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§āĨ¤ āĻāĻāĻž āĻŦā§āĻāĻ¤ā§, āĻāĻ° SpaceStation āĻā§āĻ˛āĻžāĻ¸ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻ.
āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦ āĻŦāĻŖā§āĻāĻ¨ āĻāĻ°āĻŋ
āĻāĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž āĻ¸ā§āĻĒā§āĻ¸āĻ¸ā§āĻā§āĻļāĻ¨ āĻā§āĻ˛āĻžāĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻžāĻ° āĻ§āĻ°āĻ¨ā§āĻ° āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§āĻāĻŋāĨ¤ āĻ°āĻŋāĻĢā§āĻ¯āĻžāĻā§āĻāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŽāĻ°āĻž āĻ¸ā§āĻā§āĻ˛ā§ āĻŽāĻžāĻĨāĻžāĻ¯āĻŧ āĻ°āĻžāĻāĻŦāĨ¤ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž āĻā§āĻĄāĻāĻŋ SRP-āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ˛ā§ āĻŽā§āĻ˛ā§āĨ¤
class SpaceStation
attr_reader :sensors, :supply_hold, :fuel_tank, :thrusters
def initialize
@supply_hold = SupplyHold.new
@sensors = Sensors.new
@fuel_tank = FuelTank.new
@thrusters = Thrusters.new(@fuel_tank)
end
end
class Sensors
def run_sensors
puts "----- Sensor Action -----"
puts "Running sensors!"
end
end
class SupplyHold
attr_accessor :supplies
def initialize
@supplies = {}
end
def load_supplies(type, quantity)
puts "----- Supply Action -----"
puts "Loading #{quantity} units of #{type} in the supply hold."
if @supplies[type]
@supplies[type] += quantity
else
@supplies[type] = quantity
end
end
def use_supplies(type, quantity)
puts "----- Supply Action -----"
if @supplies[type] != nil && @supplies[type] > quantity
puts "Using #{quantity} of #{type} from the supply hold."
@supplies[type] -= quantity
else
puts "Supply Error: Insufficient #{type} in the supply hold."
end
end
def report_supplies
puts "----- Supply Report -----"
if @supplies.keys.length > 0
@supplies.each do |type, quantity|
puts "#{type} avalilable: #{quantity} units"
end
else
puts "Supply hold is empty."
end
end
end
class FuelTank
attr_accessor :fuel
def initialize
@fuel = 0
end
def get_fuel_levels
@fuel
end
def load_fuel(quantity)
puts "----- Fuel Action -----"
puts "Loading #{quantity} units of fuel in the tank."
@fuel += quantity
end
def use_fuel(quantity)
puts "----- Fuel Action -----"
puts "Using #{quantity} units of fuel from the tank."
@fuel -= quantity
end
def report_fuel
puts "----- Fuel Report -----"
puts "#{@fuel} units of fuel available."
end
end
class Thrusters
def initialize(fuel_tank)
@linked_fuel_tank = fuel_tank
end
def activate_thrusters
puts "----- Thruster Action -----"
if @linked_fuel_tank.get_fuel_levels >= 10
puts "Thrusting action successful."
@linked_fuel_tank.use_fuel(10)
else
puts "Thruster Error: Insufficient fuel available."
end
end
end
āĻ āĻ¨ā§āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻā§, āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻāĻāĻ¨ āĻāĻžāĻ˛ āĻĻā§āĻāĻžāĻ¯āĻŧ. āĻāĻāĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸ā§āĻĒā§āĻ¸āĻ¸ā§āĻā§āĻļāĻ¨ āĻā§āĻ˛āĻžāĻ¸āĻāĻŋ āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻĒāĻžāĻ¤ā§āĻ°ā§ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻšāĻ¯āĻŧā§āĻā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¸ā§āĻ¨ā§āĻ¸āĻ°ā§āĻ° āĻ¸ā§āĻ, āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ¯ā§āĻā§āĻ¯ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻž, āĻāĻāĻāĻŋ āĻā§āĻŦāĻžāĻ˛āĻžāĻ¨ā§ āĻā§āĻ¯āĻžāĻā§āĻ āĻāĻŦāĻ āĻŦā§āĻ¸ā§āĻāĻžāĻ° āĻ¸āĻš āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻļā§āĻ˛ āĻ āĻāĻļāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻ¯ā§āĻā§āĻ¨ā§ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻ¨ āĻāĻāĻāĻŋ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻļā§āĻ°ā§āĻŖā§ āĻāĻā§: āĻ¸ā§āĻ¨ā§āĻ¸āĻ°; āĻ¸āĻžāĻĒā§āĻ˛āĻžāĻāĻšā§āĻ˛ā§āĻĄ; āĻā§āĻŦāĻžāĻ˛āĻžāĻ¨āĻŋ āĻā§āĻ¯āĻžāĻāĻ; āĻĨā§āĻ°āĻžāĻ¸ā§āĻāĻžāĻ°āĻ¸āĨ¤
āĻā§āĻĄā§āĻ° āĻāĻ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§ āĻŦā§āĻļ āĻāĻŋāĻā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻŽā§āĻĻā§āĻĻāĻž āĻāĻĨāĻž āĻšāĻ˛ āĻ¯ā§ āĻ¸ā§āĻŦāĻ¤āĻ¨ā§āĻ¤ā§āĻ° āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¤āĻžāĻĻā§āĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻļā§āĻ°ā§āĻŖā§āĻ¤ā§ āĻāĻŦāĻĻā§āĻ§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž, āĻ¤āĻžāĻ°āĻž āĻāĻŽāĻ¨āĻāĻžāĻŦā§ āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¯āĻžāĻ¤ā§ āĻ āĻ¨ā§āĻŽāĻžāĻ¨āĻ¯ā§āĻā§āĻ¯ āĻāĻŦāĻ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻĒā§āĻ°ā§āĻŖ āĻšāĻ¯āĻŧāĨ¤ āĻ¸āĻŽāĻ¨ā§āĻŦāĻ¯āĻŧ āĻ¨ā§āĻ¤āĻŋ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻ°āĻž āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ¸āĻš āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻā§āĻˇā§āĻ ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻŋāĨ¤ āĻāĻāĻ¨, āĻ¯āĻĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ, āĻāĻāĻāĻŋ āĻšā§āĻ¯āĻžāĻļ āĻāĻžāĻ āĻžāĻŽā§ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻ°ā§āĻ¤ā§ āĻ¯ā§āĻ¤ā§, āĻļā§āĻ§ā§ āĻ¸āĻžāĻĒā§āĻ˛āĻžāĻāĻšā§āĻ˛ā§āĻĄ āĻā§āĻ˛āĻžāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨; āĻāĻŽāĻžāĻĻā§āĻ° āĻ āĻ¨ā§āĻ¯ āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋ āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻžāĨ¤ āĻāĻāĻžāĻŦā§ āĻ˛āĻāĻŋāĻ¸ā§āĻāĻŋāĻ āĻ āĻĢāĻŋāĻ¸āĻžāĻ° āĻ¤āĻžāĻ° āĻ¸ā§āĻāĻļāĻ¨ā§ āĻāĻŋāĻā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ˛ā§ āĻ¸ā§āĻā§āĻļāĻ¨ā§āĻ° āĻŦāĻžāĻāĻŋ āĻ āĻāĻļ āĻ āĻā§āĻˇāĻ¤ āĻĨāĻžāĻāĻŦā§āĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ¸ā§āĻĒā§āĻ¸āĻ¸ā§āĻā§āĻļāĻ¨ āĻā§āĻ˛āĻžāĻ¸ āĻāĻŽāĻ¨āĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¸āĻā§āĻ¤āĻ¨ āĻšāĻŦā§ āĻ¨āĻžāĨ¤
āĻ¸ā§āĻĒā§āĻ¸ āĻ¸ā§āĻā§āĻļāĻ¨ā§ āĻāĻ°ā§āĻŽāĻ°āĻ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻ āĻĢāĻŋāĻ¸āĻžāĻ°āĻ°āĻž āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ¯āĻŧā§ āĻā§āĻļāĻŋ āĻāĻžāĻ°āĻŖ āĻ¤āĻžāĻ°āĻž āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻā§āĻĄāĻāĻŋāĻ¤ā§ āĻ¸āĻžāĻĒā§āĻ˛āĻžāĻāĻšā§āĻ˛ā§āĻĄ āĻāĻŦāĻ āĻĢā§āĻ¯āĻŧā§āĻ˛āĻā§āĻ¯āĻžāĻā§āĻ āĻā§āĻ˛āĻžāĻ¸ā§ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ_āĻ¸āĻžāĻĒā§āĻ˛āĻžāĻ āĻāĻŦāĻ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ_āĻĢā§āĻ¯āĻŧā§āĻ˛ā§āĻ° āĻŽāĻ¤ā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻĒā§āĻĨāĻŋāĻŦā§ āĻ¯āĻĻāĻŋ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻĒāĻžāĻ¯āĻŧ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻŦāĻ˛ā§ āĻ¤āĻžāĻšāĻ˛ā§ āĻā§ āĻšāĻŦā§? āĻāĻāĻ¯āĻŧ āĻļā§āĻ°ā§āĻŖā§, āĻ¸āĻžāĻĒā§āĻ˛āĻžāĻāĻšā§āĻ˛ā§āĻĄ āĻāĻŦāĻ āĻĢā§āĻ¯āĻŧā§āĻ˛āĻā§āĻ¯āĻžāĻā§āĻ, āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻā§āĻŦāĻžāĻ˛āĻžāĻ¨ā§ āĻāĻŦāĻ āĻā§āĻā§āĻ¯āĻĒāĻŖā§āĻ¯ āĻ¸āĻ°āĻŦāĻ°āĻžāĻšā§āĻ° āĻāĻĒāĻžāĻ¯āĻŧ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ? āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻāĻŦāĻžāĻ° āĻāĻāĻ āĻā§āĻ˛āĻžāĻ¸ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻāĻ¸āĻāĻ°āĻĒāĻŋ āĻ¨ā§āĻ¤āĻŋāĻ° āĻ˛āĻā§āĻāĻ¨āĨ¤ āĻāĻ° āĻāĻāĻž āĻ āĻŋāĻ āĻāĻ°āĻž āĻ¯āĻžāĻ.
class SpaceStation
attr_reader :sensors, :supply_hold, :supply_reporter,
:fuel_tank, :fuel_reporter, :thrusters
def initialize
@sensors = Sensors.new
@supply_hold = SupplyHold.new
@supply_reporter = SupplyReporter.new(@supply_hold)
@fuel_tank = FuelTank.new
@fuel_reporter = FuelReporter.new(@fuel_tank)
@thrusters = Thrusters.new(@fuel_tank)
end
end
class Sensors
def run_sensors
puts "----- Sensor Action -----"
puts "Running sensors!"
end
end
class SupplyHold
attr_accessor :supplies
attr_reader :reporter
def initialize
@supplies = {}
end
def get_supplies
@supplies
end
def load_supplies(type, quantity)
puts "----- Supply Action -----"
puts "Loading #{quantity} units of #{type} in the supply hold."
if @supplies[type]
@supplies[type] += quantity
else
@supplies[type] = quantity
end
end
def use_supplies(type, quantity)
puts "----- Supply Action -----"
if @supplies[type] != nil && @supplies[type] > quantity
puts "Using #{quantity} of #{type} from the supply hold."
@supplies[type] -= quantity
else
puts "Supply Error: Insufficient #{type} in the supply hold."
end
end
end
class FuelTank
attr_accessor :fuel
attr_reader :reporter
def initialize
@fuel = 0
end
def get_fuel_levels
@fuel
end
def load_fuel(quantity)
puts "----- Fuel Action -----"
puts "Loading #{quantity} units of fuel in the tank."
@fuel += quantity
end
def use_fuel(quantity)
puts "----- Fuel Action -----"
puts "Using #{quantity} units of fuel from the tank."
@fuel -= quantity
end
end
class Thrusters
FUEL_PER_THRUST = 10
def initialize(fuel_tank)
@linked_fuel_tank = fuel_tank
end
def activate_thrusters
puts "----- Thruster Action -----"
if @linked_fuel_tank.get_fuel_levels >= FUEL_PER_THRUST
puts "Thrusting action successful."
@linked_fuel_tank.use_fuel(FUEL_PER_THRUST)
else
puts "Thruster Error: Insufficient fuel available."
end
end
end
class Reporter
def initialize(item, type)
@linked_item = item
@type = type
end
def report
puts "----- #{@type.capitalize} Report -----"
end
end
class FuelReporter < Reporter
def initialize(item)
super(item, "fuel")
end
def report
super
puts "#{@linked_item.get_fuel_levels} units of fuel available."
end
end
class SupplyReporter < Reporter
def initialize(item)
super(item, "supply")
end
def report
super
if @linked_item.get_supplies.keys.length > 0
@linked_item.get_supplies.each do |type, quantity|
puts "#{type} avalilable: #{quantity} units"
end
else
puts "Supply hold is empty."
end
end
end
iss = SpaceStation.new
iss.sensors.run_sensors
# ----- Sensor Action -----
# Running sensors!
iss.supply_hold.use_supplies("parts", 2)
# ----- Supply Action -----
# Supply Error: Insufficient parts in the supply hold.
iss.supply_hold.load_supplies("parts", 10)
# ----- Supply Action -----
# Loading 10 units of parts in the supply hold.
iss.supply_hold.use_supplies("parts", 2)
# ----- Supply Action -----
# Using 2 of parts from the supply hold.
iss.supply_reporter.report
# ----- Supply Report -----
# parts avalilable: 8 units
iss.thrusters.activate_thrusters
# ----- Thruster Action -----
# Thruster Error: Insufficient fuel available.
iss.fuel_tank.load_fuel(100)
# ----- Fuel Action -----
# Loading 100 units of fuel in the tank.
iss.thrusters.activate_thrusters
# ----- Thruster Action -----
# Thrusting action successful.
# ----- Fuel Action -----
# Using 10 units of fuel from the tank.
iss.fuel_reporter.report
# ----- Fuel Report -----
# 90 units of fuel available.
āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ° āĻāĻ āĻ¸āĻ°ā§āĻŦāĻļā§āĻˇ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§, āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦ āĻĻā§āĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻļā§āĻ°ā§āĻŖā§āĻ¤ā§ āĻŦāĻŋāĻāĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, FuelReporter āĻāĻŦāĻ SupplyReporter. āĻ¤āĻžāĻ°āĻž āĻĻā§āĻāĻ¨āĻ āĻ°āĻŋāĻĒā§āĻ°ā§āĻāĻžāĻ° āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻ¸āĻ¨ā§āĻ¤āĻžāĻ¨āĨ¤ āĻāĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻāĻŽāĻ°āĻž āĻ¸ā§āĻĒā§āĻ¸āĻ¸ā§āĻā§āĻļāĻ¨ āĻā§āĻ˛āĻžāĻ¸ā§ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¯ā§āĻ āĻāĻ°ā§āĻāĻŋ āĻ¯āĻžāĻ¤ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§ āĻĒāĻāĻ¨ā§āĻĻāĻ¸āĻ āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻāĻāĻ¨, āĻ¯āĻĻāĻŋ āĻĒā§āĻĨāĻŋāĻŦā§ āĻ āĻ¨ā§āĻ¯ āĻāĻŋāĻā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§āĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻŽāĻ°āĻž āĻāĻĒāĻļā§āĻ°ā§āĻŖā§āĻ¤ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻŦ, āĻŽā§āĻ˛ āĻļā§āĻ°ā§āĻŖāĻŋāĻ¤ā§ āĻ¨āĻ¯āĻŧāĨ¤
āĻ āĻŦāĻļā§āĻ¯āĻ, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻŋāĻā§ āĻā§āĻ˛āĻžāĻ¸ āĻāĻāĻ¨āĻ āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§āĨ¤ āĻāĻāĻāĻžāĻŦā§, SupplyReporter āĻ āĻŦāĻā§āĻā§āĻ āĻ¸āĻžāĻĒā§āĻ˛āĻžāĻāĻšā§āĻ˛ā§āĻĄā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻāĻŦāĻ FuelReporter FuelTank āĻāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§āĨ¤ āĻ āĻŦāĻļā§āĻ¯āĻ, āĻŦā§āĻ¸ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻā§āĻŦāĻžāĻ˛āĻžāĻ¨ā§ āĻā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻžāĻ¨ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻ¯ā§āĻā§āĻ¤āĻŋāĻ āĻĻā§āĻāĻžāĻā§āĻā§, āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻāĻ°āĻž āĻŦāĻŋāĻļā§āĻˇāĻāĻžāĻŦā§ āĻāĻ āĻŋāĻ¨ āĻšāĻŦā§ āĻ¨āĻž - āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻā§āĻĄ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°āĻž āĻ āĻ¨ā§āĻ¯āĻāĻŋāĻā§ āĻŦā§āĻ¯āĻžāĻĒāĻāĻāĻžāĻŦā§ āĻĒā§āĻ°āĻāĻžāĻŦāĻŋāĻ¤ āĻāĻ°āĻŦā§ āĻ¨āĻžāĨ¤
āĻāĻāĻāĻžāĻŦā§, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻŽāĻĄā§āĻ˛āĻžāĻ° āĻā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻāĻŋ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ āĻŦāĻā§āĻā§āĻ/āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦ āĻ¸ā§āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻāĻāĻžāĻŦā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ āĻā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻž āĻā§āĻ¨āĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¨āĻ¯āĻŧ, āĻāĻāĻŋ āĻŦāĻāĻžāĻ¯āĻŧ āĻ°āĻžāĻāĻž āĻāĻāĻāĻŋ āĻ¸āĻšāĻ āĻāĻžāĻ āĻšāĻŦā§āĨ¤ āĻāĻŽāĻ°āĻž āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ "āĻāĻļā§āĻŦāĻ°āĻŋāĻ āĻŦāĻ¸ā§āĻ¤ā§"āĻā§ āĻāĻ¸āĻāĻ°āĻĒāĻŋāĻ¤ā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻāĻ°ā§āĻāĻŋāĨ¤
Skillbox āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻāĻ°ā§:
- āĻĻā§āĻ āĻŦāĻāĻ°ā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ āĻā§āĻ°ā§āĻ¸
"āĻāĻŽāĻŋ āĻāĻāĻāĻ¨ āĻĒā§āĻ°ā§ āĻāĻ¯āĻŧā§āĻŦ āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°" .- āĻ āĻ¨āĻ˛āĻžāĻāĻ¨ āĻā§āĻ°ā§āĻ¸
"0 āĻĨā§āĻā§ C# āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§" .- āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ āĻŦāĻāĻ°ā§āĻ° āĻā§āĻ°ā§āĻ¸
"0 āĻĨā§āĻā§ PRO āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒāĻŋāĻāĻāĻāĻĒāĻŋ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§" .
āĻāĻ¤ā§āĻ¸: www.habr.com