Project management 移植程序的编程时间表
我正在开发一个具有抽象GUI API的大型程序。它是非常基于GUI的,许多对话框和一些严重依赖GUI消息流(正确的焦点/鼠标/活动处理顺序等)的讨厌特性-不容易移植 现在我想将它从当前使用的FOX Toolkit移植到原生Cocoa/MFC 我给自己一个直到年底的时间框架,但我的主要工作将是继续使用现有工具包进行开发工作,但在这两项任务完成之前,没有计划为最终客户发布 我的问题是我应该如何度过我的时间Project management 移植程序的编程时间表,project-management,porting,Project Management,Porting,我正在开发一个具有抽象GUI API的大型程序。它是非常基于GUI的,许多对话框和一些严重依赖GUI消息流(正确的焦点/鼠标/活动处理顺序等)的讨厌特性-不容易移植 现在我想将它从当前使用的FOX Toolkit移植到原生Cocoa/MFC 我给自己一个直到年底的时间框架,但我的主要工作将是继续使用现有工具包进行开发工作,但在这两项任务完成之前,没有计划为最终客户发布 我的问题是我应该如何度过我的时间 停止主程序的工作,然后重试 做一个90%的端口(大约3个月) GUI优先 把所有的东西都分割成
我会先完成应用程序,然后移植它。在我看来,你同时处理的项目越少,你的效率就越高。这取决于你对什么感到满意 就我个人而言,我现在就开始移植——一次移植一个子系统/块。你不必一枪就把整件事都搬走。您可能会发现必须重写应用程序的基础才能支持移植。如果您等到应用程序完成后才进行移植,那么最终可能会重写应用程序的大部分内容。因此,我首先要移植支持库和核心功能,然后慢慢地扩展到边缘
同时,每次向非端口引入新类时,请确保它从一开始就是可移植的 如果没有计划向客户发布,那么您就可以按照自己的意愿组织工作 我的第一印象是,在当前平台上完成应用程序的努力,当你打算扔掉代码时,至少是部分浪费了时间(你会学到一些东西,但最终的代码是没有用的) 就我个人而言,我会停止现有版本,重新开始Cocoa重写 首先,我将其划分为功能块,并将每个功能块视为一个敏捷风格的版本。这些应该集中在最终用户任务和功能上,包括这些任务的GUI和后端工作 (我不喜欢将GUI和应用程序逻辑分开处理的原因是它们不是分开的。作为重写的一部分,可能会有机会进行改进,如果你必须保持它们的兼容性,这就更难了。重写是一个机会,可以做出根本性的改变,但这种改变并不经常出现——我接受了) 一个接一个地完成功能块,在进入下一个功能块之前,先将其设置为一个完整的、可发布的状态。这将给你成就感和衡量进度的能力。这也意味着,如果一个实现突然出现,你就有了完整的可用块
另外,通过专注于端到端的任务,希望可以最大限度地减少思维溢出,因为你总是在一个特定的领域内工作,而不是在整个应用程序中工作。我从MFC、Cocoa和GTK各一个月开始做基本的工作。在这一周之后,在系统之间循环一周,以获得GUI抽象层。我没有这样做还没有打开应用程序本身 这是相当有效的。即使当MFC、Cocoa和GTK的复杂性使得典型的星期一早上我切换的情况更糟时 我现在知道了很多我必须如何改变我的申请。
在继续添加功能之前,我将移植GUI工具包,因为正如Jon提到的,否则我将不得不编写两次部件。这个问题似乎离题了,因为它是关于项目管理的