?

Log in

No account? Create an account

Пт, 20 май, 2011, 01:12
О тавтологиях

Даже удивительно, сколько разработчиков не знают, что вместо, к примеру:

if a > b then
  gt_flag := true;
else
  gt_flag := false;
end if;

можно (и нужно) писать:

gt_flag := a > b;

Хотя это работает во всех языках, где есть булевский тип, от Паскаля до PL/SQL.

На самом деле даже такой случай:

if a > b then
  gt_flag := some_expression;
else
  gt_flag := another_expression;
end if;

в PL/SQL можно немного улучшить:

gt_flag := case
  when a > b then some_expression;
  else another_expression;
end;

Пт, 20 май, 2011 08:08 (UTC)
d_byzero

ну что значит "можно и нужно"? Можно. А нужно ли -- вопрос философский. Да, я тоже предпочитаю второй вариант. Но я бы не сказал, что первый менее читабельный.

В Си, как ты знаешь, вообще есть оператор ? :. Который позволяет в одну строчку красиво (но нечитабельно) записать очень сложные выражения.

Пт, 20 май, 2011 08:50 (UTC)
ptzy

у нас уже месяца два висит в планах бумажка "договориться о стандарте оформления кода". думаю, они скоро драться начнут.
я к тому, что религиозные диспуты можно вести бесконечно. :)

Пт, 20 май, 2011 19:38 (UTC)
egorius

Никаких религиозных войн, что ты, что ты. Когда у нас очередной раз раздаётся «а давайте введём стандарт», я первый миротворец на деревне.
Религия начинается, когда плюсы не перевешивают очевидным образом минусы, а тут всё ясно.

Пт, 20 май, 2011 19:31 (UTC)
egorius

Нужно, нужно.
В моём табеле о ценностях понятность стоит выше, чем краткость.
Но в данном примере второй вариант более краток и (за счёт этого) более ясен. Первый вариант проигрывает подчистую, ему нет объяснения, кроме «не знал, что так можно».