Войти
ФлеймФорумПрограммирование

Оцените кусочек кода из google/protobuf/compiler/parser.cc (2 стр)

Страницы: 1 2 3 4 Следующая »
#15
9:29, 26 окт. 2018

war_zes
> Ты упускаешь ту вещь, что кроме парсера там и другой, вспомогательный код - и
> он весь вот такой говняный
Нет, это ты упустил мой ответ на это утверждение.


#16
9:31, 26 окт. 2018

Имитация хаскеля и паттерн матчинга.
Особенно аргументы функций линейкой под открытой дужкой.

#17
(Правка: 9:50) 9:49, 26 окт. 2018

Delfigamer
Давай свои аргументы своими словами, пожалуйста.

#18
10:06, 26 окт. 2018

Мне не нравятся отступы в 2 пробела и разное число пробелов в разрывах строк. Я бы отформатировал так:

+ Показать

Помидоры, чтоб кидаться:

+ Показать

#19
(Правка: 10:09) 10:07, 26 окт. 2018

war_zes
> Давай свои аргументы своими словами, пожалуйста.
Зачем? У тебя нарушения слуха и не включаются субтитры?

#20
10:25, 26 окт. 2018

Если к тебе приходит не структурированные данные или строка или xml, то ты так и будешь писать. К сожалению, такое есть во всех проектах, которые работают со сторонними данными и еще не успели развернуть их в своё внутренне представление. Как ты будешь писать что-то типа процессинга команд сети? Можно написать map с функциями  И их вызывать. Окей.

#21
10:58, 26 окт. 2018

Adler
> Оцените кусочек кода
На первый взгляд:
1. Нарушено правило читабельности: число идущих подряд похожих строк не должно быть больше числа мест, в которых они по мелочи отличаются.
2. Нарушено правило структурирования для C-подобных языков: функция должна свободно влезать в экран.
3. Нарушено золотое правило программирования: делай таблицу, только если не можешь вычсислить в одну строку, и пиши if-ы только, если не можешь построить таблицу.

В итоге нарушено

Следствие 13: Если запись решения на языке программирования оказывается более путаной и длинной, чем на человеческом языке, значит, программист не владеет нужным языком программирования.

#22
(Правка: 11:17) 11:11, 26 окт. 2018

war_zes
> Теперь понятно почему у гугла софт такой убогий
  Из-за отступов, конечно же, ага.

> Неосиливание кода из-за альтернативного форматирования - 100% признак что код плохой
  Где-то в твиттере видел опрос про то, какие отступы использовать. Очень большой процент народа считает, что двух пробелов достаточно. Оно и не удивительно, ведь там участвовали не те программисты, которые ищут работу за 20 тысяч.

  Ну и тут совершенно случайно наткнулся на сегодняшний твит Кармака: https://twitter.com/ID_AA_Carmack/status/1055468494236667905

gudleifr
> Если запись решения на языке программирования оказывается более путаной и
> длинной, чем на человеческом языке, значит, программист не владеет нужным языком программирования.
  Пример решения на человеческо языке в студию, чтобы мы могли сравнить.

#23
11:17, 26 окт. 2018

Один я, видимо, в 21 веке - использую для отступов не пробелы, а табуляцию... пошёл посыпать голову пеплом

+ Показать
#24
11:19, 26 окт. 2018

Zefick
> Ну и тут совершенно случайно наткнулся на сегодняшний твит Кармака
У Кармака и код похожий как в первопосте. Из-за чего дум грузился шестнадцать секунд вместо двух.

#25
11:19, 26 окт. 2018

Zefick
> Пример решения на человеческо языке в студию, чтобы мы могли сравнить.
См. мои заметки. Или ищите здесь старые холивары.

0iStalker
> Один я, видимо, в 21 веке - использую для отступов не пробелы, а табуляцию...
До первой попытки выложить код на форум, или до первого облома в Питоне.

#26
(Правка: 11:29) 11:26, 26 окт. 2018

gudleifr
> До первой попытки выложить код на форум

И где тут проблема?!

void CPU6502::rol(uint8_t& data)
{
  int t = (data & 0x80);
  data = (data << 1) & 0xFE;
  data = data | (regP & fmasks::C);

  regP &= ~(fmasks::N | fmasks::C | fmasks::Z);
  regP |= t; //set fmasks::C
  regP |= (data & 0x80) ? fmasks::N : 0;
  regP |= (data == 0) ? fmasks::Z : 0;  
}

void CPU6502::ror(uint8_t& data)
{
  int t = data & 0x01;
  data = (data >> 1) & 0x7F;
  data = data | ((regP & fmasks::C) ? 0x80 : 0);
  
  regP &= ~(fmasks::N | fmasks::C | fmasks::Z);
  regP |= t; //set fmasks::C
  regP |= (data & 0x80) ? fmasks::N : 0;
  regP |= (data == 0) ? fmasks::Z : 0;  
}
+ оригинал
#27
11:29, 26 окт. 2018

0iStalker
> И где тут проблема?!
А где табуляции?

#28
11:29, 26 окт. 2018

gudleifr
> А где табуляции?

Под спойлером (добавил в сообщение #26)

#29
11:30, 26 окт. 2018

entryway
> У Кармака и код похожий как в первопосте. Из-за чего дум грузился шестнадцать секунд вместо двух.
  Всегда приятно узнать от экспертов с gd, что они в 93-м написали бы лучший код, чем это делали мэтры игроделания. Сразу ощущаешь, что общаешься с илитой. Ой, блин, о чём это я :)

Страницы: 1 2 3 4 Следующая »
ФлеймФорумПрограммирование