我正在开发一个具有抽象GUI API的大型程序。这是非常基于GUI,许多对话框和一些讨厌的功能,严重依赖于GUI的消息流(正确的焦点/鼠标/主动处理等序列) - 不容易移植
我现在想将它从当前使用的FOX Toolkit移植到本机Cocoa / MFC。
我给自己一个时间表,直到今年年底,但我的主要工作是继续使用现有工具包进行开发工作,但在完成这两项任务之前,最终客户没有计划发布。
我的问题是我该如何度过我的时间?
我认为我需要平衡三个论点。
答案 0 :(得分:1)
我先完成应用程序,然后移植它。 IMO,你同时处理的项目越少,你就越有效。
答案 1 :(得分:0)
这实际上取决于你对此感到满意。
就个人而言,我现在开始移植 - 一次一个子系统/片段。你不必一次性移植整个东西。您可能会发现必须重写应用程序的基础以支持移植。如果您等到完成应用程序以执行端口,则最终可能会重写应用程序的大部分内容。所以我首先移植支持库和核心功能,然后慢慢地工作到最后。
与此同时,每次向非端口引入新类时,请确保它从get get中可移植。
答案 2 :(得分:0)
如果客户没有计划发布,那么您可以完全按照自己的意愿构建工作。
我的第一印象是在当前平台上努力完成应用程序,当你要抛弃代码时,至少会浪费一些时间(你得到一些学习但最终的代码是没有用的)
就个人而言,我会暂停现有版本并重新开始使用Cocoa重写。
首先,我将它分成功能块并将每个视图作为敏捷样式发布。这些应该关注最终用户的任务和功能,包括GUI和后端工作。
(我不喜欢单独使用GUI和app逻辑的想法是因为它们不是分开的。作为重写的一部分,可能有机会进行改进,如果你这样做会更难必须让它们保持兼容。重写是一个进行根本性改变的机会,而这种改变并不常见 - 我会接受它。
逐个完成功能块,在进入下一个状态之前将其置于完全可释放的状态。这将为您提供成就感和衡量进步的能力。这也意味着如果一个实现无处不在,你就拥有了完整的可用块。
此外,通过专注于端到端任务,希望最大限度地减少思维溢出的内容,因为您总是在一个特定区域而不是整个应用程序中工作。
答案 3 :(得分:0)
我开始用MFC,Cocoa和GTK一个月来完成基本的工作。在这一周之后,在系统之间循环以获得GUI抽象层。我还没有触及应用程序本身。
这非常有效。即使MFC,Cocoa和GTK的复杂性使得典型的星期一早上我做切换时更加糟糕。
我现在知道如何更改我的申请。 在继续添加功能之前,我将移植GUI工具包,因为Jon提到我将不得不两次编写部件。