2010-11-26 14 views
0

コンパイルされた言語(私はDelphiとFreePascalを使用しています)を使用しているときに退屈な編集、コンパイル、デバッグのサイクルを忘れていました。私がいくつかの変更を加えなければならないときは、特に小さなGUIの変更の場合は、いつでもプロセス全体を恐怖に陥り始めていることが、今や悪化しています。編集、コンパイル、デバッグサイクルをどのように減らすことができますか?

デバッグを開始する前に毎回生成される60Mbのデバッグ有効エックスに近づいているのを待たなければなりません。私はADDの兆候を見せ始めています。私は何かが料理をしている間に私ができることで開発に近づく傾向があります。

問題は、画面を見ているには時間がかかりすぎて、戻ってくる前に他の何かに注意を払うには短すぎます。

私はコンパイルされた言語のObjectPascalは悪くないと思いますが、私はそれがC++プログラマにとってさらに悪いと考えています。

24GbのRAMを搭載した16進のコアCPUと、プロセスを耐えられるようにする最速のSSDを入手する必要があるかもしれません。ホスティングプロバイダーの中には、月に100ユーロで彼らをやっているものもある。新機能を含む部品は、スタンドアロンのプログラム、おそらくコンソールプログラムとして別々に開発することができるように

ビジネスに今

簡単に言えば、私は、部品でアプリケーションを作成する方法を考えています。

これにより、プロシージャのパラメータと結果がどのように引き渡されるのかという疑問が浮かび上がってきます。これらは、当初考えていたオプションです。

  1. シンプルな変数、レコード構造またはオブジェクトをテキストに自動的に変換し、コマンドラインまたはパイプ経由でそれらを渡す方法を見つける。おそらく、JSON、XML、または単純な名前と値のペアをここで使用できます。テキスト形式にストリーミングされたTPersistentオブジェクトとしてのパラメータの設計は、ここではより良い選択肢になります。

  2. コマンドラインを使用するのではなく、ネットワークサービスを作ってそのようにパラメータを渡すか、新しいwebbyのものをすべてRESTful/XML-RPCにすることができます。

  3. 最初はDLLとして設計してください。これは、さまざまな問題が発生すると思われます。

よくテストされたら、それらを主な実行ファイルに組み込むことができます。

他の人がObjectPascalなどの言語でこの問題を克服し、問題を緩和する方法を見つけたと思われます。

いつものようにビジネスをしなければならない場合は、インターフェースのようなものを使うのが助けになりますか?

私は本当にここにいくつかの助けを必要とするか、または他の私は、PHP(息をのむ!)、さらにはJavaの(大きなあえぎ!!衝撃!!恐怖!)や禅(ないプログラミング言語)

+0

変更された部分のみを再コンパイルすることはできませんか?少なくともJavaでは、それは可能です:P – thejh

+0

インクリメンタルコンパイルは、C#とhttp://en.wikipedia.org/wiki/Incremental_compilerでも存在します。また、c#/ JAVAのデバッグフォルダは、C++よりも光年が短いものです。これは、C++の出力がraw asmであり、デバッガで正常にデコードされるためには、exeファイルにたくさんのものが必要なためです。 – basarat

+0

私はSmalltalk/Xを使用しています。スタンドアロンのexesを生成するために、個々のメソッドのインタラクティブなjust-in-timeバイトコードコンパイルとバッチコンパイルを組み合わせています。そしてそれらはLinuxとWindowsで同じように動作します。 – blabla999

答えて

0

に頼らする必要がありますインタプリタ言語をアプリケーションに統合する。 C言語と互換性のある言語(DelphiやFreePascalの専門家はいません)があれば、Lua、Python、JavaScriptなどの多くの一般的なインタープリター言語を簡単に統合することができます。

同様に、GUIを変更したために全体を再コンパイルする場合は、ビルドプロセスを変更する必要があります。異なるモジュールを異なるライブラリにコンパイルし、問題のライブラリのみを再コンパイルします。これは、1つのDLLがエクスポートされていない関数で別のDLLを呼び出すことは不可能であるため、カプセル化を強制するのにも役立ちます。

関連する問題