1) тянуть
params['wheelId']
и
params['carId']
в свои собственные определения
2) множественные вложенные if никогда не оптимальны. Вы можете избавиться от самого внешнего, используя метод validateParams и предоставляя какой-то ответ, если wheelId и carId не установлены. Или просто сделай
if (carId == null || wheelId == null) {
// params invalid
}
3) Предполагая, что все в порядке, вы можете просто сделать
def newWheel = Wheel.findById...
def car = Car.findById...
if (car != null && newWheel != null) {
car.setWheel(newWheel)
car.save()
render 'OK'
} else {
// either wheel or car is null
}
это избавляет от более вложенных структур ...
4) наконец, чтобы сделать код самодокументированным, вы можете сделать такие вещи, как назначить условные тесты переменным с соответствующими именами. Так что-то вроде
def carAndWheelOk = car != null && newWheel != null
if (carAndWheelOk) {
// do the save
} else {
// car or wheel not ok
}
это может быть излишним для двух тестов, но вы заботитесь только об одном колесе здесь. Если вы имели дело со всеми 4 колесами, этот тип вещей повышает удобочитаемость и удобство обслуживания.
Обратите внимание, что этот совет работает на любом языке. Я не думаю, что вы можете сделать слишком много с синтаксическим сахаром Groovy, но, возможно, некоторые отличные гуру могут предложить лучший совет.