Вести с полей
Привет.
Про баги
Меня иногда посещает мысль — вместо прогона одних и тех же тестов в течении стольких лет, надо покупать лотерейные билеты и вписывать один и тот же набор цифр. В новостях иногда проскакивает, что такая схема работает.
Неделю назад, утром в субботу, разблокировал компьютер и узрел окно с ошибкой в тестах. При тестировании отладочной 32-битной сборки сработал assert.
Я так удивился, что сразу начал делать screenshot-ы этого чуда и делать дампы памяти процесса.
Потом осторожно подключился отладчиком и стал изучать проблемную память:
И только потом решил внимательно посмотреть на сам assert 🙂
CHECK_READ_PTR(_v,sizeof(_s)); // <--- вот оно. switch(_t) { case dbtype__i2: { typedef dbvalue_i2 xtype; assert(_s==sizeof(xtype));
Понятно, вместо того чтобы использовать значение переменной _s, я зачем-то использовал размер этой переменной.
Этой забагованной проверке не меньше 10 лет. А то и все 15.
Забавно.
Провайдер пришлось пересобирать и заново запускать процедуру релизного тестирования.
Личные кабинеты клиентов
В личных кабинетах добавлена возможность продления лицензий (с 20% скидкой) через PayProGlobal.
Потребовалось «серьезно» доработать возможности нашей простенькой CRM системы, написанной в 2008 году.
Очень увлекательное занятие. Я уже не помню когда в последний раз при программировании так отключался от реальности.
Правда, снова захотелось выругаться — «Рома (Пиминов), блин, надо было в основу базы клиентов ложить нормальное ядро». И снова вспоминаю, что нормальное ядро требует нормального сервера с нормальной поддержкой PHP. Сейчас бы, лично я, взял бы под это дело PG. А в 2008 году все было по другому. Поэтому такая база и MySQL. Ладно, время еще есть — переедем. Когда-нибудь 🙂