- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
#include "property.hpp"
class person {
public:
person() = default;
~person() = default;
SETTER_PRIM(int, id);
SETTER_FLAG(bool, merried);
SETTER_ENUM(human, type);
SETTER_PTR(int, next);
SETTER_ARR(std::string, address, 3);
SETTER_OBJ_LR(std::string, name);
SETTER_OBJ_CLR(std::string, name);
SETTER_OBJ_RR(std::string, name);
GETTER_PRIM(int, id);
GETTER_FLAG(bool, merried);
GETTER_ENUM(human, type);
GETTER_OBJ_LR(std::string, name);
GETTER_OBJ_CLR(std::string, name);
GETTER_PTR(int, next);
GETTER_ARR(std::string, address);
private:
int id;
human type;
std::string name;
std::string address[5];
bool merried;
int* next;
};
guest6 26.04.2022 16:41 # +1
> int* next;
Это, я надеюс, указатель на объект Person? да? да?
>merried
а, понятно
Steve_Brown 26.04.2022 17:55 # +2
???
};
human type;
...подходит ко мне какой-то тип...
Fike 26.04.2022 22:29 # 0
guest6 26.04.2022 22:49 # 0
guest6 26.04.2022 22:51 # 0
ну, ты помнишь
Soul_re@ver 26.04.2022 22:54 # 0
guest6 26.04.2022 16:54 # 0
Soul_re@ver 26.04.2022 18:04 # 0
guest6 26.04.2022 18:12 # 0
поцы поддерживают сколько-то бряк железных, для всего остального есть муха цэцэ она же Int3
Steve_Brown 26.04.2022 20:28 # 0
guest6 26.04.2022 20:30 # 0
Вы джавист?
Steve_Brown 27.04.2022 10:31 # 0
guest6 27.04.2022 18:02 # 0
Steve_Brown 27.04.2022 19:16 # 0
guest6 27.04.2022 22:31 # 0
Кстати, Дйкстра просил передать, что кто пользутеся дебагером -- тот пидор
Soul_re@ver 27.04.2022 23:02 # 0
guest6 27.04.2022 23:19 # 0
Пиши логи
И дебагер будет не нужен
Боюсь что если к тебе придет старина Дейкстра, то ты охуеешь
Soul_re@ver 27.04.2022 23:33 # 0
А что мне делать с легаси, где с одной стороны поработал трёхзвёздочный сишник, с другой опытный энтерпрайзный копипастер, а с третьей устроили локальную войну поборники С-с-классами и ModernC++?
guest6 27.04.2022 23:37 # 0
на самом деле я всё прекрасно понимаю, я и сам часто не могу прорваться через дерьмо без дебагера. Но это всегда _плохой_ признак.
Если код нельзя понять без дебагера, значит это плохой код.
Однако большинство кода в этом мире -- плохое
Soul_re@ver 28.04.2022 01:07 # 0
Представь себе: производство. На этом производстве есть конь-тролер. У меня в калькуляторе скорее всего стоит более быстрый и сбольшим объёмом памяти. Но у него есть одно преимущество — если бы он стоял в Терминаторе, то погружение в расплавленную сталь ему бы ничего не сделал. Да и попытка Сары расколотить его молотком потерпела бы неудачу, даже если её бы не остановили. И это хорошо, потому что эксплуатируется он приблизительно в таких же условиях.
Задача этого конь-тролера — предупреждать, если расчетные параметры происходящих процессов не совпадают с реальными. Для этого он постоянно рассчитывает эти теоретические параметры на основании происходящих процессов.
Физическая модель этих процессов — 20 страниц математических формул.
А теперь представь себе расчеты физических моделей численными методами, оптимизированными конкретно под эту модель конь-тролера. И часть вычислений заменили грубыми приближёнными, потому что иначе собаку пнуть не успевали.
Вот как тут написать понятный код?
И тебе нужно понять, в чём проблема — в недостаточной точности приближённых вычислений? В реализации алгоритма? В самой модели?
guest6 28.04.2022 01:13 # 0
А ты уверен, что тут тебе поможет дебаг?
Soul_re@ver 28.04.2022 01:32 # 0
Это какой? Он способен уверенно генерировать код для железок, частота которых по-моему до мегагерца не дотягивает, и у которых память килобайтами меряется?
Там дикое битоёбство и экономия инструкций. Черная магия после которой 0x5f3759df кажется простым и понятным. Зато есть возможность полностью сдампить внутреннее состояние. Сиди и разбирайся, что происходило.
j123123 28.04.2022 08:54 # 0
...
> Физическая модель этих процессов — 20 страниц математических формул.
> А теперь представь себе расчеты физических моделей численными методами, оптимизированными конкретно под эту модель конь-тролера. И часть вычислений заменили грубыми приближёнными, потому что иначе собаку пнуть не успевали.
А нахуя непосредственно сам контроллер со всеми этмии физическими ма-те-ма-тическими вычислениями ставить в какие-то хардкорные условия? Можно ж где-то разместить жирный контроллер, который всю ма-те-ма-тику посчитает, отправит результат по какому-то там говноинтерфейсу в тупой контроллер, который нужными ножками подрыгает по команде чтоб какое-то там говно переключить
Soul_re@ver 28.04.2022 09:59 # 0
guest6 27.04.2022 23:43 # 0
Soul_re@ver 28.04.2022 00:56 # 0
guest6 28.04.2022 01:01 # 0
PPetuh это указатель на питуха. Так что PPetuh* вроде как и однозвёздочный.
Я вот недавно совсем две звезды видал, кажется в COMе
j123123 28.04.2022 09:01 # 0
А может это двойной указатель на "etuh"?
guest6 28.04.2022 09:11 # 0
guest6 28.04.2022 08:35 # 0
j123123 28.04.2022 08:51 # 0
Ну я могу предложить несколько вариантов, например
1) Переписать нахуй это говно
2) Заставить кого-то другого с этой хуйней пердолиться
3) Сменить место работы
guest6 28.04.2022 08:54 # +1
Кроме какого-то ебучего стартапа или контроллера.
guest6 28.04.2022 08:57 # 0
Kypumca 28.04.2022 04:31 # 0
guest6 28.04.2022 04:35 # 0
А вот дебажиться ему сложнее. Разве что через JTAG.. (я так думаю, но я не сварщик)
j123123 28.04.2022 08:48 # 0
Можно и по SWD. Можно в контроллер зашить специальную хуйню, которая бы позволяла прошивку отлаживать, ну например чтобы когда по UART прилетает байтик специальный, чтобы срабатывало прерывание и там бы сохранялся полностью стейт, и чтоб можно было ставить брейкпоинты, если можно писать в область памяти с инструкциями (т.е. вместо какой-то инструкции можно хуйнуть "goto инструкцию" на некоторое говно, которое остановит нормальное выполнение программы и напишет что-то по UART что вот типа этот брейкпоинт сработал), а потом можно продолжить, заменив эту "goto инструкцию" на то, что там было, и выполнить это. Т.е. технически можно и через UART отлаживать контроллеры, если память с инструкциями переписываемая.
j123123 28.04.2022 08:43 # 0
guest6 28.04.2022 08:51 # 0
j123123 28.04.2022 08:56 # 0
guest6 28.04.2022 09:09 # 0
j123123 28.04.2022 10:15 # 0
Нахуя тебе какая-то асинхронность перед падением? Вот допустим у тебя процесс в линуксе словил сигнал SIGSEGV или SIGBUS, SIGFPE, SIGILL (ту хуйню, которая приводит к аварийному завершению) и там ты назначил обработчик, который насрет в какой-то там пайп или файл некоторую хуйню через системный вызов write(). В чем проблема-то?
guest6 28.04.2022 10:32 # 0
j123123 28.04.2022 10:39 # 0
guest6 28.04.2022 10:45 # 0
j123123 28.04.2022 10:48 # 0
Ну вот пусть твоя программа срет логами в пайп, другой процесс через пайп читает эти логи, сжимает их гзипом и что-то там отправляет по таймеру или когда что-то там накопилось. Когда твой процесс дохнет, он в пайп срет хуйню о том, что он сдох по такой-то причине, другой процесс это получает, пайп закрывается и все заебись
guest6 28.04.2022 10:53 # 0
j123123 28.04.2022 11:09 # 0
Почему? Можно срать в один пайп асинхронно. Например, можешь нахуячить в памяти lock-free очередь, в нее напихивать адреса, в которых строка которую надо насрать в лог. Когда твоя программа простаивает, эту хуйню можно отправлять по пайпу
Что у тебя там тормозить будет?
guest6 28.04.2022 11:13 # 0
j123123 28.04.2022 11:14 # 0
Основной тред в обработчике сигнала высрет всю очередь в другой процесс через пайп, и потом уже крашнет всё
guest6 28.04.2022 11:26 # 0
guest6 28.04.2022 12:10 # 0
конечно жать логи надо в другом процессе
сама программа должна только логами срать
можно сделать как в евент логе в винде когда срется не текст а инт -- смещение в спец файле со всеми возможными сообщениями для данной программы
guest6 28.04.2022 09:11 # 0
j123123 28.04.2022 10:07 # 0
Какие-то у тебя странные контроллеры. GPIO хоть есть?
guest6 28.04.2022 22:01 # 0
guest6 28.04.2022 23:04 # 0
nyTuH_nugop 28.04.2022 10:49 # 0
Хоть бы #include "syslog.hph" написал, а не изобрел свой собственный лисапет...
А потом мы удивляемся, почему всякие китайские кунштюки управляются посредством немыслимого черезжопия, а простейшего SNMPv2 не поддерживают
Steve_Brown 28.04.2022 12:43 # 0
Придумать всякое можно... Ну да ладно, и без геттера обойдусь, одним сеттером.
kcalbCube 28.04.2022 12:56 # 0
Steve_Brown 26.04.2022 20:26 # 0
2. Ну разве что добавим два конструктора для удобства.
3. А, вот еще можно сделать метод, который автоматически заполняет нужный элемент в массиве address. Ну и при этом заодно меняет поле type, а то сейчас эта проверка трех местах написана.
4. А вот хорошо бы еще сделать, чтобы при заполнении поля type проверялся бы address.
5. ???????
6. Ой.
guest6 26.04.2022 20:30 # 0
Steve_Brown 27.04.2022 10:28 # 0
2. Профит.
Конечно, можно средствами IDE найти все обращения к полю (средство "поменять и смотреть где не компилируется") и заменить на геттер-сеттер.
В общем, дилемма - либо предусмотреть, либо не оверинженирить. Тут уж по интуиции.
guest6 27.04.2022 14:34 # −1
В C# такой проблемы нет: нужно публичное поле поменять на Property и перекомпилировать
Fike 26.04.2022 22:25 # +1
guest6 26.04.2022 22:52 # +1
Fike 26.04.2022 22:55 # 0
guest6 26.04.2022 23:07 # 0
да, часть очарования уйдет из джавы конечно, не нужно больше будет писать тонны бойлерплейта тупого
Fike 26.04.2022 23:12 # 0
guest6 27.04.2022 01:03 # 0
Я обожаю пафосный энтерпрайз, по настоящему пафосный: с SOAP, ESB, OLAP, и BMPL.
Я ненавижу лишь наколенное говно из сорока девяти классов DTO с миллионом полей каждый, писанных вручную
nyTuH_nugop 27.04.2022 02:31 # 0
Похоже на тост.
nyTuH_nugop 27.04.2022 02:46 # 0
https://gordonua.com/bulvar/news/luchshe-by-on-tyavkal-kak-payetochnyy-petuh-baskov-chem-vot-tak-vysralsya-efrosinina-vyskazalas-o-kirkorove-1605432.html
guest6 27.04.2022 15:15 # 0
когда упаковали навального и его навальнят, бедросыч радовался, и писал, что этот "берлинский пациент" сеет ненависть, и так ему и надо
когда укры схватили медведчука, киркоров стал верещать, что это преследование по политическим мотивам, и оно, дескать, недопустимо
nyTuH_nugop 27.04.2022 17:49 # 0
guest6 27.04.2022 18:02 # 0
кстати, давно не ел паюсной черной икры
nyTuH_nugop 28.04.2022 11:23 # 0
guest6 28.04.2022 23:12 # 0
Но мне кому-то нужно отдать поддержку мастдая (винда и WSL особенно). А никто брать не хочет
Что делать?
kcalbCube 04.05.2022 18:01 # 0