LINUX.ORG.RU

Ушат помоев в сторону крестолюбов

 , , ловите наркомана,


15

14

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

Последние 7 лет я пишу сугубо на C, и только под Linux (да, да -std=gnu99 и accept4, dup3, __attribute__((cleanup(dtor))) и прочие приятности, позволяющие сделать волосы шелковистее на 15.5%) и не понимаю, для чего вообще нужен C++? То, что на сишке делается красиво и элегантно, в крестах напоминает соитие парализованных дцпшников (к сожалению, утерял картинку, но именно этот образ всплывает в голове, когда вижу очередную порцию крестолапши).

Давайте посмотрим на типичного C++ разработчика: он использует STL, boost, многие любят Qt (не только для GUI), якобы чтобы «писать кроссплатформенный код». В итоге болезный не знает током ни WinAPI, ни POSIX — ничерта. Он абсолютно не разбирается, как работает целевая система, для которой пишет код! Крестокодер просто не осознает, какой лютый ужас кроется за его любимыми iostream-ами, какое лютое говно лежит в boost::filesystem::path, насколько убого-низкоуровневым является boost::asio в 2016 году.

Только крестораб может эпично обосраться и просадить производительность, забыв передавать по ссылке параметры для «горячих» функций (то есть, просто забыв написать «&» в нужном месте).

Также эти убогие завистливо смотрят на type inference в языках, проектировавшихся не как «C на стероидах», и в ответ начинают лепить template и auto не к месту, от чего код адово пухнет и даже IDE перестает его понимать.

Серьезно, просто прекратите писать на этом языке. В следующий раз, начиная новый проект, выберите java (щютка)/go/swift/rust/c. Прекратите насиловать труп и отравлять зловонием все вокруг!

Перемещено true_admin из talks

★★★★

Последнее исправление: a1batross (всего исправлений: 2)

Ответ на: комментарий от anonymous

Вы совершенно правы, но Вы не учитываете конвейризацию.

Что касается кода - погуглите статьи Левченко и алгоритмы LRnLA. Я сейчас просто с телефона пишу, неудобно.

AIv ★★★★★
()
Ответ на: комментарий от reprimand

но лично я стараюсь быть НЕ криворуким

Звучало бы убедительнее, не будь в профиле ссылки на твой гитхаб. Там немного не на что смотреть.

GoodRiddance
()
Ответ на: комментарий от GoodRiddance

дык там кроме пары привет-миров и нет ничего

anonymous
()
Ответ на: комментарий от inchallah

все используют .NET или Java.

кто все?

На жабе я ни одного приложения вспомнить не могу даже. (LOR не считается)

Dron ★★★★★
()

треда всего сообщений не осилил, слишком много.

плюсики, лично мне не нравятся, но я бы не был так голословен (ну и хотя б реальные проблемы описал) что это гавно. плюсики это типичный overэнженеринг, и каждый выдумывает свое, в кутях свое, в foo свое, где то еще свое, и каждый пишет - вот фитчу а низзя, в другом месте b какой то нельзя. Итого - плюсовый код говно, тк не все будут до конца держатся каких то правил.

C с другой стороны, простой понятный язык, без сахара синтаксического, без бутстрапа и не явного поведения как плюсики, но херачить на нем все что нипопадя - это глупость.

Сишечка нужна, плюсики уже не особо, тк вместо них есть over дофига других инструментов.

Насчет сборки ... cmake тут упоминали, его синтаксис а-ля что то из оперы perl и чего то еще даже более древнего - нет уж. бяка она и есть бяка. автотулз рулит.

Для GP которое идет на новом железе я б C не брал, и плюсики тоже, есть Python и (о ужасс) .net/java (нет нет нет js фтопку и вебподелия тоже туда же), для изысков Scheme/Lisp. Если что то такое хардкорное системное то C. Плюсики же - мне сложно понять нафига оно надо сейчас.

PS ++ templates - придумыватель этого должен гореть в огне да.

alwayslate ★★
()
Ответ на: комментарий от eao197

< Могло бы стать:

Во втором случае надо искать и смотреть объявление handle_halign, которая работает совершенно невнятным образом и непонятно вообще зачем нужна (на самом деле ни зачем,просто у когото копипаста головного мозга).

Самое смешно начнется тогда, когда логика handle_halign усложнится и будет зависеть от align. Вот тогда ты сразу вспомнишь про кукареки о простоте сопровождения.

anonymous
()
Ответ на: комментарий от eao197

Я не говорю что копипаста не может быть плоха. Я говорю, что она необязательно плоха. Часто копипаста (сама по себе не являясь злом) ведет к некоторым отрицательным последствиям, да. Равно как к некоторым отрицательным последствиям часто ведет попытка избежать копипасты. Надо смотреть на ситуацию а не выполнять бездумные директивы.

anonymous
()
Ответ на: комментарий от Dron

Наверное потому, что обычные десктопные приложения - это никому не нужное гетто?

anonymous
()

Чуть чаем не захлебнулся, давно так не смеялся. Спасибо Анонимусу.

Аффтар выпей йаду и пеши исчо!

anonymous
()
Ответ на: комментарий от anonymous

Во втором случае надо искать и смотреть объявление handle_halign

Т.е. найти объявление локальной переменной в методе для вас проблема? А разбираться с 20 строками однотипного кода, отличающегося лишь отдельными деталями — нет? Ну, окай.

Главное, что аргументы о привязке к глобальным переменным вдруг исчезли. Как так? Уважаемый анонимный ыксперт поменял свое мнение? А ну как он еще раз его поменяет.

eao197 ★★★★★
()
Ответ на: комментарий от foror

Да и клиент-сайд зачастую требует наличия сервера на Java/С#. Идем смотрим популярные компании, производящие онлайн игры, особенно MMO, и видим что почти у всех есть куча вакансий серверных Java/C# кодеров. Что это значит? :)

stevejobs ★★★★☆
()
Ответ на: комментарий от shty

это не про сеньоров, точнее не про C++, мусью расписал механизм ротации java-monkey на Ъ-ынтерпрайз-проектах ))

ты как бы хочешь намякнуть, что в мире С++ говнарей не увольняют?

если так, начинаю догадываться, в чем проблема С++...

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

если так, начинаю догадываться

Может в перерывах между догадками вы таки найдете время и расскажете подробнее, что именно в коде, на который вы давали ссылку вам представляется говнокодом?

Или тут думать надо, а не говно лопатой накидывать?

eao197 ★★★★★
()
Ответ на: комментарий от Dron

На жабе я ни одного приложения вспомнить не могу даже. (LOR не считается)

Это потому что ты мамкин админ локалхоста.

anonymous
()

Зашел в тред высказать насколько это бессмысленное обсуждение :)

Языки шмизыки - главное задачи, проекты, чем сложнее тем интереснее, плевать на чем.

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Программу на Фортране можно написать на любом языке программирования :)

eao197 ★★★★★
()
Ответ на: комментарий от alwayslate

плюсики, лично мне не нравятся, но я бы не был так голословен (ну и хотя б реальные проблемы описал) что это гавно. плюсики это типичный overэнженеринг, и каждый выдумывает свое, в кутях свое, в foo свое, где то еще свое, и каждый пишет - вот фитчу а низзя, в другом месте b какой то нельзя. Итого - плюсовый код говно, тк не все будут до конца держатся каких то правил.

Ты бы не был голословен, но ты голословен. Если C++ - «overэнженеринг», то что же тогда джава с её программированием на XML, AspectJ, несколькими GUI-тулкитами (ни один из которых толком не взлетел) и прочими прелестями, начиная с JVM? Или ты думаешь, что на джаве не пишут говнокод? Да полно его. И ловушек в самом языке дофига и больше (очень про них любят спрашивать на собеседованиях пальцезагибатели, которые рассказывают как хороша и безопасна жабка; рассказывают как она проста, а потом в деталях спрашивают как устроен сборщик мусора в какой-нибудь реализации JVM, или как не попасть в ловушку на ровном месте сравнивая два числа). То же самое можно сказать про C# с .NET.

asaw ★★★★★
()
Последнее исправление: asaw (всего исправлений: 1)
Ответ на: комментарий от eao197

- Нечитаемая бизнес-логика (код должен выглядеть как текст на английском языке, содержащий команды, чтобы было с одного взгляда понятно что и как происходит, а тут 3.14 здец)
- Методы внешнего вызывающго апи (obs_module_unload, obs_module_load) находятся в том же файле, что и логика основного модуля, при этом там не просто «вызывалки» а реально дочерта кода.
- Полное отсутствие ООП
- Всё засунуто в один файл, у которого даже нет заголовка
- Методы размером в несколько экранов
- Огромная структура ТекстСорс (разделить как минимум на фонт и сорс)
- Простыня локализации прямо в файле с логикой
- Утилиты должны быть в классе Utils, или если это макросы - в отдельном файле Utils, никак не рядом с бизнес-кодом
- Отсутствие неймспейса
- Отсутствие главного класса
- Где-то юзаются просто функции, а где-то - методы, и это не связано с требованиями вызывающего апи
- Свичи вместо параметризованных стратегий (и соответствнно копипаст)
- get_properties который заполняет проперти прямо в коде
- Копипаст
- Копипаст
- Копипаст
- Перегрузка операторов, там где можно обойтись вызовом метода
- Уродливый do while (false) с куском ифа
- if (cond) ... вместо if (cond) { ... } (постоянно пропускает фигурные скобки, сволочь)
- if тройной вложенности (надо подумать как сделать более плоским)
- Объявления, понамешанные с кодом
- Чудные имена переменных типа color, color2
- Магические константы без имени типа 0xFFFFFF

это то, что на первый взгляд, не переходя к собственно тому как идет отрисовка

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

ну тут-то понятно, люди вечерами хреначат pet projects, уже слишком устаешь чтобы думать. Но в крестах так всё. Открываешь первый попавшийся проект, а там ад ад ад ад ад, и гораздо похуже этого (я просто сейчас не знаю что показать, на работе весь код под NDA)

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

Спасибо, поржал.

Из всего потока сознания только несколько пунктов имеет отношение к делу, все остальное какие-то персональные фобии и мании.

eao197 ★★★★★
()
Ответ на: комментарий от foror

Зайди на Google Play

Закрытый софт для мобилок, ты серьёзно?

И остальные пол интернета сервер-сайда?

ты вот так взял и от балды оценил распределение используемых языков на серверах в 50% в пользу java да?

Dron ★★★★★
()
Ответ на: комментарий от stevejobs

Идем смотрим популярные компании, производящие онлайн игры

Окей не спорю, но и у них же рядом располагаются вакансии и на питон и на си и на луа, о чём это говорит? Пральна о разных потребностях их и подходах к используемым инструментам и всё))

Dron ★★★★★
()
Ответ на: комментарий от stevejobs

Имя им легион:

- Нечитаемая бизнес-логика (код должен выглядеть как текст на английском языке, содержащий команды, чтобы было с одного взгляда понятно что и как происходит, а тут 3.14 здец)
- Методы внешнего вызывающго апи (obs_module_unload, obs_module_load) находятся в том же файле, что и логика основного модуля, при этом там не просто «вызывалки» а реально дочерта кода.
- Полное отсутствие ООП
- Всё засунуто в один файл, у которого даже нет заголовка
-
-
-
- Утилиты должны быть в классе Utils, или если это макросы - в отдельном файле Utils, никак не рядом с бизнес-кодом
- Отсутствие неймспейса
- Отсутствие главного класса
- Где-то юзаются просто функции, а где-то - методы, и это не связано с требованиями вызывающего апи
- Свичи вместо параметризованных стратегий (и соответствнно копипаст)
- get_properties который заполняет проперти прямо в коде
-
-
-
- Перегрузка операторов, там где можно обойтись вызовом метода
- Уродливый do while (false) с куском ифа
- if (cond) ... вместо if (cond) { ... } (постоянно пропускает фигурные скобки, сволочь)
- if тройной вложенности (надо подумать как сделать более плоским)
- Объявления, понамешанные с кодом

Пару пунктов из тех, что оставлено не совсем понимаю, но скорее всего это ваши тараканы. Да и по тем, что были вычеркнуты из-за того, что похожи на правду, есть вопросы.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

два вопроса:

- какие книги по C++ и архитектуре приложений ты прочитал в последнее время?

- напиши сюда имэйл твоего технического руководителя, пожалуйста. Запишусь к вам коучем (что бы это ни значило) что ли, буду преподавать ООП и паттерны проектирования за деньги.

stevejobs ★★★★☆
()
Последнее исправление: stevejobs (всего исправлений: 1)
Ответ на: комментарий от stevejobs

напиши сюда имэйл твоего технического руководителя, пожалуйста.

Вы можете мне прямо здесь свой уровень продемонстрировать.

А нет, уже продемонстрировали. No hire.

eao197 ★★★★★
()
Ответ на: комментарий от stevejobs

Поржал. Если бы не засилье слова «бизнес», то можно было бы воспринимать всерьез.

код должен выглядеть как текст на английском языке

Кому должен?

Методы внешнего вызывающго апи...

Не распарсил.

Полное отсутствие ООП

Клиника.

Всё засунуто в один файл, у которого даже нет заголовка

И?

Методы размером в несколько экранов

В данном случае, разбиение на подфункции только увеличит объем кода.

Огромная структура ТекстСорс

Вкусовщина. Разбиение только увеличит код.

Простыня локализации прямо в файле с логикой

Это да, странно. Ну вот такой костыль сделали авторы. gettext не осилили.

Утилиты должны быть в классе Utils

Кому должны?

Отсутствие неймспейса
Отсутствие главного класса

Шта? Какого? Зачем?

Где-то юзаются просто функции, а где-то - методы

Смысл оборачивать однострочники в классы? А так они еще и инлайнятся неплохо. В общем ООП головного мозга.

Свичи вместо параметризованных стратегий

Шта? Java головного мозга.

get_properties который заполняет проперти прямо в коде

Быдлокод и детектор автора-сишника.

Перегрузка операторов, там где можно обойтись вызовом метода

В джаву не завезли, вот и завидуете?

Уродливый do while (false) с куском ифа

Вкусовщина.

if (cond) ... вместо if (cond) { ... } (постоянно пропускает фигурные скобки, сволочь)

man coding style. В Qt тоже пропускают, и ничего.

Объявления, понамешанные с кодом

Не распарсил.

Чудные имена переменных типа color, color2
Чудные
color

А что не так?

Магические константы без имени типа 0xFFFFFF

Там, где это используется, типичный сишный код. Он всегда такой кривой.

В общем код на 3+. Кто же спорит. Только половина претензий сводится к тому, что автор сишник, но пытался в плюсы и не смог.

RazrFalcon ★★★★★
()
Ответ на: комментарий от stevejobs

Ох лол. Вы сначала с ТС разберитесь. Сишник - горе в семье.

RazrFalcon ★★★★★
()
Ответ на: комментарий от eao197

Рекомендую начать с чтения книги по паттернам проектирования GOF (чтобы понимать как писать код с использованием этих паттернов и не плодить захардкоженые свичи копипастой).

Потом Совершенный Код (жутко скучная и капитанская книжка c капитанскими мыслями на тему что после if должна всегда быть { ), но похоже для тебя будет полезна).

Ну и полистать что-нибудь типа C++ Core Guidelines за авторством Страуструпа и Саттера (для понимания почему TextSource должен быть классом - C.2 «Use class if the class has an invariant; use struct if the data members can vary independently»). Больше инфы такого рода есть здесь

Тогда сможешь зайти к своему техруку (мыло которого ты зассал огласить) и попросить принять тебя на должность младшего помощника джуниор кодера по причине того, что ты наконец-то смог осилить C++ в объеме, необходимом для джава-программиста

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

Тогда сможешь зайти к своему техруку (мыло которого ты зассал огласить)

Мальчик, ты совсем тупой? Если ты хочешь обратиться к моему руководителю, ты может это сделать прямо здесь обращаясь ко мне, ибо руководителей надо мной уже давно нет.

Ну а свои познания в архитектуре и стиле кодирования в C++ ты уже достаточно продемонстрировал. Садись, два.

eao197 ★★★★★
()
Ответ на: комментарий от stevejobs

Завтра ищешь в интернете книжку Categories for the Working Mathematician. Похуй если ничего не поймешь. Затем идешь на haskell.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь определения языка и стандартных библиотек - The Haskell 2010 Report, чтобы от зубов отскакивало. Когда напишешь свой первый катаморфизм, по пути изучив теорию типов на уровне TaPL-а, скачиваешь и изучаешь любую хаскеллевскую библиотеку с первоклассными функторами и морфизмами, рекомендую category-extras или recursion-schemes. Как переделаешь стандартную прелюдию, чтобы по крайней мере все рекурсивные схемы были выражены через комонады, можешь идти дальше - тебя ждет увлекательный мир теории категорий. Катаморфизмы, параморфизмы, зигоморфизмы, хистоморфизмы, препроморфизмы, анаморфизмы, апоморфизмы, футуморфизмы, постпроморфизмы, хиломорфизмы, крономорфизмы, синкрономорфизмы, экзоморфизмы, метаморфизмы, динаморфизмы алгебра и коалгебра Калвина Элгота наконец. Успех хиккующих выблядков / просто быдлокодеров типа рейфага или сисярп/джава-девелоперов, которые работают в Люксофте не будет тебя волновать и уже через пол года ты будешь получать такие гранты, что любой профессор будет теч при одном упоминании списка твоих публикаций.

anonymous
()
Ответ на: комментарий от stevejobs

Учитывая количество тупняка в толксах вас вообще сложно серьезно воспринимать.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

Идти на день рождения надо, я уже собрался и делать нечего, поэтому пофлужу немного :)

Кому должен?

Чистому коду должен

Если бы не засилье слова «бизнес»

«бизнес» - это прошло от разделения на типовые слои. Иногда перебарщиваю :( Уровень представления, бизнес-логики, модельных сущностей, системы хранения, итп. Ну, в зависимости от типа архитектуры

когда смотришь на приложение в первый раз, надо понять архитектурную карту. Какая используется архитектура, какие классы к какому уровню относятся, как организованы уровни, какие связи установлены итп

поэтому например, ясно видно что там есть уровень интерфейсов до вызывающего апи (интероп до ядра написанного как раз на Си), а есть уровень бизнес-логики самого плагина. Есть модельная сущность «шрифт», есть модельная сущность «источник текста» (так собственно называется сам плагин), есть бизнес-логика отрисовки.

И автор соответственно должен показать по коду, и описать словами: глядите, вот здесь я интероплюсь с вызывающим апи на Си, и поскольку это Си то это внеклассовая функция. Но при этом плагин у меня ТекстСорс, а основное свойство текста - шрифт, и значит модели у меня организованы вот так

смотря на этот код я не вижу с первого взгляда его карту, всё намешано как попало. Свалка.

Если бы это было написано на Java, я бы отправил такой пул-риквест на доработку. Все сущности надо раскидать по разным файлам. Одна сущность в предметной области - одна сущность в коде. Должна быть ясно понятна организация, связи явным способом обозначены.

На самом деле, благодаря вам, я уже столько раз за сегодня смотрел на этот файл, что сейчас могу пойти и переписать всё это правильно. Может так и сделаю, если вернусь с днюхи не нажратный в говно

В данном случае, разбиение на подфункции только увеличит объем кода.
Вкусовщина. Разбиение только увеличит код.

так понятно что почти любое улучшение архитектуры в ООП языках увеличивает количество кода. Это цена за получение чистого, понятного кому угодно, хорошо модифицируемого («сделать сто фич до вечера»), поддерживаемого веками кода

Свичи вместо параметризованных стратегий
Шта? Java головного мозга.

GOF между прочим именно про C++ книжку написали, не про джаву :)))

Отсутствие неймспейса
Отсутствие главного класса
Шта? Какого? Зачем?

Нужно четкое деление по зонам видимости, чтобы предотвратить клеши имен и упаси боже - клеши способов использования, при разрастании кода. Пока у тебя код из трех строчек - всё в порядке, как только там будет сто тысяч классов, с таким подходом - тебе капец. Чтобы прожить как можно дольше, нужна специальная дисциплина кодирования. Любой кусок кода должен иметь свой четко понятный «адрес» внутри кода, ни с чем не пересекающийся

Утилиты должны быть в классе Utils
Кому должны?

Мы живем в C++, значит в мире ООП. А utils-методы - это по хорошему ФП, но нормального ФП организовать тоже не получится - слишком много кода выйдет. Потому в ООП языках есть стандартный стиль кодирования, когда все эти утилиты заключаются в Utils классы (или отдельные неймспейсы, или еще что-то такое).

Перегрузка операторов, там где можно обойтись вызовом метода
В джаву не завезли, вот и завидуете?

В скалу завезли. Всё равно пользуемся как можно меньше

Уродливый do while (false) с куском ифа
Вкусовщина.

Говномакрос-утилита в самом начале файла - вкусовщина? Фига се у тебя вкусы

man coding style. В Qt тоже пропускают, и ничего.

идиоты, сэр

Чудные
color
А что не так?

Не color, а color1, color2. А потом будут еще color3 и color4. Таким макаром можно совсем долбануться и называть переменны a,b,c,d. Ну, чтобы совсем уже никто не догадался, что всё это означает

Там, где это используется, типичный сишный код. Он всегда такой кривой.

Думаешь, на си нельзя хорошо красиво писать?

stevejobs ★★★★☆
()
Последнее исправление: stevejobs (всего исправлений: 1)
Ответ на: комментарий от stevejobs

так понятно что почти любое улучшение архитектуры в ООП

Проблема в том, что чем больше кода - тем сложнее его воспринимать. Каким бы логичным и правильным не был бы код: много кода - это много кода.

Ну и чрезмерное ООП/наследование приведёт нас к obj.some.other.substruct.value. Что ни есть хорошо в общем случает.

Нужно четкое деление по зонам видимости

Если вы про то, что каждый файл в Java/C# начинается с нового namespace, то в плюсах такого нет. То есть так можно делать, но никто не делает. Деталей не знаю.

Мы живем в C++, значит в мире ООП.

Вообще-то C++ мультипарадигмальный.

Потому в ООП языках есть стандартный стиль кодирования, когда все эти утилиты заключаются в Utils классы

Только если мы их используем где-то еще. А если они нужны только в одном файле - лучше сделать их static inline и не мучатся. Что обычно и делают.

Говномакрос-утилита в самом начале файла - вкусовщина?

Какой макрос? Я код не смотрел.

идиоты, сэр

Авторы Qt - идиоты. Так и запишем.

Думаешь, на си нельзя хорошо красиво писать?

Да. Как вы не видели хорошего кода в плюсах, так и я не видел хорошего кода на Си. Сейчас изучаю сорцы cairo и librsvg - там ад космический. glib, gtk даже вспоминать не хочу. Плюсы, по сравниванию с этим ужасом, просто верх совершенства.

Продолжая логику, можно предположить, что у вас от Си кода вообще инфаркт хватит.

RazrFalcon ★★★★★
()
Ответ на: комментарий от mix_mix

Ну проекты такого уровня на любом языке хорошо написаны.

RazrFalcon ★★★★★
()
Ответ на: комментарий от mix_mix

Во-первых, посмотрите список пунктов, которые я обозначил как личные фобии и мании stevejobs-а. Там вкусовщина и привычка смотреть на C++ с позиции Java-разработчика. Ну, например:

- Полное отсутствие ООП
- Всё засунуто в один файл, у которого даже нет заголовка
- Утилиты должны быть в классе Utils, или если это макросы - в отдельном файле Utils, никак не рядом с бизнес-кодом
- Отсутствие неймспейса
- Отсутствие главного класса
- Свичи вместо параметризованных стратегий (и соответствнно копипаст)
- Перегрузка операторов, там где можно обойтись вызовом метода

C++ мультипарадигменный язык. В нем не обязательно использовать ООП, не обязательно загонять утилитарный код в класс Utils, не обязательно выносить утилитарный код (тем более который не выходит за рамки одной единицы трансляции) в заголовочные файлы, не нужны неймспейсы для утилит вмещающихся в один единственный файл, не нужны главные классы (что бы под этим не подразумевалось), switch-и в сочетании с enum class-ами вполне себе адекватная замена классам-стратегиям (тем более, что C++ные компиляторы проверяют достаточность кейсов в случае с enum class-ами), перегрузка операторов в C++ — это нормально и естественно (так же естественно, как и вызов функции, коим он и является)...

И т.д. и т.п.

Те же пункты, по которым у меня самого есть претензии к данному коду (тот же класс TextSource, который и большой, и с торчащими наружу потрохами, та же копипаста, те же странные и незначащие имена, стремный подход к локализации и еще несколько пунктов) к фобиям и маниям стиви я не относил.

Так что к чему, собственно, претензии?

Во-вторых, RazrFalcon выше по остальным пунктам отличный разбор уже проделал.

eao197 ★★★★★
()
Ответ на: комментарий от mix_mix

Но к redis у джобса тоже будут претензии, ибо: https://github.com/antirez/redis/blob/unstable/src/replication.c#L2202

Это конечно вкусовщина и исправляется через тот же clang-format, но всё же.

А вот от конфига совсем инфаркт хватит.

RazrFalcon ★★★★★
()
Ответ на: комментарий от Dron

Закрытый софт для мобилок, ты серьёзно?

Несколько миллиардов пользователей для тебя не серьёзно?

foror ★★★★★
()
Ответ на: комментарий от Deleted

Если надо c-style без ООП, то там ещё лямбды есть. Можно даже без привязки к glib

Athor ★★
()
Ответ на: комментарий от eao197

Из всего потока сознания только несколько пунктов имеет отношение к делу, все остальное какие-то персональные фобии и мании.

Там все пункты к делу. Впрочем я благодарен таким говнокодерам, которые даже не понимают насколько они говнокодеры - «Спасибо, поржал.». Я именно из-за таких как вы ушел из местной конторки и занялся собственными проектами, чему очень рад. Спасибо, говнокодеры )

foror ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.