Я использую шаблон MVC в PHP-проекте CodeIgniter, и мне интересно, каков наилучший способ построения методов моделей для обеспечения читабельности кода и масштабируемости.
Короче, лучше ли это сделать? :
public function set_account_state($new_state) {
// UPDATE a database record state to $new_state [0, 1 or 2]
}
Или это ? :
public function reject_account() {
// UPDATE a database record state to 0
}
public function accept_account() {
// UPDATE a database record state to 1
}
public function pending_account() {
// UPDATE a database record state to 2
}
Или, может быть, по-другому?
Кроме того, есть ли хорошая практика для именования функций в таких случаях?
function set_account_state($state)
Это лучше, когда у вас есть только одна задача — изменить состояние.
Но если в будущем вам, возможно, придется изменить различные задачи, прежде чем изменять состояние учетной записи, вам понадобятся три разных метода.
Вы по-прежнему можете использовать этот оригинальный метод, чтобы изменить состояние учетной записи и вызвать его из трех методов.
Имена функций должны включать глагол с существительными, чтобы сделать его более понятным.
Функция pending_account () не так понятна, функция keep_account_pending () — это лучший способ назвать ее.
На мой взгляд, второй способ — лучший.
Использование имен, указывающих, что будет делать метод, может улучшить читаемость кода.
Когда ваш код становится больше, легко забыть, какое число представляет какое состояние. Это не происходит с именами, потому что метод называется reject_account()
будет указывать, что учетная запись будет отклонена лучше, чем число, переданное в качестве аргумента функции.
Также, когда над вашим кодом работают другие люди, им будет легче понять, что происходит при вызове метода. Сказав это, лучше понять, что учетная запись клиента принимается, когда виден метод accept_account()
тогда, когда кто-то видит set_account_state(1)
,