|
|
| Результаты опроса: Как вы поступаете в сложившейся ситуации? | |||
| Говорю клиенту, что ему проще и дешевле сделать новый сайт |
|
10 | 66.67% |
| трачу +10050 часов на то чтобы разобраться с проектом, но все же довожу дело до логического завершения |
|
4 | 26.67% |
| Отказываюсь от проекта после первого часа знакомства с ним |
|
0 | 0% |
| Привлекаю к работе более опытных коллег с фриланса |
|
1 | 6.67% |
| Голосовавшие: 15. Вы ещё не голосовали в этом опросе | |||
|
|
Рейтинг 4.55/11:
|
|
53 / 28 / 13
Регистрация: 01.03.2013
Сообщений: 330
|
|
Доработка чужих проектов27.09.2016, 07:49. Показов 3120. Ответов 20
Метки нет (Все метки)
Здравствуйте уважаемые форумчане. Тема скорее для холивара, чем для решения какой то проблемы. Но хотелось бы услышать мнение других и возможно перенять полезный опыт. Вот есть допустим разработчик, который более менее научился делать неплохие сайты, изучил пару фреймворков поднакопил теоретичнских знаний и все вроде бы ничего. Но однажды появляется задача доработать сайт, созданный на одном из знакомых ему фреймворков, он берется за работу, скачиват файлы к себе на локальный сервер, открывает проект и понимает, что ничего не понимает из того, что там написано.
Как вы поступаете с проектами на фреймворке, которые напичканы самописными костылями без единой строки какого нибудь захудалого комментария, проектами, которые никоим образом не следуют правилам для данного фреймворка и не используют стандартные методы данного фреймворка. Думаю многие с таким сталкивались, кто как поступал в таком случае?
0
|
|
| 27.09.2016, 07:49 | |
|
Ответы с готовыми решениями:
20
Разбор чужих проектов В чем разница MFC проектов и CLI проектов? Товары На Чужих Складах |
|
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
|
|
| 27.09.2016, 08:11 | |
|
Выношу мозг начальнику и добиваюсь переписывания проекта с нуля)
Если это не удалось и отказаться не могу, то узнаю как это должно работать, методом тыка ищу это в проекте и дописываю свой костыль.
1
|
|
|
119 / 116 / 63
Регистрация: 16.09.2016
Сообщений: 354
|
|
| 27.09.2016, 10:03 | |
|
Бывали проекты, которые нереально переписать в обозримые сроки.
Просто нужно реально оценивать объем трудозатрат и договариваться на берегу. А "метод тыка" пока ни разу не подводил .
1
|
|
|
53 / 28 / 13
Регистрация: 01.03.2013
Сообщений: 330
|
||
| 27.09.2016, 11:10 [ТС] | ||
|
0
|
||
|
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
|
|
| 27.09.2016, 16:08 | |
|
На самом деле первые 2 варианта подходят, но ответил на второй. Недавно было -- сказал цену заказчику, потом понял, что проще переписать, потому что доработать надо было немало.
В итоге, за изначальные 30$ переписал небольшую CRM под MVC в стиле Laravel, правда с самописными компонентами, и от Symfony немного.
1
|
|
|
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
|
||
| 02.10.2016, 20:37 | ||
|
1) Предлагаем более выгодные условия. Заказчик отказывается (или оставляет как резерв) от своих наработок в пользу наших. Так же предлагаем полную техподдержку. Заказчику получается выгоднее отказаться от своих наработок, если его устроит цена и миграция данных будет безболезненна. Ну или хотя бы репликация из старой системы хранения в новую. 2) В договоре с заказчиком обговариваем особые условия изучения его разработки. Заказчик дает нам больше времени на выполнение договора. Техподдержка в этом случае происходит совместно со специалистами заказчика. Риски и ответственности так же делятся (обычно ответственность мы полностью вешаем на заказчика не забыв его предупредить об этом). Как правило в таких случаях заказчику открываются доработки, поскольку он в целом и по договору проходит как участник доработки. Остальные варианты развития диалога и проекта не дают более лучшего эффекта, поэтому их даже упоминать не стану.
1
|
||
|
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
|
||
| 02.10.2016, 21:04 | ||
|
0
|
||
|
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
|
|||
| 02.10.2016, 21:20 | |||
|
В вашем вопросе цена вопроса и готов ли клиент платить за переработку. Хорошему программисту не сильно будет затруднительно добавить к чужому говнокоду свой работающий код. Еще раз все решается в бабло. Я даже клиентам не говорю о качестве их кода когда клиент жмот и просит добавить определенный функционал. Ведь анализ, аналитика и выяснение узких мест это то-же работа и время за которое большинство клиентов не готовы платить
0
|
|||
|
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
|
|||
| 02.10.2016, 21:36 | |||
|
0
|
|||
|
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
|
|||
| 02.10.2016, 21:44 | |||
![]() У меня есть много своих открытых проектов, так, что когда я вспоминаю про совесть я иду и их допиливаю
0
|
|||
|
41 / 41 / 16
Регистрация: 04.10.2016
Сообщений: 154
|
|
| 04.10.2016, 09:17 | |
|
Я думаю все делают следующим образом:
Предлагают переписать сайт на знакомый им фреймворк, а если заказчик упирается рогами, то тогда приходится разбираться в коде который был написан до тебя, если конечно это рентабельно.
0
|
|
|
14 / 50 / 3
Регистрация: 26.12.2009
Сообщений: 406
|
|||||
| 04.10.2016, 23:35 | |||||
|
Мне кажется, что процентов в 90. ![]() Добавлено через 7 минут 2. Продвинутый отличается тем, что он такую ерунду не напишет. 3. Ерунду не стоит держать, а стоит ампутировать. Скорее всего, не пытаясь понять логику предыдущего говнокодера, если есть ТЗ. 4. Едва ли не в большинтстве запущенных случаях проще переписать все с нуля, чем мудохаться в дерьме, так как нормальный рефакторинг будет подразумевать, что все дерьмо будет выброшено. 5. На поддержку этого говнокода потратиться больше времени, чем на переписывание, так как чтение занимает чуть ли не в 10 раз больше времени, чем само написание кода. П.С. Я не говорю, что каждый раз нужно все с нуля переписывать каждому следующему разработчику, если код нормальный. Добавлено через 3 минуты
0
|
|||||
|
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
|
|||
| 04.10.2016, 23:54 | |||
|
заказчик не будет вам платить за рефакторинг фрилансеру же: сделал, бабки получил и забыл переписать все с нуля это время и деньги, на проблемных проектах, дырявых, архитектурно и функционально спроектированных неправильных, при этом работающих вам в большинстве никто не даст деньги на рефакторинг фрилансер может предупредить клиента и все. А то о чем вы говорите, больше относится к новым проектам. Но часто встречается, что кто-то учится на этом проекте, соответственно и код получается ученика. Ну и работает он так-же вы будете потом искать через какой задний проход к вам пришло в идеале - одна точка входа и одна выхода( к сожалению не всегда так пишут, а все на быструю руку)
1
|
|||
|
14 / 50 / 3
Регистрация: 26.12.2009
Сообщений: 406
|
|||||
| 05.10.2016, 10:00 | |||||
![]() Жлобы этого не поймут. Возможно, у Вас случаи были не настолько запущенные. ![]() а) зашло через index.php, а потом хрен поймешь какой контроллер взял его обрабатывать б) зашло в четко известный скрипт, который настроен в nginx ?
0
|
|||||
|
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
|
|||||||
| 05.10.2016, 11:51 | |||||||
|
это пример для php 7, в функциональном стиле
не проще в одном месте роутером отрабатывать все Роутер лежит рядом с приложением, при этом доступы к конфигам сделать недоступным для разработчиков Все запросы окромя статики на index.php
2
|
|||||||
|
14 / 50 / 3
Регистрация: 26.12.2009
Сообщений: 406
|
|
| 05.10.2016, 12:42 | |
|
1. Да, мне лень прикручивать роутинг. Он мне не нужен. Лишнее колесо.
![]() 2. Роутинг в одном месте - в конфиге нгинкса. Я много чего могу сделать еще пока запрос не дошел на приложение. Например проверять валидность ссылок. В одном проекте было порядка 50% заходов по устаревшим "ссылкам". Я их обработал самим сервером. 3. Ваш роутинг понятен (кстати, мне нравится такой функциональный стиль ). Но бывают случаи, когда фиг поймешь с наскока, что и как.Но он имеет право на жизнь, как и роутинг на веб-сервере. Почему вы говорите, что имееет право на жизнь только один вариант: ваш? ![]() Я сам из Украины, слегка напоминает майданутых.
0
|
|
|
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
|
|||
| 05.10.2016, 14:37 | |||
|
Серверов на с и с++, масса(даже очень) и зачем нам php Это говорит о проектировании структуры приложения, когда пишется структура понятная для многих. открыл роутинг который может быть описан в базе, в виде массива, json, ini, yaml файлов просмотрел куда направляется запрос и все. Не стоит лазить по папкам на сервере. Да и не всем туда доступ нужен. А также о распространяемости и привязки. Ваше решение привязано к nginx, а захочу на другом сервере запустить, что переписывать весь роутинг для нового сервера. Наверное вы уже заметили гибкость и более широкие возможности при данном подходе
1
|
|||
|
14 / 50 / 3
Регистрация: 26.12.2009
Сообщений: 406
|
||||||
| 05.10.2016, 15:53 | ||||||
![]() Думал, очевидный. Если нет, то забейте. ![]() ![]() Хм. Для удобства можно разбивать конфиг. Можно определенные части использовать повторно в других сайтах/локейшенах. ![]() Вам в любом случае нужно направить запросы на одну точку входа. А роутинг настроить - не самая сложная проблема. Были вещи посложнее при переезде с Апача.
0
|
||||||
|
3 / 3 / 2
Регистрация: 05.01.2013
Сообщений: 264
|
|
| 26.10.2016, 16:56 | |
|
Не вижу вообще проблемы. Может мне не такие сложные проекты попадались, хотя, когда начинаю изучать любой проект, мне кажется он ужасно непонятным, но уже через день начинаю делать первые задания, а через неделю свободно в нем разбираюсь.
Если планируется долговременное сотрудничество, то почему бы не разобраться? А если предлагают сделать что-то в сложном проекте за 500р, то смысла нет, конечно.
0
|
|
| 26.10.2016, 16:56 | |
|
Помогаю со студенческими работами здесь
20
склейка чужих со своими Влияние чужих ссылок Завершение чужих процессов Товары на чужих складах Перехват чужих сообщений из Телеграмм Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|