Я работаю над кодовой базой в районе около 1 000 000 строк исходного кода в команде из примерно восьми разработчиков. Наш код в основном представляет собой приложение, использующее базу данных Oracle, но этот код со временем развивался (у нас много исходного кода с середины девяностых!).
В команде возник спор по поводу синтаксиса, который мы используем для запросов к базе данных Oracle. В настоящее время подавляющее большинство наших запросов использует «старый» синтаксис Oracle для объединений, что означает, что у нас есть код, который выглядит следующим образом ...
Пример внутреннего соединения
select customers.*
, orders.date
, orders.value
from customers, orders
where customers.custid = orders.custid
Пример внешнего соединения
select customers.custid
, contacts.ContactName
, contacts.ContactTelNo
from customers, contacts
where customers.custid = contacts.custid(+)
Когда к команде присоединились новые разработчики, мы заметили, что некоторые из них предпочитают использовать запросы SQL-92, например:
Пример внутреннего соединения
select customers.*
, orders.date
, orders.value
from customers inner join orders
on (customers.custid = orders.custid)
Пример внешнего соединения
select customers.custid
, contacts.ContactName
, contacts.ContactTelNo
from customers left join contacts
on (customers.custid = contacts.custid)
Группа A говорит, что каждый должен использовать «старый» синтаксис - у нас много кода в этом формате, и мы должны ценить согласованность. У нас нет времени, чтобы пройти весь код, переписывающий запросы к базе данных, и мы бы не заплатили за него. Они также указывают, что «мы всегда так поступали, и нам это удобно ...»
Группа B, однако, говорит, что они согласны с тем, что у нас нет времени возвращаться и изменять существующие запросы, нам действительно следует принять «новый» синтаксис кода, который мы пишем с этого момента. Они говорят, что разработчики действительно смотрят только на один запрос за раз, и, поскольку разработчики знают оба синтаксиса, нечего получить от жесткого соблюдения старого синтаксиса, который может быть признан устаревшим в некоторый момент в будущем.
Не объявляя, к какой группе относятся мои сторонники, мне интересно услышать мнение беспристрастных наблюдателей - так что давайте начнем игру!
Martin.
Ps. Я сделал это вики-сообществом, чтобы не выглядеть просто нагло гоняться за вопросами ...