Re[3]: Исповедь C++ника
От: smeeld  
Дата: 23.12.20 11:57
Оценка:
Здравствуйте, vfedosov, Вы писали:

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


Последние пять лет с подачи межделмаша активно пилят софт для финансов на яве (пора всё-таки с cobol уходить). Вот где нагрузки, алгоритмика, ну и деньги.
Re[4]: Исповедь C++ника
От: landerhigh Пират  
Дата: 23.12.20 12:14
Оценка: +2
Здравствуйте, Dair, Вы писали:

L>> Зато tar обязательно присутствует вот прямо в каждом микроконтроллере, да.

D>Такая, норм задача для тестового

И какие тогда претензии к бусту? Тоже норм библиотека.
www.blinnov.com
Re[5]: Исповедь C++ника
От: Dair Россия  
Дата: 23.12.20 12:20
Оценка: :))) :)))
Здравствуйте, landerhigh, Вы писали:

L>И какие тогда претензии к бусту? Тоже норм библиотека.


Простите, я бустофоб.
Re[37]: Исповедь C++ника
От: Тёмчик Австралия жж
Дата: 23.12.20 12:35
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>>>Вообще-то с++ для программирования ПЛИСов используется с незапамятных времен.


SVZ>Ключевое слово CatapultC.

Компилятор из C/C++ в HDL, нагуглил. Но всё-таки imho это один из, и применение там специфическое. Были попытки заменить C++ на Clojure (для генерации HDL) например- а это куда интересней.


SVZ>Вообще-то это мы делаем — и научные работы, и алгоритмы, и код. Электродинамикой занимаемся.

Круто. Не видел вживую таких программистов- научных работников 2-в-одном.

SVZ>Я за "отдельных преставителей профессии" не отвечаю. У меня на собеседованиях проблем нет.

Тут есть отметившиеся

Прошу не принимать за всех.

Я в теме описал таких стереотипичных плюсников,, ну которые с пеной у рта готовы доказывать, что C++ круче всех, при этом не понимают разницу между хешом и хипом, а динамический массив считают вектором, мучаются с Qt, ну потому, что ничего кроме C++ ниасилили, и которых бомбит на чужие высокие оценки в тесте и задачи написать tar на доске.
Отредактировано 23.12.2020 12:55 Артём . Предыдущая версия .
Re[7]: Исповедь C++ника
От: B0FEE664  
Дата: 23.12.20 15:48
Оценка:
Здравствуйте, smeeld, Вы писали:

BFE>>Ну не все могут в C++. Это сложный язык, он не для всех. Вот кто не осилил, те и переписывает. Если вам подсунут язык, которого вы не знаете, то вы тоже перепишите. Люди не знают С++, вот и переписывают.


S>Да, как бы, наоборот. Все вокруг исключительно C++-ники. Один другого матёрее. Сидят в корпоративных чатах и соревнуются в пересказывании наизусть стандарта. Без шуток. В РФ вообще C++-ников как грязи. Вполне себе на уровне. Решение переписывать на другие ЯП спускают сверху архитекторы, в подавляющем большинстве случаев. Невозможно? Неизбежно.


Одно дело пересказывать правила стандарта, а другое дело уметь читать код.
Многие смогут прочитать и понять, например, это?:
#include <algorithm>
#include <functional>
#include <list>

class Button {

    public:
        typedef void (*OnPress)(Button *, void *closure);
    
    private:
        typedef std::pair<OnPress, void*> PressCallBack;
        std::list<PressCallBack> onPress;

        struct Notify:
        public std::binary_function<PressCallBack, Button*, void> {
            void operator()( PressCallBack& c, Button* b) const {
                (*c.first)(b, c.second);
            }
        };

        void NotifyAll(void){
            std::for_each(
                onPress.begin(), onPress.end(),
                std::bind2nd(Notify(), this)
            );
        }

    public:
        void AddOnButtonPress(OnPress f, void *c){
            onPress.push_back(PressCallBack(f,c));
        }

        void RemoveOnButtonPress(OnPress f, void *c){
            onPress.remove(PressCallBack(f,c));
        }
};



А что насчёт других языков — я не знаю, я сейчас переписываю код с C# на C++.
И каждый день — без права на ошибку...
Re[8]: Исповедь C++ника
От: Умака Кумакаки Ниоткуда  
Дата: 23.12.20 15:58
Оценка: +1
Здравствуйте, B0FEE664, Вы писали:

BFE>Многие смогут прочитать и понять, например, это?:


какой именно фрагмент кода вызвал непонимание? тайпдеф на обработчик события? Тривиальная реализация publish/subscribe? Или каррирование частичное применение? Код вообще прозрачный, я в детстве такой писал после пары лет изучения крестов. Учитывая то, что это C++98, на C++17 всё будет выглядеть гораздо лаконичней.
нормально делай — нормально будет
Отредактировано 23.12.2020 16:03 Умака Кумакаки . Предыдущая версия .
Re[8]: Исповедь C++ника
От: so5team https://stiffstream.com
Дата: 23.12.20 16:03
Оценка: +1
Здравствуйте, B0FEE664, Вы писали:

BFE>Многие смогут прочитать и понять, например, это?:


Сходу не понятно, какой смысл здесь использовать std::list, а не std::vector.
Re[8]: Исповедь C++ника
От: smeeld  
Дата: 23.12.20 16:23
Оценка:
Здравствуйте, B0FEE664, Вы писали:

Что именно тут по-вашему может вызвать затруднения? Указатели на функции? Лямбды и кастомные операторы? Сходу там достаточно простой C++

По мне, так сложным можно назвать, например, такое

template<>
    struct push_back_impl<mpl::string_tag>
    {
        template<typename Sequence, typename Value, bool B = (4==BOOST_MPL_MULTICHAR_LENGTH(Sequence::back_))>
        struct apply
        {
            BOOST_MPL_ASSERT_MSG(
                (BOOST_MPL_LIMIT_STRING_SIZE != mpl::size<Sequence>::type::value)
              , PUSH_BACK_FAILED_MPL_STRING_IS_FULL
              , (Sequence)
            );
            
            typedef
                typename mpl::push_back<
                    typename mpl::copy<
                        Sequence
                      , mpl::back_inserter<mpl::string<> >
                    >::type
                  , Value
                >::type
            type;
        };
Re[9]: Исповедь C++ника
От: B0FEE664  
Дата: 23.12.20 18:17
Оценка:
Здравствуйте, Умака Кумакаки, Вы писали:

BFE>>Многие смогут прочитать и понять, например, это?:

УК>какой именно фрагмент кода вызвал непонимание?

Не знаю. Это вот тут спрашивают.

УК>тайпдеф на обработчик события?

А зачем там передавать указатель на кнопку?

УК>Тривиальная реализация publish/subscribe?

Где там publish?

УК>Или каррирование частичное применение? Код вообще прозрачный, я в детстве такой писал после пары лет изучения крестов. Учитывая то, что это C++98, на C++17 всё будет выглядеть гораздо лаконичней.


Прозрачный? Это с void* код прозрачный? И что же скрывается за void*?
И каждый день — без права на ошибку...
Re[10]: Исповедь C++ника
От: smeeld  
Дата: 23.12.20 19:38
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>Прозрачный? Это с void* код прозрачный? И что же скрывается за void*?


Да что угодно. Ты как-будто на C не писал. И в этом его мощь. Если автор не знает, то там скрывается, то ему даже на Go писать нельзя (а то получит ошибку конвертации interface{]-а)
Re[10]: Исповедь C++ника
От: Умака Кумакаки Ниоткуда  
Дата: 23.12.20 19:57
Оценка:
Здравствуйте, B0FEE664, Вы писали:

УК>>тайпдеф на обработчик события?

BFE>А зачем там передавать указатель на кнопку?
чтобы в обработчике событий знать, от кого пришёл ивент

УК>>Тривиальная реализация publish/subscribe?

BFE>Где там publish?
функция NotifyAll это publish, AddOnButtonPress — subscribe, RemoveOnButtonPress — unsubscribe

УК>>Или каррирование частичное применение? Код вообще прозрачный, я в детстве такой писал после пары лет изучения крестов. Учитывая то, что это C++98, на C++17 всё будет выглядеть гораздо лаконичней.


BFE>Прозрачный? Это с void* код прозрачный? И что же скрывается за void*?

любой пользовательский контекст. Если честно, твои вопросы меня озадачивают, ты вообще сколько кода читал/писал за свою жизнь?
нормально делай — нормально будет
Re[9]: Исповедь C++ника
От: CreatorCray  
Дата: 23.12.20 22:04
Оценка:
Здравствуйте, smeeld, Вы писали:

S>По мне, так сложным можно назвать, например, такое

За такое надо бы тапком.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[3]: Исповедь C++ника
От: CreatorCray  
Дата: 23.12.20 22:04
Оценка:
Здравствуйте, landerhigh, Вы писали:

L>Инженер должен уметь применять готовые решения, а не городить велосипед на каждый чих, разве нет?

Инженер должен находить оптимальные решения а не "сводить задачу к предыдущей", дозабивая едва воткнутый гвоздь по шляпку.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[8]: Исповедь C++ника
От: Тёмчик Австралия жж
Дата: 23.12.20 22:06
Оценка: -2
Здравствуйте, B0FEE664, Вы писали:

BFE>>>Ну не все могут в C++.


  Пример говнокода
BFE>Многие смогут прочитать и понять, например, это?:
BFE>
BFE>#include <algorithm>
BFE>#include <functional>
BFE>#include <list>

BFE>class Button {

BFE>    public:
BFE>        typedef void (*OnPress)(Button *, void *closure);
    
BFE>    private:
BFE>        typedef std::pair<OnPress, void*> PressCallBack;
BFE>        std::list<PressCallBack> onPress;

BFE>        struct Notify:
BFE>        public std::binary_function<PressCallBack, Button*, void> {
BFE>            void operator()( PressCallBack& c, Button* b) const {
BFE>                (*c.first)(b, c.second);
BFE>            }
BFE>        };

BFE>        void NotifyAll(void){
BFE>            std::for_each(
BFE>                onPress.begin(), onPress.end(),
BFE>                std::bind2nd(Notify(), this)
BFE>            );
BFE>        }

BFE>    public:
BFE>        void AddOnButtonPress(OnPress f, void *c){
BFE>            onPress.push_back(PressCallBack(f,c));
BFE>        }

BFE>        void RemoveOnButtonPress(OnPress f, void *c){
BFE>            onPress.remove(PressCallBack(f,c));
BFE>        }
BFE>};
BFE>


http://reactivex.io/RxCpp/.

BFE>А что насчёт других языков — я не знаю, я сейчас переписываю код с C# на C++.

http://lurkmore.to/%D0%9C%D1%8B%D1%88%D0%B8_%D0%BF%D0%BB%D0%B0%D0%BA%D0%B0%D0%BB%D0%B8,_%D0%BA%D0%BE%D0%BB%D0%BE%D0%BB%D0%B8%D1%81%D1%8C%E2%80%A6
Re[4]: Исповедь C++ника
От: sergey2b ЮАР  
Дата: 23.12.20 22:33
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Здравствуйте, landerhigh, Вы писали:


L>>Инженер должен уметь применять готовые решения, а не городить велосипед на каждый чих, разве нет?

CC>Инженер должен находить оптимальные решения а не "сводить задачу к предыдущей", дозабивая едва воткнутый гвоздь по шляпку.


те использовать http://libarchive.org/ или ZipArchive на собеседовании считалось бы норм
мне примерно в 93 давали на соебседование написать zip and unzip как я понял они хотели посмотреть не уменее использовать чужие библиотеки
Re[9]: Исповедь C++ника
От: Lexey Россия  
Дата: 23.12.20 22:41
Оценка: +1
Здравствуйте, Тёмчик, Вы писали:

Тё>Пример говнокода


Это не говнокод. Это всего лишь код, написанный до появления более современных стандартов C++.

Тё>http://reactivex.io/RxCpp/.


И каким это тут боком? Из пушки по воробьям стрелять будем?

Тё>http://lurkmore.to/%D0%9C%D1%8B%D1%88%D0%B8_%D0%BF%D0%BB%D0%B0%D0%BA%D0%B0%D0%BB%D0%B8,_%D0%BA%D0%BE%D0%BB%D0%BE%D0%BB%D0%B8%D1%81%D1%8C%E2%80%A6


Угу, приятного аппетита.
"Будь достоин победы" (c) 8th Wizard's rule.
Re[10]: Исповедь C++ника
От: Тёмчик Австралия жж
Дата: 23.12.20 22:45
Оценка:
Здравствуйте, Lexey, Вы писали:

L>Это не говнокод. Это всего лишь код, написанный до появления более современных стандартов C++.


Тё>>http://reactivex.io/RxCpp/.


L>И каким это тут боком? Из пушки по воробьям стрелять будем?


Почитай, узнаешь много нового. Я ж говорил- застряли в развитии в 1995г.

Тё>>http://lurkmore.to/%D0%9C%D1%8B%D1%88%D0%B8_%D0%BF%D0%BB%D0%B0%D0%BA%D0%B0%D0%BB%D0%B8,_%D0%BA%D0%BE%D0%BB%D0%BE%D0%BB%D0%B8%D1%81%D1%8C%E2%80%A6


L>Угу, приятного аппетита.

Даже когда я писал на C++, такое говнище не делал.
Re[5]: Исповедь C++ника
От: Тёмчик Австралия жж
Дата: 23.12.20 22:52
Оценка:
Здравствуйте, sergey2b, Вы писали:

S>мне примерно в 93 давали на соебседование написать zip and unzip как я понял они хотели посмотреть не уменее использовать чужие библиотеки

Zip /unzip всё-таки достаточно сложный алгоритм, чтобы ожидать его понимания сразу за 10 минут кандидатом (разобраться с LZ*). Но tar/untar- это ж почитать описание формата заголовка, и всё. Склеить входные файлы и прилепить заголовок.

Physically, an archive consists of a series of file entries terminated by an end-of-archive entry, which consists of two 512 blocks of zero bytes. A file entry usually describes one of the files in the archive (an archive member), and consists of a file header and the contents of the file. File headers contain file names and statistics, checksum information which tar uses to detect file corruption, and information about file types.

Отредактировано 23.12.2020 23:12 Артём . Предыдущая версия .
Re[11]: Исповедь C++ника
От: Lexey Россия  
Дата: 23.12.20 23:13
Оценка: +1
Здравствуйте, Тёмчик, Вы писали:

Тё>Почитай, узнаешь много нового. Я ж говорил- застряли в развитии в 1995г.


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

Тё>Даже когда я писал на C++, такое говнище не делал.


Твои высказывания говорят в пользу обратного.
"Будь достоин победы" (c) 8th Wizard's rule.
Re[12]: Исповедь C++ника
От: Тёмчик Австралия жж
Дата: 24.12.20 00:37
Оценка: -2 :)
Здравствуйте, Lexey, Вы писали:

Тё>>Почитай, узнаешь много нового. Я ж говорил- застряли в развитии в 1995г.

L>Спасибо, но мне ехать, а не шашечки. Если мне понадобиться асинхронная обработка событий, то подходящие инструменты для нее я найду и без твоей помощи.

Ну вот, а всё "индусокод". "руссокод"
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.