Я работаю над кодовой базой в области около 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)
Группа А говорит, что каждый должен использовать "старый" синтаксис - у нас много кода в этом формате, и мы должны ценить последовательность. У нас нет времени, чтобы пройти весь путь через код, который теперь переписывает запросы к базе данных, и он не заплатил бы нас, если бы у нас было. Они также отмечают, что "так мы всегда это делали, и нам это удобно..."
Группа B, однако, говорит, что они согласны с тем, что у нас нет времени вернуться и изменить существующие запросы, мы действительно должны принять "новый" синтаксис кода, который мы пишем здесь. Они говорят, что разработчики только на самом деле смотрят на один запрос за раз, и что, пока разработчики знают оба синтаксиса, нет ничего, что можно было бы получить от жесткой привязки к старому синтаксису, который может быть устаревшим в какой-то момент в будущем.
Не объявляя, с какой группой ложится моя лояльность, мне интересно услышать мнения беспристрастных наблюдателей, поэтому давайте начнем игры!
Martin.
Ps. Я сделал это сообщество wiki, чтобы его нельзя было рассматривать как просто вопиющую погоню после вопросов...