Implementieren Sie Funktionen nur dann, wenn Sie sie tatsächlich benötigen, und nicht, wenn Sie glauben, dass Sie sie in Zukunft benötigen könnten.
// 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; } }
Das obige ist der detaillierte Inhalt vonYAGNI (Du wirst es nicht brauchen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!