Serguey Zefirov (thesz) wrote,
Serguey Zefirov
thesz

Category:

Ещё про C++ и моё к нему отношение.

По следам внесения небольшого кода в большой проект и попыток создания библиотеки.

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

Большое неудобство, однако, составляет отсутствие подсказок компилятора в сообщении об ошибке. Haskell, когда встречает неизвестный символ, предлагает на выбор несколько похожих, сообщая их типы. gcc - нет.

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

Я, похоже, совсем утратил способность к ООП программированию.

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

Например, можно создавать объект-обработчик-файлов разбором "командной строки" (пары количество строк + массив строк). Но тогда возникают проблемы синтаксического разбора - должен ли я бросать исключение, могу ли я оставить объект не полностью или не корректно созданным, и тп.

Можно отделить разбор конфигурации от создания объекта. Тут уже фабрики синглтонов показываются на горизонте.

Можно создавать объект пустым и заполнять его. Однако некоторые варианты заполнения могут оставлять объект в несогласованном состоянии. Стоит ли это разрешать?

И тп.

Поэтому решил использовать C++, как Си-с-типами. Ну его.
Tags: c++, работа, языки программирования
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 66 comments