Здравствуйте, Homunculus, Вы писали:
H>Беда. Ну люблю ничего лишнего, когда можно без этого обойтись.
Ну смотря что считать лишним.
Комменты в коде хоть пишешь?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[9]: Встроенный порядок в C/C++ за счет h-файлов
Здравствуйте, CreatorCray, Вы писали:
H>>Беда. Ну люблю ничего лишнего, когда можно без этого обойтись. CC>Ну смотря что считать лишним. CC>Комменты в коде хоть пишешь?
Комментарии цветом отфильтровываются мозгом.
А вот куча приватных полей и функций, которые нифига не интерфейс класса, но забивают h файл — визуально отфильтровать сложнее
Но это все фигня по сравнниею с тем, что надо тратить время на обдумывание включений. Какой файл куда подключать, куда не надо. А уж ругать компилятора про множетсвенные включения с реализацией несмотря на #pragma once — ммм, что может быть лучше да, когда вместо того, чтоб делать работу — занимаешься этой херней.
S>h-файл при грамотном использовании можно рассматривать как некий контракт системы, краткая сводка что умеет тот или иной модуль без вникания в детали реализации. Ну круто же, что это придумали полвека назад.
Согласен — умные люди концепцию языка придумывали.
Здравствуйте, Shmj, Вы писали:
S>h-файл при грамотном использовании можно рассматривать как некий контракт системы, краткая сводка что умеет тот или иной модуль без вникания в детали реализации. Ну круто же, что это придумали полвека назад.
А при неграмотном — как источник мерзких ошибок линкера. Предпочитаю систему, делающую этот вид проблем невозможным.
Do you want to develop an app?
Re[2]: Встроенный порядок в C/C++ за счет h-файлов
Здравствуйте, LaptevVV, Вы писали:
S>>h-файл при грамотном использовании можно рассматривать как некий контракт системы, краткая сводка что умеет тот или иной модуль без вникания в детали реализации. Ну круто же, что это придумали полвека назад. LVV>В Си — это не модуль, а файл. LVV>Прошу не путать.
Сама по себе #include довольно рульная штука, как пример файлизма и текст-процессинга, хотя никто её в этом качестве не любит (
Мне даже в HTML не хватает, когда нужно, допустим, сделать футеры для локального хелпа — без сервера, скриптов, СМС и регистрации.
Do you want to develop an app?
Re[2]: Встроенный порядок в C/C++ за счет h-файлов
Здравствуйте, Shtole, Вы писали:
S>>h-файл при грамотном использовании можно рассматривать как некий контракт системы, краткая сводка что умеет тот или иной модуль без вникания в детали реализации. Ну круто же, что это придумали полвека назад.
S>А при неграмотном — как источник мерзких ошибок линкера.
Мерзкие ошибки линкера это сообщение типа _Z3abciv не найден, зато есть _Z3abchv? Ну так это вполне себе нормальная ошибка.
The God is real, unless declared integer.
Re[10]: Встроенный порядок в C/C++ за счет h-файлов
Здравствуйте, Homunculus, Вы писали:
H>>>Беда. Ну люблю ничего лишнего, когда можно без этого обойтись. CC>>Ну смотря что считать лишним. CC>>Комменты в коде хоть пишешь?
H>Комментарии цветом отфильтровываются мозгом. H>А вот куча приватных полей и функций, которые нифига не интерфейс класса, но забивают h файл — визуально отфильтровать сложнее
Вот потому их ставят в отдельную секцию и обычно рекомендовано после публичных функций.
А вообще это идея: попросить авторов основных IDE дать настройки красить в зависимости от области видимости.
А ещё свёртывать приватную часть.
H>Но это все фигня по сравнниею с тем, что надо тратить время на обдумывание включений. Какой файл куда подключать, куда не надо. А уж ругать компилятора про множетсвенные включения с реализацией несмотря на #pragma once — ммм, что может быть лучше да, когда вместо того, чтоб делать работу — занимаешься этой херней.
Это когда такое происходит?
The God is real, unless declared integer.
Re[12]: Встроенный порядок в C/C++ за счет h-файлов
Здравствуйте, Shmj, Вы писали:
KP>>Очень редко, ближе к почти никогда. Хотя в Vim даже ставить для этого ничего не надо, и za работает из коробки.
S>Но тут в чем фишка. Иногда нужно видеть все тела методов закрытыми (когда ты в режиме архитектора). А иногда нужно видеть сразу все открытым — и достает кликать по каждому методу, если они сокрыты по умолчанию.
У vim есть полный набор команд "свернуть всё", "развернуть всё"...
The God is real, unless declared integer.
Re[3]: Встроенный порядок в C/C++ за счет h-файлов
N>Мерзкие ошибки линкера это сообщение типа _Z3abciv не найден, зато есть _Z3abchv? Ну так это вполне себе нормальная ошибка.
Эт ерунда, мерзкие, это когда линковать либы нужно в правильном порядке и никак иначе. А пишет он об этом точно также, как и выше.
Кстати, я сильно удивляюсь, почему компиляторы уже мильон раз переписали, омтимизировали, а линкер всё тот же самый, по сути, что и 40 лет назад.
Re[6]: Встроенный порядок в C/C++ за счет h-файлов
Здравствуйте, Homunculus, Вы писали:
H>Здравствуйте, kaa.python, Вы писали:
KP>>Ладно, сколько времени ждать до того как придет понимание что это геморрой?
H>У всех по-разному, видимо. Кому-то видимо и в голову не приходит, что раздувание количества файлов в два раза и правка, например, названия и аргументов функции тоже в двух местах- не нужная трата времени.
Ну ok, пусть какая-нибудь Java и
public interface Moo {
int run(int);
}
public class Foo implements Moo {
@Override
int run(int);
}
а также Foo2, Foo3, Bar2, Bar3...
ты их все меняешь чтобы принимали и возвращали long — это тоже "в двух местах- не нужная трата времени"?
И таки спрошу — IDE с рефакторингом запретили решением ВЦСПС? (Да, я видел ветку, где вы обсуждаете IDE, но мне вывод таки непонятен.)
Здравствуйте, Homunculus, Вы писали:
H>Комментарии цветом отфильтровываются мозгом.
Нет уж, или крестик, или штаны. Цвет тебе тоже IDE дает, та самая, которая позволяет рефакторить, разом меняя сигнатуру метода не только в этих 2х файлах, но и во всех других местах, где этот метод используется.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[11]: Встроенный порядок в C/C++ за счет h-файлов
N>Вот потому их ставят в отдельную секцию и обычно рекомендовано после публичных функций.
В этой части я в какой-то степени с твоим оппонентом согласен. А еще в хидерах шаблоны с имплементацией по сути инлайновые функции...
было бы лучше, если бы при введении этого в С++ попытались бы продумать этот момент.
Например, чего стоят хидер-онли библиотеки. С одной стороны хороши, с другой стороны жуткая жуть.
Но это лажи С++, а не С. С во многих местах сильно продуманнее С++.
Re[3]: Встроенный порядок в C/C++ за счет h-файлов
Здравствуйте, netch80, Вы писали:
S>>>h-файл при грамотном использовании можно рассматривать как некий контракт системы, краткая сводка что умеет тот или иной модуль без вникания в детали реализации. Ну круто же, что это придумали полвека назад. S>>А при неграмотном — как источник мерзких ошибок линкера.
N>Мерзкие ошибки линкера это сообщение типа _Z3abciv не найден, зато есть _Z3abchv? Ну так это вполне себе нормальная ошибка.
Какой-то у вас еврейский линкер!
Я такого вообще не помню, помню два основных типа: 1) имплементация не найдена; 2) имплементация слишком много найдена.
Do you want to develop an app?
Re[12]: Встроенный порядок в C/C++ за счет h-файлов
Здравствуйте, Vzhyk2, Вы писали:
N>>Мерзкие ошибки линкера это сообщение типа _Z3abciv не найден, зато есть _Z3abchv? Ну так это вполне себе нормальная ошибка. V>Эт ерунда, мерзкие, это когда линковать либы нужно в правильном порядке и никак иначе. А пишет он об этом точно также, как и выше.
Это далеко не типовой случай и возникает в случае использования всяких платформенных извращений.
V>Кстати, я сильно удивляюсь, почему компиляторы уже мильон раз переписали, омтимизировали, а линкер всё тот же самый, по сути, что и 40 лет назад.
Далеко не такой же, естественно. Современные линкеры умеют, как минимум:
1) Объединять идентичные секции (например, случай генерации кода из шаблонов C++).
2) Обеспечивать динамическую подгрузку модулей (Unix и Windows — сильно по-разному).
3) Генерировать код переходников (для динамических вызовов, переходов, не укладывающихся в "короткие" команды процессора, и т.д.)
4) Отрабатывать приоритеты линковки (из каких источников что брать). Сюда же — отрабатывать области видимости отдельных символов.
5) Выполнять LTO оптимизацию, фактически вызывая рекомпиляцию отдельных частей.
И это я ещё не вспомнил специфику динамического (ран-тайм) линкера.
А с другой стороны, что по-вашему могло измениться при соблюдении рамок задачи "создать пригодное для запуска в машинных кодах"? Почему не сравнить с тем, что происходит в JVM или .NET машине, там ведь по факту исполняется такая же роль линкера, но на более высоком уровне?
The God is real, unless declared integer.
Re[4]: Встроенный порядок в C/C++ за счет h-файлов
Здравствуйте, Shtole, Вы писали:
S>Здравствуйте, netch80, Вы писали:
S>>>>h-файл при грамотном использовании можно рассматривать как некий контракт системы, краткая сводка что умеет тот или иной модуль без вникания в детали реализации. Ну круто же, что это придумали полвека назад. S>>>А при неграмотном — как источник мерзких ошибок линкера.
N>>Мерзкие ошибки линкера это сообщение типа _Z3abciv не найден, зато есть _Z3abchv? Ну так это вполне себе нормальная ошибка.
S>Какой-то у вас еврейский линкер!
Это Unix манглинг имён (хотя я наверняка налажал в суффиксах). Windows эквивалент будет выглядеть примерно как ??R?abc?i@i
S>Я такого вообще не помню, помню два основных типа: 1) имплементация не найдена; 2) имплементация слишком много найдена.
Ну так это как раз ошибки, которые очевидно, как править.
The God is real, unless declared integer.
Re[3]: Встроенный порядок в C/C++ за счет h-файлов
Здравствуйте, Shtole, Вы писали:
S>Мне даже в HTML не хватает, когда нужно, допустим, сделать футеры для локального хелпа — без сервера, скриптов, СМС и регистрации.
iframe — это то, что ты хочешь. Он тяжелый, но это вполне логично, если хочешь без СМС и регистрации.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[2]: Встроенный порядок в C/C++ за счет h-файлов