Какие неудачные преобразования/переписывания программного обеспечения вы совершили?

StackOverflow https://stackoverflow.com/questions/592354

  •  09-09-2019
  •  | 
  •  

Вопрос

Какие преобразования/переписывания, в которых вы участвовали, не увенчались успехом?Какие языки и фреймворки задействованы в этом процессе?Насколько большим было рассматриваемое программное обеспечение?Наконец, чему вы научились больше всего, участвуя в этом процессе?

Это связано с этим вопрос.

Это было полезно?

Решение

Одним из моих любимых был проект с фиксированной ценой по разработке серверного приложения для Sun OS 3, которое в конечном итоге потребовалось для запуска на старой машине Data General, на которой работала какая-то (на тот момент) актуальная версия Unix.

Мы заранее знали, что перенос кода C в Data General будет болезненным, поскольку он имел 9-битные байты / 36-битные слова, но не понимали, как...не хватает...реализация Unix будет такой.

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

Другие советы

Недавно у меня был один проект, который в значительной степени потерпел неудачу из-за моей неспособности полностью убедить руководство в том, что переписать приложение в долгосрочной перспективе будет дешевле, чем поддерживать его в том виде, в котором он есть.Если бы я раньше прочитал о техническом долге, возможно, это был бы успех.Последняя статья Джеффа на эту тему опоздала для меня примерно на 8 месяцев!

Все говорили, что приложение состояло примерно из 75 тысяч строк кода C#, но это был кошмар в обслуживании (собственное приложение).Несколько классов богов, а остальные были тем, что я назвал классами-марионетками (классы только по названию, классы богов «дергали за ниточки» во всем, что они делали).Почти ничего не настраивалось пользователем, поэтому за все отвечали разработчики.

Оглядываясь назад, можно сказать, что самым большим препятствием на пути к успеху было само приложение.Поддержание его работоспособности было для нас троих постоянной работой.Я думаю, лучшее, что мы могли сделать, — это продолжить рефакторинг.В приложении «Версии 2» было несколько действительно хороших концепций, и нам следовало продолжать пытаться их интегрировать, а не начинать заново…Если бы мы это сделали, мы могли бы создать большие компоненты после стабилизации исходного приложения.

Однажды я попытался портировать игру, написанную на DarkBasic, на C.

Проблема, с которой я столкнулся, заключалась в том, что DarkBasic был настолько ограниченным языком (например, без передачи аргументов по ссылке), что когда я его портировал, я пытался сделать прямой порт...IE, я старался не реорганизовать его соответствующим образом для языка, который использовал...

В результате получился большой бардак...

Я, вероятно, мог бы заставить его работать, но остановился примерно через два дня, потому что понял, что для перехода на C нужно нечто большее, чем просто перевод...

Когда-то я написал клон Pacman, используя C и Allegro, и попытался переписать его для работы на Dreamcast.

Это был какой-то ужасный код.Я не смог многого извлечь из базы кода и отказался от этой идеи.

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

Однажды меня попросили преобразовать программу, которая управляла фотонаборной машиной на DEC-System10, в IBM 4381.Просматривая код, я обнаружил, что первоначальный разработчик без видимой причины написал различные части программы на следующих языках:

  • ДЕК ФОРТРАН
  • Алголь 68
  • БКПЛ
  • МАКРО-10

Это было отличным свидетельством поддержки DEC многоязычного программирования, но это был единственный раз, когда мне пришлось подойти к пользователю и сказать: «Нет, не могу».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top