Помогите обосновать некоторые проблемы и бонусы по их решению
От: пффф  
Дата: 06.05.23 19:14
Оценка:
Привет!

1) #include с угловыми скобками для своего барахла. Я привык так никогда не делать, давным давно, и уже и не соображу, чем плохо. Ну и эмоции, переполняющие при виде всего этого, мешают

2) #include без путей. Вот везде в сорцах инклуды практически везде без путей — чисто имя файла без всего вот такого "somelib/impl/helpers/bla-bla-helper.h", а тупо #include "bla-bla-helper.h" или даже <bla-bla-helper.h>, но компилятору зато подсовываются все всевозможные пути поиска инклудов. Есть аргумент за то, чтобы ничего не менять — всё же собирается и работает. Но это какое-то гавно

3) порядок инклудов. Ведущие собаководы рекомендуют размещать "" перед <> и вообще располагать инклюды по мере специализации — более частные первыми — чтобы ловить ошибки, когда где-то чего-то не хватает, каждый хидер должен быть самодостаточным и всё такое.
Но у некоторых собаководов я встречал рекомендацию сортировать инклуды не только по "" и <>, но и по алфавиту, эта рекомендация несколько конфликтует с рекомендацией по ордеру по уровню специализации. Что думаете?

4) проект на CMake. Я бы понял, если бы кроссплатформа. Но наша часть чисто виндовая. Генерация с CMake'ом полчаса-час, а нафуа? Полчаса — это ещё без сборки. Потом на сборочном серваке собирается при помощи NMake+JOM, а на девелоперских машинах чтобы в студии поотлаживаться — отдельно надо генерить студийные проекты, и этого нет в репе, каждый извращается как умеет. Я бы перевел бы всю систему сборки чисто под MSVC/MSBuild, там не так страшно, как кажется, если не использовать автоматом генерённые MSVC-проекты, а руками править ихний xml, и быть в курсе, что там тоже есть инклуды. Я давно так живу, и это пиздаточень удобно. За недельку другую я бы всё сделал бы на MSVC/MSBuild зашибись без говна CMake'а. По этому пункту в принципе я и сам обоснований накидаю, но может кто что-то новое скажет

Такие дела
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.