미래에 필요할 것이라고 생각할 때가 아니라 실제로 필요할 때만 기능을 구현하세요.
// Over-engineered solution anticipating future needs class UserService { private $database; private $cache; private $logger; private $notifications; private $analytics; public function __construct( DatabaseInterface $database, CacheInterface $cache, LoggerInterface $logger, NotificationService $notifications, AnalyticsService $analytics ) { $this->database = $database; $this->cache = $cache; $this->logger = $logger; $this->notifications = $notifications; $this->analytics = $analytics; } public function createUser($data) { $this->logger->info('Creating user'); $user = $this->database->insert('users', $data); $this->cache->set('user_' . $user->id, $user); $this->notifications->sendWelcomeEmail($user); $this->analytics->trackUserCreation($user); return $user; } }
class UserService { private $database; public function __construct(DatabaseInterface $database) { $this->database = $database; } public function createUser($data) { return $this->database->insert('users', $data); } }
// Bad: Implementing unused features class Product { private $name; private $price; private $stock; private $weight; // Not needed yet private $dimensions; // Not needed yet private $shippingZones; // Not needed yet private $taxCategories; // Not needed yet private $customFields; // Not needed yet public function calculateShipping($address) { // Complex shipping calculation that isn't required } public function calculateTax($country) { // Complex tax calculation that isn't required } } // Good: Implementing what's needed now class Product { private $name; private $price; private $stock; public function __construct(string $name, float $price, int $stock) { $this->name = $name; $this->price = $price; $this->stock = $stock; } }
위 내용은 YAGNI(당신은 필요하지 않을 거예요)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!