Oct 18, 2017 15:27
По следам внесения небольшого кода в большой проект и попыток создания библиотеки.
Современный C++, судя по всему, вполне позволяет ограничить себя типами так, чтобы было трудно совершить ошибку, включая ошибку распределения памяти.
Большое неудобство, однако, составляет отсутствие подсказок компилятора в сообщении об ошибке. Haskell, когда встречает неизвестный символ, предлагает на выбор несколько похожих, сообщая их типы. gcc - нет.
И если в случае Питона такая подсказка это нарушение безопасности (вывод исключения может попасться на глаза плохому человеку), то для компилируемых языков желательно бы получать подсказки.
Я, похоже, совсем утратил способность к ООП программированию.
Я попытался сделать дизайн на основе классов, но сама необходимость думать о том, как правильно создавать объект, отнимает достаточно сил, чтобы не произвести вообще никакого кода.
Например, можно создавать объект-обработчик-файлов разбором "командной строки" (пары количество строк + массив строк). Но тогда возникают проблемы синтаксического разбора - должен ли я бросать исключение, могу ли я оставить объект не полностью или не корректно созданным, и тп.
Можно отделить разбор конфигурации от создания объекта. Тут уже фабрики синглтонов показываются на горизонте.
Можно создавать объект пустым и заполнять его. Однако некоторые варианты заполнения могут оставлять объект в несогласованном состоянии. Стоит ли это разрешать?
И тп.
Поэтому решил использовать C++, как Си-с-типами. Ну его.
c++,
языки программирования,
работа