Что делать PHP-программисту, если ему дали дорабатывать индусский код (http://lurkmore.to/Индусский_код) ...

Компьютеры программирование php MySQL zend

(ни одного комментария, вываливается куча ошибок, написано через ж... ), а переписать проект не разрешают ? При этом новый программер его допиливал, допиливал, но потом и сам запутался в коде (окончательно). Тоесть сделал его еще более индусским, а сроки сдачи проекта поджимают...
КАК ВЫКРУТИТЬСЯ ИЗ ТАКОЙ СИТУАЦИИ ?
Ответы:
Надо больше нямки для троллей.
Откажись.
Попросить доплату такого уровня, чтобы заказчик отказался. А если заказчик согласился бы, то вам было бы в кайф заниматься этой ерундой за такое бабло.
так и скажи "на разбор ТАКОГО кода мне надо энннннное количество тысячелетий, так что прийдется вам подождать, или я могу переписать все заново, по нормальному, как скажете?"
проблему нашёл... скажи как есть заказчику и не натягивай трусы на голову
Если отойти от способов решения проблем лежащих на уровне - а) поднять цену что бы заказчик отказался 2) имитируй работу и т.д.
То
1) Определите сколько точек входа у сайта
2) Сделайте схему базы данных. Можно использовать MySql Workbench. Необходимо проставить связи между таблицами. И задокументировать за что какая таблица отвечает. Подобная схема является искаженным отражением доменной модели проекта.
3) Используйте какую либо простую Orm.
4) Точки входа считайте контроллерами. Убедитесь что в контроллерах нет прямых обращений к бд и не создаются селекты. Если что то из этого присутствуют переносите все в модели.
5) Вбейте привычку документировать код. Если сможете написать внятный комментарий к маленькому куску кода, то в следующий раз потратите в разы меньше времени. Более того отпечатывая мысли в слова, вы как бы объясняете сами себе. Документирование нужно что бы не было вот этого - "При этом новый программер его допиливал, допиливал, но потом и сам запутался в коде (окончательно)"
6) Оцените здраво сколько времени осталось до прихода тотального звездица, в виде последнего дедлайна. Разбейте это время на несколько фиксированных частей. Выпишете задачи которые нужно решить для сдачи проекта. Пусть ваш проект менеджер проставить важность задач, в каких либо условных единицах. А вы проставьте трудоемкость (реальную - не обманывайте руководство, работайте с ним в команде, а не по разные стороны барикад) в идеальных днях (1 - идеальный день, это когда вы свежий и отдохнувший адски кодите на благо человечества). Потом для корректировки выберите фокус фактор, т.е. это коэффициент на который нужно умножить трудоемкость. Что бы учитывать реалии (пм, пришел бухой, у вас болит голова, заказчик положил на проект и 3 дня гудел в баре, и не давал указаний, и т.д.) нашей жизни. Определите критерии готовности, для каждой задачи. Т.е. есть задача переписать поиск на сайте. На данный момент это одни файл на 50000 строчек кода без комментариев. Критерий готовности - список используемых таблиц, создать модели для сущностей (список моделей прилагается), разнести код из 50000 строчек по моделям. Исходный файл должен превратиться в контроллер где описана только логика действий на реакцию пользователя. Какой ни какой а критерий готовности. И так для каждой задачи которую будете делать в рамках одной итерации.
7) Исходя из полученного в предыдущем пункте, выберите задачи исходя из соотношения важность/трудоемкость. Всегда помнить что важность ставит  не программист, а заказчик либо пм. А трудоемкость ставить только программиста, а не заказчик либо пм.  Разбейте решение этих задач на итерации (фиксированные промежутки времени, о них говорилось выше). В первую очередь решить те задачи, которые "успокоят" заказчика.
8) Честно поговорите с заказчиком и исходя из пункта 6 дайте ему реальные гарантии. Не обещайте того что нельзя сделать.
9) Заведите багтрекер, и записывайте туда задачи которые всплывают по ходу анализ кода.
2 kotino:


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.