14 октября 2011 г.

Форматирование кода

Всем известно, что нельзя пренебрегать форматированием, потому что … (тут идёт перечисление множества плюсов применения аккуратного форматирования исходного кода). Просто примите как аксиому, что код нужно писать так, как то велят делать спецификации. Нужны примеры — их много в исходниках, идущих со средой разработки, обычно они очень хорошо оформлены.
С правильно отформатированным кодом и разбираться проще, приведу совсем свежий пример (из RX Library):
procedure TRxLookupControl.SetValue(const Value: string);
begin
  if (Value <> FValue) then begin // Polaris // begin added
    if CanModify and (FDataLink.DataSource <> nil) and FDataLink.Edit then
    begin
//      if FMasterField <> nil then FMasterField.AsString := Value
//      else FDataField.AsString := Value;
      if FMasterField <> nil then SetFieldValue(FMasterField,Value) // Polaris
      else SetFieldValue(FDataField,Value); // Polaris
    end
    else // begin  // Polaris
      SetValueKey(Value);
      Change;
    end;
end;
Не знаю, как у вас, а у меня произошел вынос мозга, когда я пытался понять, что тут происходит. Однако после нескольких лёгких пассов происходит волшебное преображение:
procedure TRxLookupControl.SetValue(const Value: string);
begin
  if (Value <> FValue) then
  begin
    if CanModify and Assigned(FDataLink.DataSource) and FDataLink.Edit then
      if Assigned(FMasterField) then
        SetFieldValue(FMasterField, Value)
      else
        SetFieldValue(FDataField, Value)
    else
      SetValueKey(Value);
    Change;
  end;
end;
Как говорится, комментарии излишни.

Эта проблема отсутствует как класс в некоторых языках программирования, где форматирование имеет значение не только для разработчика, который пишет или читает этот код, но и для компилятора (например, Python). Неправильно форматированный код будет неправильно работать.

Комментариев нет:

Отправить комментарий