Ну чо, с Браяном стусовался, обсудил мой пиарчик небольшой; надо теперь улучшить, по его запросам.
Изучал варианты решения вопроса race condition. Еще пока в постели лежал, на самом деле. Картинка сложилась, потом осталось только написать код. Что я и сделал, когда встал.
В час был скрам; меня после часа скрама типа хоть выноси да наливай. Осталось 699 дней. Впрочем, все по желанию; можно и сейчас, или как надоест. У меня есть план.
Ладно. На скраме Праб задвинул, что он тоже багу чинит, race condition. Я потом поинтересовался, как он ее чинит. Он ее чинит так: если вставка данных не идет, потому что те данные, на которые ссылаемся, еще не найдены в базе (ACID! fucking ACID!), то он делает две вещи: а) вставляет эти данные повторно; б) после этого отменяет транзакцию. Ну... пусть ему архитекторы судьи. Кэролин уже написала ему, мол, добавь тестов. Окей, окей. Смешно. Но он сказал, что вставлять в код пока этого не будет.
Ха, код. Майкл пишет, мол, вставили твой код в релиз - а там тесты не идут. Ну ребята. Они апдейтнули тест, но не апдейтнули код. Объяснять сложно, как же так - тест свежий, а на старом коде он рушится. Плохой код. Плохой тест. Ну, правда, Майкл как-то догадался "починить" мой код - смержив свежую версию класса Clock.
Я свою
А, ну и под конец дня послал Браяну пофиксеный пиар, и ему же с Каролин пиар, где я мой Retry использую для расшивки race condition. Нормально.
Изучал варианты решения вопроса race condition. Еще пока в постели лежал, на самом деле. Картинка сложилась, потом осталось только написать код. Что я и сделал, когда встал.
В час был скрам; меня после часа скрама типа хоть выноси да наливай. Осталось 699 дней. Впрочем, все по желанию; можно и сейчас, или как надоест. У меня есть план.
Ладно. На скраме Праб задвинул, что он тоже багу чинит, race condition. Я потом поинтересовался, как он ее чинит. Он ее чинит так: если вставка данных не идет, потому что те данные, на которые ссылаемся, еще не найдены в базе (ACID! fucking ACID!), то он делает две вещи: а) вставляет эти данные повторно; б) после этого отменяет транзакцию. Ну... пусть ему архитекторы судьи. Кэролин уже написала ему, мол, добавь тестов. Окей, окей. Смешно. Но он сказал, что вставлять в код пока этого не будет.
Ха, код. Майкл пишет, мол, вставили твой код в релиз - а там тесты не идут. Ну ребята. Они апдейтнули тест, но не апдейтнули код. Объяснять сложно, как же так - тест свежий, а на старом коде он рушится. Плохой код. Плохой тест. Ну, правда, Майкл как-то догадался "починить" мой код - смержив свежую версию класса Clock.
Я свою
Retry
уже навалял, тесты прошли; теперь добавлю юзкейс, а потом уже буду усложнять. Надо будет усложнять, конечно. Потому что на самом деле в нашем языке программирования delay нету, и вообще ничего похожего нету, типа таймера или чо. Есть cron job. Ну и вот. Посмотрим.А, ну и под конец дня послал Браяну пофиксеный пиар, и ему же с Каролин пиар, где я мой Retry использую для расшивки race condition. Нормально.