<libreofficeru-tg>
<Kompilainenn> (небось опять как в тот раз, 7 раз его запускали , он невнятно ругался, а потом оказывается мы не дописали некоторое)
<JohnDoe_71Rus>
человеки издиваются над ботом
<libreofficeru-tg>
<Kompilainenn> хотя тут-то где проблема, я хз. Может итемы меню тоже пронумерованы блин
<mikekaganski>
написал в инфру
<tagezi>
ггг... понятно почесу никто не перименовывает файлы :)
<tagezi>
я разобрался, вроде
<libreofficeru-tg>
<Kompilainenn> порадуй нас
<tagezi>
вот, у меня собралось... пойду каску одену
<tagezi>
а если не стоит определителя, оно по умолчанию какое?
<mikekaganski>
а на первый вопрос - например, возможно, чо классы чаще всего используются вместе, так что практически везде пришлось бы совместно пихать одни и те же несколько хедеров
<mikekaganski>
а может, просто легаси
<mikekaganski>
а не стоит определителя какого?
<mikekaganski>
а, понял
<mikekaganski>
приват
<mikekaganski>
для класса умолчание - приват, для структуры паблик
<tagezi>
ну.. у нас везде хедеров одних и техже куча
<tagezi>
угу, понял
<mikekaganski>
в ЛО рассуждения типа "у нас же везде XYZ" не работают, ты же знаешь. У нас везде только одно: что у нас везде по-разному.
<tagezi>
у нас наследства от 90-х навалом.. понимать бы, где это по уму сделано, а где просто потому что тогда по другому нельзя было сделать
<mikekaganski>
tagezi: ну, ты показал вариант таких констант. Есть разные варианты, в т.ч. через enum и через статические члены базовых классов... нужно больше конкретики
<tagezi>
ну, я сейчас разношу классы по файлам, чтобы потом их аккуратно документировать
<tagezi>
и вот всплыло, что используются вот эти штуки
<mikekaganski>
это неоправданно раздувает интерфейс класса
<mikekaganski>
можно сделать отдельные хедеры, а реализацию оставить в одном
<mikekaganski>
или несколько cxx, но методы разных классов, использующие эти константы, поместить в один - ведь они, вероятно, занимаются связанными вещами
<mikekaganski>
нужно, чтобы детали реализации были скрыты как можно надёжнее
<tagezi>
угу, и по этому они отличаются на единицу в разных классах :)
<mikekaganski>
а вот это уже надо смотреть
<mikekaganski>
я же не разбирался, это ты этим занимаешься - поэтому, вероятно, знаешь тут больше меня
<tagezi>
да.. поэтому я разделю до конца уже этот бардак, а потом буду приводить в порядок. Заодно все анонимспейсы уберы, чтобы не мешались
<tagezi>
это конечно замечательное решение задачи не трогать заголовок, но выглядит всеравно убого
<mikekaganski>
а зачем убирать анонимспейсы? мы их наоборот используем вместо static
<tagezi>
эм..
<tagezi>
функция в безымянном пространстве
<tagezi>
зачем она нужна?
<mikekaganski>
чтобы она была локальной для единицы компиляции
<tagezi>
для чего?
<mikekaganski>
чтобы не замусоривала глобальное пространство имён
<tagezi>
а чем плохо иметь нормально реальзованый член класса?
<tagezi>
так можно всё приватное сталкнуть в безымянное пространство
<libreofficeru-tg>
<Kompilainenn> Смотри, потратишь время, а патч не примут
<mikekaganski>
я стараюсь максимально так и делать - скидывать всё, что не должно светиться, и при этом не использующее состояние объекта класса, в безымянные пространства в cxx
<tagezi>
эм
<tagezi>
а потом ищешь фунцию пол дня.. потому что она не светиться нигде :)
<tagezi>
там же хотя бы по поводу SbxObjectRef и SbxDimArrayRef должно вякать
<tagezi>
@Kompilainenn, ну, не примут врятли, скорее замучают замечаниями.. пока всё обратно не верну как было
<tagezi>
и страшно не когда не принимаю, а когда неделю промучался, а потом git checout master & git branch -D всюэтухрень
<libreofficeru-tg>
<Kompilainenn> Ты это вот, не выражайся тут
<libreofficeru-tg>
<Kompilainenn> branch -D, ишь ты
<mikekaganski>
это в заголовке каком-то?
<mikekaganski>
такое надо править, чтобы были все инклюды либо упреждающие объявления всех типов
<mikekaganski>
сравнительно недавно была статья от разрабов хрома о том, как они уменьшают время сборки, объединяя сборочные единицы. Собирают вместе сотни cxx и уменьшают время вдвое...
<libreofficeru-tg>
<Kompilainenn> собирают вместе сотни схх где?
<tagezi>
круто, тогда мой патч точно не примут
<tagezi>
я же разделяю... хотя пока, вроде сборка только сокращается по времени
<tagezi>
но разрабы хрома знают лучше
* tagezi
пошёл писать новаторское предложение сделать один огромный схх
<libreofficeru-tg>
<Kompilainenn> да, и собери его вместе
<tagezi>
mikekaganski: кстати, где-то читал, что гугл своим разрабам не рекомендует использовать пространства имен
<mikekaganski>
ну.... это было бы очень странно - но если можно, дай ссыль
<tagezi>
mikekaganski: так, я правильно понимаю, что ты предлогаешь не делить схх по классам, а так и оставить их в виде что-то_рандомное_и_всё_в_кучу.схх?
<mikekaganski>
нет, я делюсь тем, что вспомнил.
<mikekaganski>
Я за структуру, насколько это возможно, пока это не мешает коду (при этом время, требуемое на сборку - вторично; а вот если при этом придётся вытаскивать детали в интерфейс - это хуже)
<tagezi>
ну, я пока делю, чтобы докумнтировать, и хоть как-то понимать, что на что завязано.
<tagezi>
потому что сейчас, я вообще не понимаю, почему одни окна зачазаны на бэйсвиндоу, адругие на докингвиндоу
<tagezi>
а в интерфейсе эти окна перекрывают друг друга, хотя вроде выглядит пристойно... пока не трогаешь :)
<tagezi>
а вот как тронешь, так сразу всё летит в тартарары.. они неожидано начинают забывать, кто закрыт, а кто куда конектится
<libreofficeru-tg>
<Kompilainenn> костылизм
<libreofficeru-tg>
<Kompilainenn> наверное не стоит считать тех, кто писал код в 90-х такими уж гуру
<libreofficeru-tg>
<Kompilainenn> я имею ввиду всех поголовно
<mikekaganski>
в любом случае: даже если рефактор по файлам сам по себе не пройдёт, это полезно: 1. для ивоего понимания; 2. тем более если ты это оформишь в какую-то документацию
<mikekaganski>
иногда мы делаем фичебранчи для изменений, которые не пройдут, но помогают нам что-то проверить/протестировать/понять
<tagezi>
да, это хорошо.. но никогда тратишь единственных 2 выходных за месяц, на то что никому не нужно, а ты забудешь за месяц до следующих своих выходных :)
<tagezi>
у меня реально ощущение, что в ИДЕ слишком много не нужных классов