Serguey Zefirov (thesz) wrote,
Serguey Zefirov
thesz

Category:

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

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

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

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

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

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

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

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

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

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

И тп.

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

  • Думал, будет 6. А получилось 7

    Жим лежа гантелей 50 кг - 7 раз. На один раз больше давнишнего. Вешу я сейчас на 6 или 8 кило меньше. Со следующей недели попробую потренировать…

  • Ура!

    Я победил в этой маленькой битве. Описание команд MIPS (не полиморфное) успешно грузится. Я поменял направление хранения цифр с "старшие знаки…

  • Ура!

    Сегодня наш интегрированная среда ко-разработки программ и железа запустила симуляцию первой модели железки. Ну, и грохнулась, конечно же, во время…

  • 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

  • Думал, будет 6. А получилось 7

    Жим лежа гантелей 50 кг - 7 раз. На один раз больше давнишнего. Вешу я сейчас на 6 или 8 кило меньше. Со следующей недели попробую потренировать…

  • Ура!

    Я победил в этой маленькой битве. Описание команд MIPS (не полиморфное) успешно грузится. Я поменял направление хранения цифр с "старшие знаки…

  • Ура!

    Сегодня наш интегрированная среда ко-разработки программ и железа запустила симуляцию первой модели железки. Ну, и грохнулась, конечно же, во время…