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

var inputList = {
   "audioResponse": [

  {
     "speaker":"spk1",
     "startTime": "0.0",
     "endTime": "15.239",
     "emotion": "neutral",
     "emotionScore": "0"
  },

  {
     "speaker":"silence",
     "startTime": "15.240",
     "endTime": "16.900",
     "emotion": "NA",
     "emotionScore": "NA"
  },

  {
     "speaker":"spk2",
     "startTime": "16.932",
     "endTime": "27.320",
     "emotion": "happy",
     "emotionScore": "2"
  },

  {
     "speaker":"spk1",
     "startTime": "27.977",
     "endTime": "37.900",
     "emotion": "anger",
     "emotionScore": "-3"
  } 
]}




var result = inputList.audioResponse.reduce((acc, {speaker, ...rest})=>{
    acc['audioResponse'][speaker] = (acc['audioResponse'][speaker]) || [];
    acc['audioResponse'][speaker].push(rest);
    return acc;
}, {audioResponse:{}});

console.log(result);

Вы можете использовать метод уменьшения . Надеюсь, это поможет вам!

8
задан 6 revs, 4 users 62% 23 May 2017 в 11:55
поделиться

17 ответов

Я иду для "самого глубокомысленного" сюда:

  • Портированный 8 080 средств моделирования, записанных в ФОРТРАНЕ 77 от DECSystem-10 рабочий TOPS-10 к мейнфрейму IBM 4381, выполняющему VM/CMS.
3
ответ дан 5 December 2019 в 21:22
поделиться

Преобразование теоретически портативного C кодирует в теоретически портативный код C через архитектуру для поддержки изменения аппаратной конфигурации, которое сохраняет компанию X доллары за единицу.

Размер варьируется - это - общая потребность, и я сделал маленькие и большие проекты.

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

0
ответ дан 5 December 2019 в 21:22
поделиться

Портированный моделирование, записанное в Фортране 77 (несмотря на то, чтобы быть записанным в 90-х) к C/Java, потому что оригинал только работал над небольшими наборами данных. Я учился любить большую нотацию O после несколько раз объяснения, почему просто перемещение всей таблицы данных в память в начале программы не выходило на более высокий уровень.

0
ответ дан 5 December 2019 в 21:22
поделиться

Я преобразовал динамический процесс сборки, полностью записанный в Perl в решение C#/.Net с помощью модуля управления технологическим процессом, который коллега разработал (который был все еще в бета-версии - таким образом, я должен был сделать некоторые улучшения). Это дало мне oppertunity для добавления отказоустойчивый и функциональность обработки отказа к процессу сборки.

Перед выяснением - нет - основа рабочего процесса Microsoft не могла использоваться, так как Вы не можете динамично изменить процесс во время его времени выполнения.

Что я изучил:

  • ненавидеть разработчика Perl
  • оптимизация процесса с помощью wf-механизма
  • отказоустойчивый и стратегии обработки отказа
  • некоторые тонкие настройки C# ;)

В конце это покрыло о 5k - 6k (включая wf-механизм) источник LoC из 3 200 файлов Perl LoC. Но это была забава - и намного лучше в конце ;)

0
ответ дан 5 December 2019 в 21:22
поделиться

Преобразованный vBulletin, который записан в PHP в C#/Asp. СЕТЬ. Я довольно знаком с обоими языками, но PHP является руками вниз победитель для создания того программного обеспечения. Самая большая боль сзади должна была сделать эквивалент C# оценки PHP () для вызова шаблонов.

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

0
ответ дан 5 December 2019 в 21:22
поделиться

Переписал систему для компании, которая обрабатывает легальные счета - исходная система была чудовищем VB, которое понятия не имело о хороших принципах OO - все было смешано. HTML сделал SQL, и SQL записал HTML. Значительная часть его была механизмом пользовательских правил, который использовал что-то как XML для правил.

Две команды сделали переписывание, которое заняло приблизительно 9 месяцев. Одна команда сделала веб-фронтэнд и рабочий процесс бэкенда, в то время как другая команда (что я шел) переписала механизм правил. Новая система была записана в C# и была сделана тест сначала. Добавление новых правил к системе, когда мы были сделаны, было простой грязью, и это было все тестируемым. По пути мы сделали вещи, любят, преобразовывают компанию от VSS до SVN, реализуют непрерывную интеграцию, автоматизируют развертывание и учат других разработчиков, как сделать TDD и другие методы Толпы/XP.

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

Наличие соединения крупного масштаба (от начала до конца) тестирует наряду со всесторонней единицей, и интеграционные тесты помогли тоннам.

0
ответ дан 5 December 2019 в 21:22
поделиться

Несколько. Но я упоминаю тот.

Это был инструмент моделирования производительности. Часть Дельфи 1, турбо части Паскаль. Этому еще было нужно переписывание, это не собиралось выживать. Таким образом, мы запустили как команда 2, но только меня переживший в конец. И я был готов перед крайним сроком ;-).

Несколько вещей мы сделали:

  • Сделайте это мультимоделью. Оригинал имел много globals. Я удалил их всех, и много модель было легко адаптировать.
  • Расширенные сообщения об ошибках. Нажмите на сообщение и получите справку.
  • Много графиков и схем. Все активируемые по щелчку для развертки.
  • Моделирование. Параметры изменения со временем и видят, какой длины текущая конфигурация была достаточно.

Мы действительно заставили этого убрать, и это заплатило в большой степени в конце. Такой большой полезный опыт.

0
ответ дан 5 December 2019 в 21:22
поделиться

Десять лет назад я управлял командой, которая преобразовала систему CAD из DOS в Windows. Версия DOS пользовалась доморощенными библиотеками для графического рисунка, версия Windows использовала MFC. Программное обеспечение было приблизительно 70 000 строк кода C во время преобразования. Самой важной вещью, которую мы изучили в процессе, является питание абстракции. Все определенные для устройства непортативные стандартные программы были изолированы в нескольких файлах. Было поэтому относительно легко заменить вызовами на основанную на DOS библиотеку, которая потянет путем прямого доступа к кадровому буферу с Windows API calls. Точно так же для входа мы просто заменили циклом событий, который проверил на события клавиатуры и события от нажатия мыши с соответствующим циклом событий Windows. Мы продолжали нашу политику изоляции непортативного устройства (на этот раз Windows) код от остальной части системы, но мы еще не нашли это особенно полезным. Возможно, однажды мы портируем систему на Mac OS X и будем благодарны снова.

0
ответ дан 5 December 2019 в 21:22
поделиться

У нас был инструмент генерации кода в нашей среде разработки приложения, которая использовалась для чтения в основанных на тексте файлах данных, приблизительно 20 других приложений использовали ее.

Мы хотели использовать файлы данных XML вместо основанных на структурированном тексте файлов. Исходный код довольно устарел и был трудным поддержать. Мы заменили этот инструмент комбинацией сценариев XSLT и служебной библиотеки. Для служебной библиотеки мы могли использовать некоторый код в старом инструменте.

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

После вывода наружу один или два выпускают, мы теперь решили, что больше не будем поддерживать старый основанный на тексте формат, и все могут преобразовать их данные в XML.

Мы действительно едва должны были сделать ручные преобразования,

0
ответ дан 5 December 2019 в 21:22
поделиться

Я портировал/перепроектировал/переписал MS-DOS с 30,000 строками программа C++ в подобную длину, но намного больше полнофункционального и применимого Java программа Swing.

Я учился никогда не устраиваться на другую работу, включающую C++ или Java.

0
ответ дан 5 December 2019 в 21:22
поделиться

Я портировал клиент-серверное приложение Powerbuilder, несколько сотен экранной ценности, в приложение ASP.NET (C#).

Из-за производительности и проблем пригодности для обслуживания, я переместил за предыдущий год тонну встроенного SQL из сценариев Powerbuilder и в хранимые процедуры.

Хотя это сделало бы многие из Вас содроганием, имея большую бизнес-логику в базе данных, это означает, что приложение Powerbuilder было относительно "легко" и когда мы создали фронтэнд .NET, это могло использовать в своих интересах кодовую базу SQL и иметь большую функциональность, уже созданную и протестированную.

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

0
ответ дан 5 December 2019 в 21:22
поделиться

Я переписал большое веб-приложение Java к приложению ASP.NET для компании недвижимого имущества по различным причинам.

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

Это - самая большая причина, переписывает, так тверды: это кажется настолько легким клиенту ("Просто восстановление, что я уже имею и добавляю несколько вещей".).

1
ответ дан 5 December 2019 в 21:22
поделиться

Самый прохладный для меня, я думаю, был портом MAME к iPod. Это был большой полезный опыт со встроенными аппаратными средствами, и я взялся за работу с большим количеством великих людей. Официальный сайт.

1
ответ дан 5 December 2019 в 21:22
поделиться

Я делаю переписывание Внутренней системы управления Проекта к более стандартной модели MVC. В стеке LAMP (PHP) и мне близко к 1-му этапу.

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

Пример - то, что я запрограммировал всю функциональность сначала (как, я был администраторским пользователем), и затем когда в этом разбираются, добавьте сложность наличия ограничений (уровни пользователя и т.д.)

0
ответ дан 5 December 2019 в 21:22
поделиться

Я переписал 20 000 строк Perl для использования "использования, строгого" в каждом файле. Я должен был добавить "мой" везде, это было необходимо, и я должен был исправить ошибки, которые были раскрыты во время процесса.

Самая большая вещь, которую я узнал из выполнения этого, "Это всегда занимает больше времени, чем Вы думаете".

Я должен был сделать его внезапно в течение ночи так, чтобы другие кодеры не писали новый, незакрепленный код одновременно. Я думал, что это пойдет быстро, но это не сделало, и я все еще взламывал на нем в 6:00 следующим утром.

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

2
ответ дан 5 December 2019 в 21:22
поделиться

Преобразованный основное приложение компании от предстандартного C++ до стандартного C++. У нас была многомиллионная продажа, зависящая от того, чтобы заставлять это работать над AIX, и после рассмотрения его мы решили, что преобразование в стандартный C++ было столь же легким как преобразовывающий в традиционный C++ IBM.

Я не знаю количества строки, но исходный код работал к сотням мегабайтов.

Мы использовали стандартные инструменты Unix, чтобы сделать это, включая vi и различные компиляторы.

Потребовалось несколько месяцев. Большинство мер было простыми, пойманными компилятором, и почти механически зафиксировало. Некоторые из них были намного более сложными.

Я думаю, что моя основная еда на дом была: не становитесь слишком ужасно умными с кодом на языке, который еще не был стандартизирован или, вероятно, будет иметь вещи изменение неожиданными способами. Мы должны были сделать большое закапывание части оригинальной адаптации/злоупотреблений потоков C++.

0
ответ дан 5 December 2019 в 21:22
поделиться

Перенос программного обеспечения миссии бомбардировщика-невидимки B-2 с JOVIAL на C. 100% полностью автоматизированная конвертация. Серьезно!

Главный урок: использование настраиваемых инструментов автоматического преобразования - огромная победа .

См. DMS Software Reengineering Toolkit .

0
ответ дан 5 December 2019 в 21:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: