Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 13, 2019 12:32:01

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9727
Репутация: +  843  -
Профиль   Отправить e-mail  

На чем вы пишите высоконагруженные части системы: C++ или Cython?

Sanya28
Как юнит- тесты помогут запустить отладку двух- уровневой системы кода?
Они проконтролируют, что ошибок нет и отладка не нужна. Просто тот, кто долго сидит в отладчике в своём собственном коде, вызывает сомнение в компетентности, так как это большие затраты по времени и чаще всего впустую.



Отредактировано py.user.next (Ноя. 13, 2019 12:33:10)

Офлайн

#2 Ноя. 13, 2019 13:27:38

Sanya28
Зарегистрирован: 2019-11-10
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

На чем вы пишите высоконагруженные части системы: C++ или Cython?

py.user.next
Они проконтролируют, что ошибок нет и отладка не нужна. Просто тот, кто долго сидит в отладчике в своём собственном коде, вызывает сомнение в компетентности, так как это большие затраты по времени и чаще всего впустую.

Это справедливо для “высокоуровневого” кода: как правило это создание объектов и вызов их методов. На С/С++ же как правило пишут низкоуровневые алгоритмы: непосредственно циклы обработки данных, которые могут быть очень сложными и ответ: “Не работает” не позволит идентифицировать и исправить ошибку.

Отредактировано Sanya28 (Ноя. 13, 2019 13:27:57)

Офлайн

#3 Ноя. 13, 2019 13:34:49

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9727
Репутация: +  843  -
Профиль   Отправить e-mail  

На чем вы пишите высоконагруженные части системы: C++ или Cython?

Sanya28
На С/С++ же как правило пишут низкоуровневые алгоритмы: непосредственно циклы обработки данных, которые могут быть очень сложными
Приведи конкретный пример такого кода, в котором необходимо сидеть в отладчике.



Офлайн

#4 Ноя. 13, 2019 14:30:53

Sanya28
Зарегистрирован: 2019-11-10
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

На чем вы пишите высоконагруженные части системы: C++ или Cython?

py.user.next
Приведи конкретный пример такого кода, в котором необходимо сидеть в отладчике.

А зачем давать готовый ответ?

Пожалуйста, напишите функцию, которая преобразует значение лежащее по указателю char* p в число. Причем следом за числом могут быть нечисловые символы и они должны быть отброшены. Например:
char *p = "134,923&srk"
char *p = "-15,2fsd"

Будет интересно посмотреть на ваш профессионализм.

Отредактировано Sanya28 (Ноя. 13, 2019 14:32:11)

Офлайн

#5 Ноя. 13, 2019 15:01:47

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9727
Репутация: +  843  -
Профиль   Отправить e-mail  

На чем вы пишите высоконагруженные части системы: C++ или Cython?

Sanya28
char *p = "134,923&srk"
Вообще-то строковой литерал нельзя в указатель на char сохранять. Это сразу тебя выдаёт с потрохами. Там ещё точка с запятой должна быть в конце оператора, так как она является частью оператора, а не разделителем, как в Паскале.

Sanya28
Пожалуйста, напишите функцию, которая преобразует значение лежащее по указателю char* p в число.
Для начала нужно написать юнит-тест. Ты знаешь, как писать юнит-тесты для кода на C? Конечно же нет! Знал бы, не сидел бы в отладчике.

И вот когда юнит-тест готов и проверяет эту функцию, тогда и можно писать её содержимое.

Внутри функции:
1. Прими указатель на строку.
2. Скопируй строку во временный массив.
3. Замени во временном массиве первую запятую на точку.
4. Прочитай число из строки в выходной массив с помощью функций sscanf() и sprintf().
5. Верни из функции указатель на выходной массив.

После этого у тебя будет на выходе массив с очищенным числом. Вызов функции можно вложить в вызов функции atof(). Также можно возвращать не указатель на полученный массив, а целое число - код ошибки. Если преобразование не удалось, код ошибки может показать, что именно не удалось сделать в процессе преобразования.

И всё это проверяется юнит-тестами. Ты ни разу не заходишь в отладчик.



Отредактировано py.user.next (Ноя. 14, 2019 01:54:14)

Офлайн

#6 Ноя. 13, 2019 15:29:40

Sanya28
Зарегистрирован: 2019-11-10
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

На чем вы пишите высоконагруженные части системы: C++ или Cython?

py.user.next, я жду от вас код.

Отредактировано Sanya28 (Ноя. 13, 2019 15:51:23)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version