どちらもありません。
とにかく、プロジェクトの初めに、あなたが取る一般的なアプローチとあなたがサポートするオペレーションを決めなければならないでしょう。
これで十分ですが、ビューと基礎となるロジックの間のインターフェイスを定義していることになります。いくつかのインスピレーションのためにModel-View-Controllerアプローチを見てください。
あなたが早期に欲しいのは、目的を達成するためにロジックコードが行う必要のある基本的な操作です。通常は単純な関数呼び出しになりますが、それ以上の場合もあります。それはまずはっきりしています。
次に、動作する複雑なシステムは、動作する単純なシステムに基づいています。
基本的なロジック実装を最初にテストするために使用する基本的なUIが必要です。 メッセージを表示するボタン付きの簡単なフォームは基本的なものです。それから、成長し、機能を実装して、簡単なUIを追加してテストすることができます。
ロジックの小さな部分のロジックとUIが概念的に似ており、実装してテストしている間に両方を追跡するのが簡単になるため、両方を簡単に行うことができます。
最も重要な部分は、UIとロジックを分離したままにして、共通のインターフェイスで話すことです。これにより、必要に応じて素早く編集し、最後にGUIの外観を改善することができます。
好きではない場合は、UIをスクラップできます。あなたが書く必要があるだけに、それを実装しているので、あなたがやる方法を知っている同じインターフェースを使うだけでいいです。
また、UIとロジックが分離されていて、ロジック部分も十分にモジュール化されているため、大きな間違いを犯したことが分かった場合でも、コードの一部を取り戻すことができます。
まず、UIとロジックの両方を少しずつ増やし、モジュール化しておくことを考えてみましょう。