単一のリエンジニアリングまたはRNAInSpace v.1.3の歴史。 デモ

最近、複雑なシステムの開発に関するポストルールがありました あるプロジェクトのストーリー。著者は、彼がどのようにして1つのプロジェクトに「掘り下げた」のかを説明し、すべてを投げてゼロから書き直しました。



私は反対の話をしようとします。 ここ1か月ほど前に、私は自分の開発のデモ版の提示に失敗しました( 宇宙でのRNAの半自動構築のためのソフトウェア、パート7のRNAInSpaceを参照)。



ダウンロードは、グラフィックの表示を担当する1つのモジュールでは機能しないことが判明しました。 一言で言えば、RNAInSpaceプロジェクトは、宇宙でのRNAの半自動構築のためのソフトウェアです。 RNA構造を3Dで視覚化し、変更することができます。また、RNAWorldモジュールを使用することにより、RNAフォールディングのいくつかの段階を自動化できます。



このトピックに入るために、ここにいくつかの記事を書きました。

タンパク質からRNAまでMat。 基準 チェーンのターン数を減らす方法は? 一本鎖RNAのフォールディングを評価する方法は?敵の有無にかかわらずゲームでの最適化方法の制限1つの基本的な問題フォールディングマルチヘリックスRNAの紹介



しかし、この記事はサブジェクト領域を知らなくても議論できますが、同時に、サブジェクト領域のセマンティクスを知らなくてもソフトウェアの品質を判断できるかどうかを確認します(可能だと思います)。



そのため、この3Dビジュアライゼーション(RNAInSpaceDisplayモジュール)は、一部のコンピューターでは機能しませんでした。 グラフィックを実装するために、既存のVMD 1.8.7プロジェクトを使用しました。



以下は、ニーズに合わせてVMD 1.8.7をどのように適合させたかについてのストーリーです。







まず、このプロジェクトが動作するかどうかを確認しましょうここからダウンロードできます 。 使用方法に関するコメントは、 パート7の記事に記載されています RNAInSpace-宇宙でのRNAの半自動構築のためのソフトウェア 。 追加されるのは、.exeが配置されているRNAInSpaceDisplayディレクトリのみです。 グラフィックが起動しない場合は、この.exeを実行します。C#をC ++に接続する問題なのか、グラフィックの問題なのかを知ることが重要です。 RNAInSpaceDisplay.exeに警告するだけでは解決できません(タスクマネージャーを使用してタスクを削除します)。



トピックに興味がある人のために-すぐにこのソフトウェアの開発とプロジェクト全体について議論しましょう。



以下では、グラフィックモジュールについてのみ説明します。



最初、VMD 1.8.7はC ++で記述されており、約85,000行のクリーンなコードが含まれています(空の行、コメントなどはありません)。 私の適応後、コードには25,000行(約100ファイル)が含まれています-一般的には多すぎます。



さまざまな方法で機械的に適合させました。グラフィックスウィンドウを除くVMDからユーザーインターフェイス全体を投げました(これは不十分です)。Windows以外のOSのブランチを削除しました(他をサポートしません)。それだけです。 そこにあるコードはひどいもので、一般的にOOPで書かれたものですが、すべてが非常に絡み合っており、VMDのユーザーインターフェイスに結びついています(開発者はMVCについて聞いたことがないようです)。



一般に、VMDコードの品質は、イリノイ大学で書いたものであり、悪いです。 しかし、彼には1つの大きなプラスがあります-それは問題なくWindowsで動作し、コンパイルされます。



もちろん、適応中に「神の形式」にする必要がありました。MicrosoftVisual C ++ 2010プロジェクトに入れ、必要なものをすべて呼び出すラッパークラスを作成し、C#から使用する.dllを作成します。



リエンジニアリングには、最初のバージョンで約1週間、最近ではさらに1週間かかりました。 そして、50%の時間でコードをフォーマットしました(スペースをタブに置き換えました-エディターが半自動的にそれを行いましたが、ブラケットがお互いの下にない場合はスタイルを消化しないため、ブラケットを配置する必要がありました)。



実際、多くのマシンでなぜ機能しないのかはまだわかりません。 その後、WindowsVista x32を使用してWindows7 x64に移行しました。 今、私はこれら2つのOSでテストしました-すべてが私のために機能します。



しかし、外出先では、UMLクラスリンク図を作成しました。 議論のために提供します。







詳細を確認できるように、ここでは高解像度で



これはリエンジニアリング後に起こった最高のことです:)それははるかに悪かったです。 しかし、私たちが見るように-そして、ひどく十分。 なぜ、どのように修正するのですか? このトピックについて説明しましょう。 しかし、主なもの(!)これはすべて、ゼロからスローして書き換える理由ではありません。



All Articles