Size: a a a

Конференция C++ Russia

2020 August 13

VK

Vladimir Krivopalov in Конференция C++ Russia
Pavel Zhigulin
Любопытно - да :) Но типа как зоопарк сходить. А тебе предлагают в зоопарке работать и дерьмо за животными ещё разгребать :)
Лучший комментарий!
источник

PZ

Pavel Zhigulin in Конференция C++ Russia
Alexey Veselovsky
не, я откровенно реально не понимаю, почему код которому 20-30-40-50 лет, однозначно плохой
Ну, он не однозначно плохой. Просто очень часто плохой) Как минимум потому, что:

1) не было статических анализаторов
2) не было санитайзеров
3) код стайл отсутствовал скорее всего или не соблюдался
4) код писался побольше в одном файле, просто потому, что навигация по коду была ужасной.
5) код содержит ужасные конструкции из макросов, потому что... Ну, выхода не было

Но!

Все это не говорит, что код плохой. Просто скорее всего его тяжело править)
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Pavel Zhigulin
Старое не всегда гавно, просто почем кого не гавно - часто не очевидно :) Потому что он "не гавно" только если ты уже выучил все места, где грабли лежат)

Раньше было прикольно играть в хардкорные игры на денди без сохранений, где не было мини-карты и все локации вообще текстом описывались) Но кто ща в такое будет играть?)
дык а чем это отличается от кода созданного 3 года назад? без док, как это обычно бывает и без человека который его писал?
источник

VK

Vladimir Krivopalov in Конференция C++ Russia
Alexey Veselovsky
не, я откровенно реально не понимаю, почему код которому 20-30-40-50 лет, однозначно плохой
Код плохой сам по себе не потому, что ему 20-30 лет. Просто в коде, которому много лет, чаще всего нечего ловить в плане новых интересных идиом и решений - сфера динамичная, то, что 10 лет назад было know-how, теперь уже рудимент.

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

AV

Alexey Veselovsky in Конференция C++ Russia
старый код (который до сих пор используется) - он часто писан намного проще и разобраться в нем легче чем в новых выкрутасах
источник

VK

Vladimir Krivopalov in Конференция C++ Russia
Alexey Veselovsky
старый код (который до сих пор используется) - он часто писан намного проще и разобраться в нем легче чем в новых выкрутасах
Иногда так, да. Но намного чаще он просто уже содержит столько хаков, костылей и спагетти, что браться за него страшно, а переписывать заново тем более. Потому стараются лишний раз не трогать.
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Vladimir Krivopalov
Код плохой сам по себе не потому, что ему 20-30 лет. Просто в коде, которому много лет, чаще всего нечего ловить в плане новых интересных идиом и решений - сфера динамичная, то, что 10 лет назад было know-how, теперь уже рудимент.

Плюс в бизнес-логике неизбежно накапливаются костыли, заглушки, "надо успеть до пятницы". По итогу чаще всего там копролит, на который именно что лучше любоваться как на крокодила в зоопарке - из-за клетки, а не палкой в него тыкать.
ну, берешь какой-нибудь совсем древний код - а там корутины 🙂 видать устаревшая идиома 🙂
источник

AV

Alexey Veselovsky in Конференция C++ Russia
которому лет 30-40.
источник

VK

Vladimir Krivopalov in Конференция C++ Russia
Alexey Veselovsky
ну, берешь какой-нибудь совсем древний код - а там корутины 🙂 видать устаревшая идиома 🙂
Неужели много кода на плюсах 10-20-летней давности, где используют корутины? Ни разу не встречал. Мы сами их в 2010-2011 году впервые внедряли, так там целая война была, когда нам хотели запретить это бесовское поделие.
источник

PZ

Pavel Zhigulin in Конференция C++ Russia
Alexey Veselovsky
старый код (который до сих пор используется) - он часто писан намного проще и разобраться в нем легче чем в новых выкрутасах
У меня противоположный опыт, но с другой стороны, я бы это всё списал в целом на культуру разработки в той компании. Потому что новый код тоже был не самого лучшего качества.

Тем не менее хороший старый код - действительно вещь неплохая. Потому что написана дубово, т.к. под рукой были выразительные средства дубовые. Мне любую программу на Си читать обычно легче, чем на С++, просто потому, что Си как язык простой. Но типа сидеть и писать программу на Си или править в ней что-то - боль и отчаяние обычно, потому что не хватает выразительных средств)
источник

AV

Alexey Veselovsky in Конференция C++ Russia
10 лет - это НОВЫЙ код 🙂 точнее 10ти летний код - один из самых неинтересных наверно
источник

VK

Vladimir Krivopalov in Конференция C++ Russia
90% кода 15-20-летней давности на плюсах, который я видел, это такая Java без GC - сплошное OOP, слово virtual в каждой второй строке, самописные классы строк, костыли и куча TODO/XXX/FIXME
источник

VK

Vladimir Krivopalov in Конференция C++ Russia
Ну и чаще всего это не С++, а "С с классами".
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Pavel Zhigulin
У меня противоположный опыт, но с другой стороны, я бы это всё списал в целом на культуру разработки в той компании. Потому что новый код тоже был не самого лучшего качества.

Тем не менее хороший старый код - действительно вещь неплохая. Потому что написана дубово, т.к. под рукой были выразительные средства дубовые. Мне любую программу на Си читать обычно легче, чем на С++, просто потому, что Си как язык простой. Но типа сидеть и писать программу на Си или править в ней что-то - боль и отчаяние обычно, потому что не хватает выразительных средств)
ну, то есть выходит, что надо писать именно в максимально простом стиле, а за использование излишних выразительных средств - бить по рукам
источник

AV

Alexey Veselovsky in Конференция C++ Russia
потому, что намного важнее как код будет потом читаться, нежели как код писался
источник

VK

Vladimir Krivopalov in Конференция C++ Russia
Alexey Veselovsky
ну, то есть выходит, что надо писать именно в максимально простом стиле, а за использование излишних выразительных средств - бить по рукам
Вроде как это ровно то, чего пытались добиться создатели Go.
источник

AV

Alexey Veselovsky in Конференция C++ Russia
и, выходит, секта Go'шников конкретно права
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Vladimir Krivopalov
Вроде как это ровно то, чего пытались добиться создатели Go.
это то, чего добивался Вирт со своим Обероном. И что подхватили гошники.
источник

VK

Vladimir Krivopalov in Конференция C++ Russia
Ага. Ирония здесь в том, что они всю дорогу подчёркивали, что делают это так, чтобы не было похоже на С++
источник

AV

Alexey Veselovsky in Конференция C++ Russia
напомню, что в первой ревизии Оберона Вирт оттуда даже цикл FOR выкинул 🙂 ибо - лишняя штуковина, отлично заменяющаяся циклом WHILE.
источник