8 правил хорошего кода - хорошая статья о Code Style - страница 2

 

Автор странно использует наследование, вот цитата "...Допустим, у вас есть класс Руль и класс Колесо. Класс Автомобиль можно реализовать как наследник класса-предка Руль, но ведь Автомобилю нужны и свойства класса Колесо."

(поставил все с ног на голову).

И как вариант он предлагает вместо наследования использовать комбинацию.

 
pusheax:

Автор странно использует наследование, вот цитата "...Допустим, у вас есть класс Руль и класс Колесо. Класс Автомобиль можно реализовать как наследник класса-предка Руль, но ведь Автомобилю нужны и свойства класса Колесо."

(поставил все с ног на голову).

И как вариант он предлагает вместо наследования использовать комбинацию.

C точки зрения логики я бы использовал классы-члены или комбинацию в терминологии автора. Да, это понизит быстродействие, но крайне незначительно. Зато автомобиль разбит на составные части, нет конфликта имен, как при множественном наследовании.
 
Alexey Viktorov:

Сразу бросилось в глаза

Но у MQ пробелы считаются плохом тоном.

Пробел так-же занимает место в файле, если написать без пробелов, и учесть что это не в одном месте, то файл уменьшиться в размере, но на читабельность это не отразиться

 

for (var i = 0; i < 100; i++)

или так 

for (var i=0; i<100; i++)

 Вообще статья о javascript коде, а там немного другие стандарты форматирования.

Я раньше писал так

    for(int ob=0; ob<ArraySize(b_symbols); ob++) {
      if(h==0){
        ArrayResize(bs_mass_sy,ob+1);
        bs_mass_sy[ob][0]="0";
        bs_mass_sy[ob][1]="0";
       }
      if(symbol(list_id[h])==b_symbols[ob]) {
        bs_mass_sy[ob][0]=b_symbols[ob];
        bs_mass_sy[ob][1]=list_id[h];
       }
     }

 теперь пишу так, немного легче при редактировании

    for(int ob=0; ob<ArraySize(b_symbols); ob++)
     {
      if(h==0)
       {
        ArrayResize(bs_mass_sy,ob+1);
        bs_mass_sy[ob][0]="0";
        bs_mass_sy[ob][1]="0";
       }
      if(symbol(list_id[h])==b_symbols[ob])
       {
        bs_mass_sy[ob][0]=b_symbols[ob];
        bs_mass_sy[ob][1]=list_id[h];
       }
     }

 Но если писать так, то это конечно неприятный стиль форматирования

for(int ob=0; ob<ArraySize(b_symbols); ob++) {
if(h==0) {
ArrayResize(bs_mass_sy,ob+1);
bs_mass_sy[ob][0]="0";
bs_mass_sy[ob][1]="0";}
 
if(symbol(list_id[h])==b_symbols[ob]) {
bs_mass_sy[ob][0]=b_symbols[ob];
bs_mass_sy[ob][1]=list_id[h]; }
}
 
Alexey Volchanskiy:
C точки зрения логики я бы использовал классы-члены или комбинацию в терминологии автора. Да, это понизит быстродействие, но крайне незначительно. Зато автомобиль разбит на составные части, нет конфликта имен, как при множественном наследовании.

Я о другом, автор класс Автомобиль собирается реализовать как класс наследник от класса-предка Руль,хотя стоило сделать все наоборот.

Класс Автомобиль сделать предком обоих этих классов:

Автомобиль.Руль

Автомобиль.Колесо

а так у него получится

Руль.Автомобиль

Руль.Колесо

в принципе и так конечно работать будет но просто само название темы.

 
pusheax:

Я о другом, автор класс Автомобиль собирается реализовать как класс наследник от класса-предка Руль,хотя стоило сделать все наоборот.

Класс Автомобиль сделать предком обоих этих классов:

Автомобиль.Руль

Автомобиль.Колесо

а так у него получится

Руль.Автомобиль

Руль.Колесо

в принципе и так конечно работать будет но просто само название темы.

Мысль понял, но тоже кривовато. Унаследовались от Автомобиль и получили кучу производных классов Руль, Колесо и т.д. Что дальше с ними делать? 
 
Alexey Volchanskiy:

Не надо фанатизма, это не значит, что надо код по столбцам расписывать )) Достаточно выравнивания по typeof a. Во втором примере вообще криминала не вижу. Лично меня бесят расстановки {} скобок, нифига не видно начало и конец блока. Я всегда так пишу

Да! Скобки для некоторых, это большая проблема, особенно когда касается  простых операторов типа if некоторые их вообще не ставят. И за чего программа начинает давиться. Нарушают правила симметрии в написании. Хоть в примере и стоит, под правильным написанием, но правило симметрии в нем нарушено, а значит и читабельность человеком будет затруднительно.