Dec. 27th, 2011

madf: (Default)
Тут дехто вважає що я зануда, придовбуюсь до дрібниць і все таке.
Да, зануда. Да, придовбуюсь. Бо мені дуже неприємно отримувати багрепорти про Segmentation fault. Ні по пошті, ні в реальності, ні по телефону. І мені надзвичайно неприємно "червоніти" перед людьми яких я дуже поважаю!
Ладно, слухайте байку.
Пару років тому (ого, вже майже 2 роки пройшло) я домовився з одним студентом що він буде допомагати мені по проектам за певні гроші. "О!", думав я тоді, "Клас! Тепер справа піде!". Бо свого часу вже не вистачало тягнути усе.
Звісно, спочатку я дуже пильнував, детально переглядав кожний коміт, слідкував щоб було витримано стиль коду і не допускав тупих багів. Потім, через деякий час, я побачив що студент став писати більш-менш пристойний код і пильнував уже не так сильно (бо який же тоді сенс наймати когось писати код щоб потім самому "просіювати" кожний його рядок). Перевіряв виконання тікетів ну і іноді рекомендував як зробити краще. По термінам виконання задач не сильно "звєрствував" - давав 1-2 тижні. І наче все йшло непогано, проект просувався, я встигав займатись іншими справами. Єдине що мені з часом перестало подобатись - з’явилось відчуття що студент все більше став затягувати виконання задач щоб наприкінці місяця швиденько їх позакривати.
Прийшов час показувати нові фічі замовнику. Тим паче я розрекламував що тепер софтину можна буде запустити на маках від чого радість замовника не мала меж. Як я вже писав раніше, на маках все завелось буквально з першої компіляції. Ну так, з косметичними правками. Я перевірив основний функціонал, зібрав dmg, інсталлятор для вінди і віддав замовнику на тестування.
А сьогодні отримав по телефону SIGSEGV. Надзвичайно приємно. При тому що мак уже пора віддавати.
Ну по симптомам я уже зрозумів де там бага і пообіцяв швиденько виправити. Правда, на всякий випадок, попередив що можу за сьогодні не встигнути, але постараюсь. Мій оптимізм швидко вщух коли я заліз у код. Ох... Дані що мають бути в одному місці розкидані по купі модулів, зв’язано все через подвійні вказівники, MVC перетворене на гру "вгадай де мої дані", вказівники на NULL ніхто не перевіряє (як і return code), а сигнали оброблюються де завгодно крім очікуваних місць. І тепер що виправити тривіальну помилку треба перелопатити весь цей код, порозкладати дані по місцям, викинути половину сигнально-слотової каші... Одна із останніх задач була розібрати на "запчастини" великий MainWindow, виділити окремі віджети-view і прив’язати до моделі з даними. Задача була виконана, великий клас був розібраний на купку маленьких, але... Мабуть, MVC не на стільки очевидний і зрозумілий паттерн як мені здавалось.
Я не знаю, більшість речей мені здаються очевидними. І не такий вже у мене й великий досвід у розробці і супроводі ПЗ щоб мати якісь переваги перед початківцями, тим паче працюючими під контролем. Чому, чому, чому не можна віднестись до справи відповідально?!
Я втратив віру у людей. Краще буду писати все сам щоб не розгрібати подібні "приколи" в останній день. Скажіть мені (хоч я і не повірю) що все буде добре!
madf: (Default)
Чесно кажучи, очікував інших коментарів. Щось на кшталт: "Ей чувак, окстись! Ти ж сам не з яслів навчився код писати, студент молодий ще! Згадай себе в його роки!".
Мені толком не доводилось попрацювати у команді. Було пару разів що ми з Борисом на пару код писали, це було кльово. Було таке що я комусь поступово передавав проект. В ГТС там все було складно. Наче і писали код разом із колегою, але назвати це командою у мене язик не повертається.
Під чужим контролем код писав. Але якось так виходило що мені за нього і відповідати. А так щоб реально в команді, або когось контролювати - це вперше.

Казка

Dec. 27th, 2011 09:59 pm
madf: (Default)
Від автора "Криптографії і свободи"! Цар і правляча партія, могутня таємнича Контора і прості людичисла! Читайте на екранах у грудні: "Сказка про числа, которые не хотели ни с кем делиться"!

Profile

madf: (Default)
madf

April 2017

S M T W T F S
      1
2345678
9101112131415
1617 1819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 23rd, 2017 10:16 pm
Powered by Dreamwidth Studios