Подскажите, не знаю, что делать
От: J_K  
Дата: 19.08.12 06:18
Оценка:
Всем привет.
Ситуация следующая. Работаю полгода примерно на новой работе. Все время приходилось заниматься новыми проектами, а тут вдруг поступило задание доработать существующий проект. Лезу в код и мне становится плохо — клиентская часть, реализованная на Javascript, сделана в виде огромного фреймворка, который совершенно непонятно, как применять. Т.е. тот, кто это делал, написал огромный фреймворк, и на его основе реализовал всю функциональность. Этот разработчик уходит через несколько дней (по личным обстоятельствам). Документации 0. Он мне сделал небольшую вводную по той функциональности, которую надо реализовать, но у меня получается сделать лишь крохотный кусок — остальное тайна за семью печатями — спагетти-код, который очень трудно раскручивать на Javascript, все это щедро сдобрено темплейтами и магическими переменными. Возможно, мне бы удалось со временем разобраться, но проблема в том, что времени нет — начальство попросило добавить функциональность в течение двух недель.

Приложение наше реализовано в видно одностраничного веб-приложения — т.е. грузится одна страница, по кликам из меню открываются соответвующие секции, обновляется основная часть.

Ума не приложу, что делать. С отчаяния пришла такая идея — реализовать новую функциональность не трогая существующий фреймворк — по крайней мере пока — просто добавить еще одну страницу, скажем, через меню "Дополнительно...", и добавить новую страницу, на которой и реализовать нужную функциональность — обычными методами, без использования этого супер-фреймворка. Не знаю, правильно это или нет. Просто на то, чтобы понять, как работает существующий фреймворк, и как его применять, при полном отсутствии документации — боюсь, на это может уйти слишком много времени.
Что посоветуете?
Life is very short and there's no time
for fussing and fighting... (C) Paul McCartney & John Lennon
Re: Подскажите, не знаю, что делать
От: LaptevVV Россия  
Дата: 19.08.12 06:41
Оценка: +2
Здравствуйте, J_K, Вы писали:

J_K>Ума не приложу, что делать. С отчаяния пришла такая идея — реализовать новую функциональность не трогая существующий фреймворк — по крайней мере пока — просто добавить еще одну страницу, скажем, через меню "Дополнительно...", и добавить новую страницу, на которой и реализовать нужную функциональность — обычными методами, без использования этого супер-фреймворка. Не знаю, правильно это или нет. Просто на то, чтобы понять, как работает существующий фреймворк, и как его применять, при полном отсутствии документации — боюсь, на это может уйти слишком много времени.

J_K>Что посоветуете?
Именно это и посоветую — делать отдельную дополнительную функциональность обычными методами. И потихоньку "копать" фреймворк — в конце-концов разберешься, и понапишешь комментариев. Очень возможно, что и прорефакторишь его.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Подскажите, не знаю, что делать
От: MTD https://github.com/mtrempoltsev
Дата: 19.08.12 10:34
Оценка: -2
Здравствуйте, J_K, Вы писали:

J_K>Что посоветуете?


Объяснить ситуацию руководству, предложить несколько вариантов, от изучить фреймворк, до все выбросить и переписать. Варианты дать с обзором положительных и отрицательных сторон, дать временные оценки. Ждать, что решит руководство. Если руководство неадекватное и скажет, что-то вроде: "ну сделай что-нибудь по быстрому" — уйти в нормальную компанию с нормальным процессом разработки.
Re: Подскажите, не знаю, что делать
От: Pzz Россия https://github.com/alexpevzner
Дата: 19.08.12 10:40
Оценка: +1
Здравствуйте, J_K, Вы писали:

J_K>Что посоветуете?


Пойти к начальству и обсудить с ним. Начать с того, что существующая реализация столь сложна, что вам потребуется как минимум N времени, чтобы в ней разобраться. Оценка времени N должна быть близкой к истине (т.е., если вам предоставят это время, вы должны суметь разобраться). Если начальство будет требовать N сократить, честно сказать, что попробовать-то вы можете, но за результат не ручаетесь.
Re[2]: Подскажите, не знаю, что делать
От: mogikanin Россия  
Дата: 19.08.12 14:45
Оценка: +1
Pzz>Если начальство будет требовать N сократить, честно сказать, что попробовать-то вы можете, но за результат не ручаетесь.
Лучше так не делать. Если результата не будет, всю вину свалят на него.
Re: Подскажите, не знаю, что делать
От: bastrakov Россия http://bastrakof.livejournal.com/
Дата: 19.08.12 15:45
Оценка:
Здравствуйте, J_K, Вы писали:

J_K>Что посоветуете?


просто не принимать проект невозможно?
насколько я понял ситуацию, Вы сейчас задаете правила игры? бизнес вряд ли захочет лишиться 2-х разработчиков сразу.
выставляйте сроки. во
Re[3]: Подскажите, не знаю, что делать
От: Pzz Россия https://github.com/alexpevzner
Дата: 19.08.12 16:44
Оценка: +1
Здравствуйте, mogikanin, Вы писали:

Pzz>>Если начальство будет требовать N сократить, честно сказать, что попробовать-то вы можете, но за результат не ручаетесь.

M>Лучше так не делать. Если результата не будет, всю вину свалят на него.

Это зависит от того, насколько в данной конторе вменяемые отношения между людьми.

Существование проблем — это нормальное явление. В том числе, существование проблем, которые трудно или невозможно решить имеющимися силами. Я лично от своих подчиненных, когда они у меня есть , не требую способности решать все на свете проблемы, поскольку понимаю, что работаю не с волшебниками. Но когда человек берется за работу, долго копается, а потом, через существенное время, выясняется, что он никуда не продвинулся, возникает естественный вопрос, чем он все это время занимался и почему раньше ничего не сказал. Т.е., когда человек честно говорит "не могу", я считаю это нормальным. Когда человек говорит "могу", но не делает, я считаю это непрофессиональным поведением. Если это происходит не время от времени, а постоянно, с таким человеком надо расставаться.

Ну а если начальство невменяемо, то какой смысл держаться за продолжение отношений с ним?
Re[2]: Подскажите, не знаю, что делать
От: J_K  
Дата: 19.08.12 18:57
Оценка: -1
Начальство вменяемо вполне.
Я считаю, что лучше всего реализовать функциональность вне имеющегося фреймворка, но здесь, как упоминалось выше, два скользких момента:
1. Не получится встроить код бесшовно — т.е. если сейчас это одностраничное веб-приложение, то будет как минимум 2 страницы. Впрочем, на мой взгляд, это не так уж и страшно.
2. Начальство, хотя и вменяемо, не очень разбирается в имеющейся ситуации. Поэтому боюсь, что могут задуматься о моей компетентности... но опять же, выше головы не прыгнешь — чувствую, что не будет результата (вовремя), если попытаюсь юзать этот несчастный фреймворк.
Life is very short and there's no time
for fussing and fighting... (C) Paul McCartney & John Lennon
Re: Подскажите, не знаю, что делать
От: Олег К.  
Дата: 19.08.12 19:02
Оценка: +2
J_K>Ситуация следующая. Работаю полгода примерно на новой работе. Все время приходилось заниматься новыми проектами, а тут вдруг поступило задание доработать существующий проект.

Ну а что ты хотел? Работа програмиста это не только писать новый код но и разбираться в уже существующем.

J_K>Лезу в код и мне становится плохо — клиентская часть, реализованная на Javascript, сделана в виде огромного фреймворка, который совершенно непонятно, как применять. Т.е. тот, кто это делал, написал огромный фреймворк, и на его основе реализовал всю функциональность. Этот разработчик уходит через несколько дней (по личным обстоятельствам). Документации 0. Он мне сделал небольшую вводную по той функциональности, которую надо реализовать, но у меня получается сделать лишь крохотный кусок — остальное тайна за семью печатями — спагетти-код, который очень трудно раскручивать на Javascript, все это щедро сдобрено темплейтами и магическими переменными. Возможно, мне бы удалось со временем разобраться, но проблема в том, что времени нет — начальство попросило добавить функциональность в течение двух недель.


Нормальная ситуация. Я тут фигею от советов "все выбросить и переписать." Компания вложила в код деньги и что будет если каждый последущий програмист будет кричать что все надо выбросить и переписать?

J_K>Приложение наше реализовано в видно одностраничного веб-приложения — т.е. грузится одна страница, по кликам из меню открываются соответвующие секции, обновляется основная часть.


J_K>Ума не приложу, что делать. С отчаяния пришла такая идея — реализовать новую функциональность не трогая существующий фреймворк — по крайней мере пока — просто добавить еще одну страницу, скажем, через меню "Дополнительно...", и добавить новую страницу, на которой и реализовать нужную функциональность — обычными методами, без использования этого супер-фреймворка. Не знаю, правильно это или нет. Просто на то, чтобы понять, как работает существующий фреймворк, и как его применять, при полном отсутствии документации — боюсь, на это может уйти слишком много времени.

J_K>Что посоветуете?

Разбирайся. Смотри как сделанны похожие вещи и делай также. Можешь и в обход этому фреймворку писать если уж совсем никак. Учись, в общем, работать в рамках кода написанного предшественниками. Не всегда ведь будут новые проекты .

Начальству тоже объясни что проект для тебя новый и ты не сможешь быстро работать как предыдущий разработчик.
Re[2]: Подскажите, не знаю, что делать
От: MTD https://github.com/mtrempoltsev
Дата: 19.08.12 19:11
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>Я тут фигею от советов "все выбросить и переписать."


Я прочитал ответы, но не нашел таких советов. Покажешь?
Re[2]: Подскажите, не знаю, что делать
От: MTD https://github.com/mtrempoltsev
Дата: 19.08.12 19:15
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>Можешь и в обход этому фреймворку писать если уж совсем никак.


Похоже на откровенное вредительство — вместо того, чтобы разобраться и навести порядок, нашлепать сбоку кода. Потом придет другой разработчик, добавиться еще нашлепка, а потом проект потонет под их грузом.
Re[3]: Подскажите, не знаю, что делать
От: Олег К.  
Дата: 19.08.12 19:26
Оценка:
ОК>>Можешь и в обход этому фреймворку писать если уж совсем никак.

MTD>Похоже на откровенное вредительство — вместо того, чтобы разобраться и навести порядок, нашлепать сбоку кода. Потом придет другой разработчик, добавиться еще нашлепка, а потом проект потонет под их грузом.


Не потонет. Ты не поверишь, но ты только что описал цикл жизни проектов которым 10-20-30 лет и над которыми поработали разные програмисты с разными квалификациями и где нет ни начальных разработчиков, ни документации зато есть сроки и "надо."

У топикстартера проект, конечно же, не такого размаха. Так что я не понимаю криков "ой, мне дали не новый проект! что делать?" Разбираться надо, конечно же, и стараться сделать как лучше. Не всегда это возможно, правда.
Re[4]: Подскажите, не знаю, что делать
От: MTD https://github.com/mtrempoltsev
Дата: 19.08.12 20:29
Оценка: +1
Здравствуйте, Олег К., Вы писали:

ОК>Не потонет.


Потонет.

ОК>Ты не поверишь, но ты только что описал цикл жизни проектов которым 10-20-30 лет и над которыми поработали разные програмисты с разными квалификациями и где нет ни начальных разработчиков, ни документации зато есть сроки и "надо."


Ты работал на таких проектах? Я работал на больших проектах и не тонули они, хоть и капали в том числе и потому, что там студентам давали по рукам когда они начинали сбоку сарайчик возводить.

На вопрос
Автор: MTD
Дата: 19.08.12
ответишь? А то я не пойму, у меня глаз замылен?
Re: Подскажите, не знаю, что делать
От: carpenter Голландия  
Дата: 19.08.12 22:23
Оценка:
Здравствуйте, J_K, Вы писали:

все что здесь написал — рассказать начальству и обсудить, дальше зависит от твоего профессионализма, адекватности
и адкватности начальства.
Весь мир — Кремль, а люди в нем — агенты
Re[2]: Подскажите, не знаю, что делать
От: J_K  
Дата: 19.08.12 22:29
Оценка:
Можете меня минусовать сколько хотите, но я считаю, что фреймворк, который написан без строки документации, примеров использования и т.д., должен быть выброшен на помойку. Человек, который пишет базу, т.е. фреймворк, должен всегда думать о том, как и кто его потом будет использовать. Говоря о том, чтобы писать в обход существующего фреймворка, имелось в виду, что не надо лепить новый фреймворк, а использовать имеющиеся, сторонные, хорошо документированные фреймворвки — например, помимо самопального, мы используем jQuery и KendoUI. Они для того и созданы, чтобы их использовать. Зачем нашему разработчику понадобилось писать все с нуля, я не знаю.
Life is very short and there's no time
for fussing and fighting... (C) Paul McCartney & John Lennon
Re[3]: Подскажите, не знаю, что делать
От: nile  
Дата: 20.08.12 04:29
Оценка:
Здравствуйте, J_K, Вы писали:

J_K>Можете меня минусовать сколько хотите, но я считаю, что фреймворк, который написан без строки документации, примеров использования и т.д., должен быть выброшен на помойку. Человек, который пишет базу, т.е. фреймворк, должен всегда думать о том, как и кто его потом будет использовать. Говоря о том, чтобы писать в обход существующего фреймворка, имелось в виду, что не надо лепить новый фреймворк, а использовать имеющиеся, сторонные, хорошо документированные фреймворвки — например, помимо самопального, мы используем jQuery и KendoUI. Они для того и созданы, чтобы их использовать. Зачем нашему разработчику понадобилось писать все с нуля, я не знаю.


Ты рассуждаешь как разработчик или идеалист. Конечно, еще на начальном этапе разработки должны быть выстроены процессы, код должен быть документируемым, версионным, содержать юнит-тесты и т.д. и т.п.
А теперь посмотри на ситуацию с точки зрения бизнеса. Потрачено большое количество времени (и денег), реализована функциональность, которая с точки зрения пользователя их полностью устраивает.
Теперь им понадобилось добавить одну небольшую фичу.
И тут появляется принц на белом коне, который говорит, что код говно, и вместо реализации маленькой фичи, надо все написать с нуля.
Нормально?
Конечно можно попробовать уговорить начальство потихоньку параллельно пилить версию 2.0, но это не отменяет необходимости поддержки текущей версии до тех пор, пока новая версия не сможет заменить ее.
Re: Подскажите, не знаю, что делать
От: Handie  
Дата: 20.08.12 06:26
Оценка:
Здравствуйте, J_K, Вы писали:

J_K>н мне сделал небольшую вводную по той функциональности, которую надо реализовать, но у меня получается сделать лишь крохотный кусок — остальное тайна за семью печатями — спагетти-код, который очень трудно раскручивать на Javascript, все это щедро сдобрено темплейтами и магическими переменными.


На Ваше счастье, темплейтов в JavaScript нет. Это очень простой язык
Re[3]: Подскажите, не знаю, что делать
От: dotidot Россия  
Дата: 20.08.12 06:41
Оценка:
Здравствуйте, J_K, Вы писали:

J_K>Можете меня минусовать сколько хотите, но я считаю, что фреймворк, который написан без строки документации, примеров использования и т.д.,


ой да подумаешь. я участвовал в проекте в котором на каждую страницу вешалось yui, jquery, и три варианта старых фреймворков собственного написания с 2000 по 2009 годы. там прям видно как люди учили яваскрипт, сначала идет onclick в тегах, потом onclick на яваскрипте с ручным аяксом под IE, потом что то вроде jquery только с блекжеком и фантазиями.
фантазии — это слежение за курсором мышки и включение выключение разных обработчиков вроде onbeforeunload на лету.
ну и оно естественно в рамках портала все работает, а то не весело будет. итого порядка 100 яваскрипт файлов на страницу.

так вот. дописать кода на яваскрипт можно всегда! реальные проблемы были только с хитрыми скриптами которые следили за курсором. все остальное оверрайдится на ура. просто бери jquery и добавляй свой ajax и обработчики формочек. скорее всего абсолютно бесшовно заработает и никто не заметит.
ЗЫ use the force of preventpropagation ну и вешать в самом крайнем случае в самом теге onclick итп у таких вещей приоритет по обработке. если мего фреймворк предыдущего творца на лету много творит html я по шаблонам, то скорее всего можно даже отреюзать сами шаблонны и обойтись без копипаста, см. шаблонные движки на яваскрипте, есть очень конфигурабельные.
Re[2]: Подскажите, не знаю, что делать
От: alzt  
Дата: 20.08.12 08:20
Оценка:
Здравствуйте, Handie, Вы писали:

H>На Ваше счастье, темплейтов в JavaScript нет. Это очень простой язык


В большом проекте обычно сложность не в языке (если это не С++), а в самой внутренней инфраструктуре.
Re: Подскажите, не знаю, что делать
От: TimurСПБ Россия  
Дата: 20.08.12 08:21
Оценка: +1 :)
J_K>Что посоветуете?
Если непонятно что делать, то ложись спать.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.