madf: (Default)
[personal profile] madf
Тут дехто вважає що я зануда, придовбуюсь до дрібниць і все таке.
Да, зануда. Да, придовбуюсь. Бо мені дуже неприємно отримувати багрепорти про Segmentation fault. Ні по пошті, ні в реальності, ні по телефону. І мені надзвичайно неприємно "червоніти" перед людьми яких я дуже поважаю!
Ладно, слухайте байку.
Пару років тому (ого, вже майже 2 роки пройшло) я домовився з одним студентом що він буде допомагати мені по проектам за певні гроші. "О!", думав я тоді, "Клас! Тепер справа піде!". Бо свого часу вже не вистачало тягнути усе.
Звісно, спочатку я дуже пильнував, детально переглядав кожний коміт, слідкував щоб було витримано стиль коду і не допускав тупих багів. Потім, через деякий час, я побачив що студент став писати більш-менш пристойний код і пильнував уже не так сильно (бо який же тоді сенс наймати когось писати код щоб потім самому "просіювати" кожний його рядок). Перевіряв виконання тікетів ну і іноді рекомендував як зробити краще. По термінам виконання задач не сильно "звєрствував" - давав 1-2 тижні. І наче все йшло непогано, проект просувався, я встигав займатись іншими справами. Єдине що мені з часом перестало подобатись - з’явилось відчуття що студент все більше став затягувати виконання задач щоб наприкінці місяця швиденько їх позакривати.
Прийшов час показувати нові фічі замовнику. Тим паче я розрекламував що тепер софтину можна буде запустити на маках від чого радість замовника не мала меж. Як я вже писав раніше, на маках все завелось буквально з першої компіляції. Ну так, з косметичними правками. Я перевірив основний функціонал, зібрав dmg, інсталлятор для вінди і віддав замовнику на тестування.
А сьогодні отримав по телефону SIGSEGV. Надзвичайно приємно. При тому що мак уже пора віддавати.
Ну по симптомам я уже зрозумів де там бага і пообіцяв швиденько виправити. Правда, на всякий випадок, попередив що можу за сьогодні не встигнути, але постараюсь. Мій оптимізм швидко вщух коли я заліз у код. Ох... Дані що мають бути в одному місці розкидані по купі модулів, зв’язано все через подвійні вказівники, MVC перетворене на гру "вгадай де мої дані", вказівники на NULL ніхто не перевіряє (як і return code), а сигнали оброблюються де завгодно крім очікуваних місць. І тепер що виправити тривіальну помилку треба перелопатити весь цей код, порозкладати дані по місцям, викинути половину сигнально-слотової каші... Одна із останніх задач була розібрати на "запчастини" великий MainWindow, виділити окремі віджети-view і прив’язати до моделі з даними. Задача була виконана, великий клас був розібраний на купку маленьких, але... Мабуть, MVC не на стільки очевидний і зрозумілий паттерн як мені здавалось.
Я не знаю, більшість речей мені здаються очевидними. І не такий вже у мене й великий досвід у розробці і супроводі ПЗ щоб мати якісь переваги перед початківцями, тим паче працюючими під контролем. Чому, чому, чому не можна віднестись до справи відповідально?!
Я втратив віру у людей. Краще буду писати все сам щоб не розгрібати подібні "приколи" в останній день. Скажіть мені (хоч я і не повірю) що все буде добре!
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

madf: (Default)
madf

April 2018

S M T W T F S
1234567
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 24th, 2025 08:49 am
Powered by Dreamwidth Studios