2010-02-02 3 views
5

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

Теперь я хочу порт он из используемого в настоящее время набора FOX Toolkit для родного Cocoa/MFC.

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

Мой вопрос: как я должен тратить свое время?

  1. Остановка работы основной программы и сделать 90% порта (около 3 месяцев) в GUI первого
  2. Расщепление все, на более мелкие сессий в течение одного месяца каждый.
  3. Присвоение в понедельник/вторник графическому интерфейсу проекта и остальной части недели для приложение.
  4. Завершение приложения сначала, затем порт.

Я думаю, что есть три аргумента, которые мне нужно сбалансировать.

  1. Мотивация, я хочу видеть то, что происходит на обоих проектах
  2. Brain ввода перелива, обе задачи требуют много детальной информации в моем мозгу, и достаточно иногда достаточно просто.
  3. Я предполагаю, что портирование взаимосвязано, поэтому для портирования потребуется также много изменений кода в существующем коде, и новый код, который будет , будет написан тем временем.
+1

Этот вопрос не соответствует теме, поскольку речь идет об управлении проектами –

ответ

0

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

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

Лично я припаркую существующую версию и начинаю переписывать какао.

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

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

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

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

1

Сначала я должен закончить приложение, а затем перенести его. ИМО, тем меньше проектов вы обрабатываете в то же время, тем эффективнее вы.

0

Это действительно зависит от того, с чем вам удобно.

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

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

0

Я начал с одного месяца для MFC, Cocoa и GTK, чтобы сделать основной материал. И после этого один недельный цикл среди систем, чтобы получить слой абстракции GUI. Я еще не коснулся самого приложения.

Это было довольно эффективно. Даже когда сложность MFC, Cocoa и GTK составляет типичное утро в понедельник, когда я переключаюсь еще хуже.

И теперь я знаю много, как мне нужно изменить свое приложение. Я портирую GUI-инструментарий до того, как я продолжу добавлять функции, потому что, как сказал Джон, в противном случае мне пришлось бы писать детали дважды.