質問

私はクライアントの問い"何を、是非とからアップグレードAS2/フラッシュをAS3/フレックス?" たは性能、メンテナンス性の問題彼のアプリです。

私は新お疲嫌いなこれらの疑問いうのでは"ということAS3/フレックスがより早く、より保守性が知っていることができるよ。の申請があり100,000ラインのコードでは、十文書化され、UIうすべてを動的に生成されます。

この移動からのフラッシュ/AS2をフレックス/AS3するものである速度の向上、メンテナンス性に?なんだろうけど、日本人がどの程度まで向上速度、メンテナンス性に?あなたができないAS3その中でも特に効能が高いと言われるAS2?したものではないでしょうか。が本当にたくさんのものまでAS3ることができないのでAS2?

しないといけないのではないかこうはいかがですか私は疑問に答えようが正しく取り扱客様がリピーターの方々です。短期間に多くの時間を通して見ている数万点のラインのコードでは、なんなのかんでしまいます。

よろしく!

役に立ちましたか?

解決

パフォーマンス 100,000行のコードがあるため、10倍高速なVMでコードを実行すると(adobeが言うように)間違いなくパフォーマンスが向上します。しかし、現在のアプリのパフォーマンスはどうですか?それが十分であれば、あなたは本当にこのプロを考慮するべきではありません。

保守性と再利用性 現在のコードベースを維持するのが難しく、再利用できない場合は、新しい言語で書き直すのではなく、リファクタリングが必要です。 AS3は、保守性と再利用性に役立つコーディング手法を推奨していますが、それはあなたとあなたのチームがそれらに従うことを意味するものではありません。また、AS3を使用すると、保守が難しいコードベースになる可能性があります。 AS2コードを保守および再利用可能な方法でリファクタリングすることもできます。

新技術 ここで唯一の本当のプロだと思います。 Flex / AS3は新しいテクノロジーです。それはすてきできれいなものです。多くの人々がそれを強く支持しています。アドビは、AS2からAS3に切り替えるように全員に促しています。新しいAS2開発者を雇うことはますます難しくなります。 AS2をサポートする開発ツールは少なくなります。そして、遅かれ早かれ切り替えを行う必要があると思います。

したがって、IMO、ここにすべての長所と短所があり、アプリを定期的に更新し続ける場合は遅かれ早かれこれを行う必要があることをクライアントに理解させる必要があります。そして、あなたはそれを急いではいけないと思います。

他のヒント

Wikipediaについてはリストの新機能によるFlash Playerのバージョン:

http://en.wikipedia.org/wiki/Adobe_Flash_Player

ものからバージョン9のみがご利用いただけAS3.ここではハイライトを含む追加の自:

  • 支援のためのフレックス2+(バージョン4で、お出かけの際は座れるし、来年)
  • 支援のためのAdobe AIR
  • バイナリーソケット
  • H264/デスクトップ、エンタープライズを支援
  • 3-D変換
  • 新しいテキストのレイアウトエンジン
  • ハードウェア高速

を書きフレックスの応用を通って下FP8(フレックス1.5)FP9+(フレックス2+)までにお伝えすることで大きくなります。のための"ビジネスアプリケーションの人で過ごす多くの時間を毎日だと思いますが顕著に改善を削減するユーザーの髪だけます。あの性能指標が低レベルの業務のように文字列の連結および配列の分別が指標にない相当の性能を損なまは、現実世界です。実際には、小さなものを重要なものとするだろう。

最終的にはベストでなければならないことで推定し、コストの維持としてアプリケーションには対に書き換え、しかも、その後も特徴です。決めなければならないプランの変化に応用し書き換えるな館内は、ゆったりしていました。ただし、アプリの特徴を加えるだき大幅により生産的な利用のフレックスとAS3ださることを示すことができることがその番号うの決定に基づきます。

アップグレードする最大かつ最も重要な理由は、アドビが懸念している限り、AS2は死んだ言語だということです。 AS2は、独自の特別なVM(正確にはAVM1)の内部で実行され、Flash 8の世界に永遠に立ちはだかるFlashプレイヤーの残りの部分と一緒に点在します。 。

さらに、このアプリケーションが長期間存続する場合、AS2を知って理解している開発者の数は徐々に減少することを理解することが重要です。アプリケーションでAS3へのジャンプが発生する場合は、後ではなく、より早くそれを行う方が簡単です(おそらく安価です)。

他の回答はベースをうまくカバーしましたが、AS3ではAS2よりも3〜100倍高速に実行される傾向があるため、適切に作成されたAS3のスクリプト実行はパフォーマンス面で貢献します。これは、行われていることによって大きく異なります。ただし、ほとんどのアプリケーションでは、パフォーマンスの問題が完全にまたは主にスクリプトの実行によるものではないことに注意してください。通常、レンダリングが最大のボトルネックです。この場合、新しいAS3 VMに切り替えると、中程度のメリットが得られるか、まったく得られない場合があります。特定のアプリケーションでパフォーマンスが大幅に改善されるかどうかは、プロファイリングによってのみ判断できます。

しかし、それは議論に記入することです。最大の問題は、多くの新機能が新しいVMでのみ機能するということです。言語の切り替えだけの問題ではないことを忘れないでください。Flashプレーヤーには現在2つの異なる仮想マシンがあり、AS2 VMは基本的にレガシーアプリケーションです。

他の人がカバーしていないこと-AS2とAS3のコンテンツ間の相互運用性は非常に貧弱です。外部コンテンツ(SWF)を読み込んだり、サードパーティライブラリ(グラフコンポーネントなど)を使用しようとする場合、そのようなコンテンツのほとんどは既にAS3であり、AS2のもののみが表示される可能性があります。希少になります。

AS3は、AS2よりも優れています。VMのパフォーマンス、よりクリーンなコーディング手法を実行するためのより厳密なコンパイラ(厳密な型指定など)など、上記の多くの理由があります。 AS3で実行時にオブジェクトの親オブジェクトを変更できること、AS2ではできなかったことを誰も言及していませんでした。この問題に遭遇した場合、ロードブロックの失望とは何かを知っています。

しかし、もっと重要なのは、AS3でコーディングするとき、想定どおりに機能することです。バグ、欠点、およびコード制限からの奇妙な結果をかなり定期的に発見する、この風変わりなAS2のものはありません!

ポーティング/リライトを検討している場合、開発チームがAS3でなくAS2に精通している場合、待つ必要がある学習曲線も考慮する必要があります。

100,000行のコードベース(actionscript標準ではかなり大きい)では、コードが文書化され、エレガントで整理されていない限り、移植は悪夢になります。アプリのより効率的で組織化されたフレームワーク/デザインパターンを構築することから始めて最初から書き直すと、最終的にコードベースのサイズが大幅に削減されることに気付くかもしれません...正しくできましたか?

がんばって!

私は個人的にAS2を使いこなすことはできず、3よりも前に言語を完全に回避しました。

  • 再利用可能なコードを作成する方が簡単です
  • 最高のテスト済みの製品を追跡できます プラクティス
  • 固体マイクロアーキテクチャへのアクセス フレームワーク(Robotlegs、Swiz、PureMVC、 Mate、Parsley、et al)
  • 高速化
  • FlashまたはJustだけで動けない フレックス、両方のコンポーネントへのアクセス ライブラリ
  • 新しいプレーヤー機能を活用する
  • ライブラリのロードへのアクセス as3が登場しました
  • 次のような技術を使用する能力 Flash Catalyst
  • 効率を改善する堅牢なIDE 大規模なチームと連携する能力
  • f'nタイムラインに関連付けられていません。

私にとって選択肢はFlash / AS2とFlex / AS3ではありません-Flashを失うことはありません...まったくありません。獲得できるのは、Flash、Flex、および純粋なAS3です。

100,000行のアプリケーションをAS2からAS3に移植することは、かかる時間を考慮して、ゼロから完全に再構築することと実際にはほとんど変わらないことをお勧めします。あなたが見つけることは、それらの100,000行の多くは必要さえないかもしれないということです。そして、コードに何らかの種類のフレームワークなどが含まれている場合、これらを自分で移植する必要があるかもしれないので、私はさらに心配しています。その時点であなたは再び始めたばかりかもしれません。クライアントは、このプロジェクトの存続期間について考える必要があります。数年未満であれば、気にしないでください。このアプリがビジネス全体である場合は、バージョン2.0の時間と言います。AS3の機能を書き換えている間は、アプリの機能と使いやすさを改善するのに時間がかかります。

AS3はAS2よりも優れていません

私はこのAS2バッシング全体を完全に理解していません... AS2の大きな可能性を実際に理解しているように見える人はごくわずかです... AS2はRubyと比較できますが、AS3はJava 10年前でした...はい、遅いですが、AS3よりもはるかに強力で表現力があります... AS3が持っている基本的な機能やAS2が持っていない基本的な機能については知りません(言語とAPIを混同しないでください)、適切なエラー処理を除いて... より関連性の低いトピックについて、最近詳細を知りました ... AS3ははるかに大きなAPIにアクセスできますが、重要なことのほとんどはビジネスアプリで真剣に必要なものではありません...

AS2は非常に生産的でエレガントです。実際にAS2を最大限に活用すれば... AS3でAS2と同じ柔軟性(または少なくとも得られる最良の近似)を実現したい場合は、コード実行のスピードアップのほとんどがウィンドウの外に出ることがわかります...

AS3を使用しないでください

i am serious ... AVM2をターゲットにしたい場合は、AS3の可能な限り少ない量でMXMLを介してFlexを使用するか、 Haxe ...迅速な開発が重要な場合はFlexを使用し、パフォーマンスが重要な場合はHaxeを使用します(そうする理由は他にもありますが、より主観的です) )...

今日までAS3は行き止まりでした...言語は導入されてから少しも変更されていません...確かに、flashplayerには新しい機能がありますが、AS3は3年前のリリース以来AS3のままでした。 Vector、これは非常に奇妙なことです... AS1からAS2に3年、AS2からAS3に別の3年かかったことに注意してください...そしてAS4の時間ですが、Adobeはそうではないようですそのようなものに取り組みます...代わりに、彼らは製品パレットをますます拡大することに集中します...

何をすべきか

サブテキストに、10万行のスパゲッティコードがあるという印象を受けました...実際の問題は言語ではなくコードです...あなたが書き換える必要がある...あなたが理にかなっていると思うなら、AS2で書き換えることもできます(ただし、代わりにHaxeの使用をお勧めします)...実際にAS2を使用する唯一のポイントは、運が良ければ、いくつかの実装をコピーアンドペーストできることです...使用する言語が提供する最高のものを使用して、OOP、AOP、FPのサブセット(Haxe / AVM1がこれらすべてを許可する)またはMXMLで許可されている宣言型アプローチを使用して、きれいなアプリをゼロから構築する必要があります...

コストである明白な問題を除いて、書き直しのための詐欺はありません...プロはあなたがより良いコードベースを手に入れることです、それはより保守的で、柔軟性があり、おそらくより良いパフォーマンス、あるいは少なくともプロファイリングと後の最適化が容易になります... 開発者が怠け者であるという理由だけで、優れたコードを作成する場合、言語の表現力が要因となりますが、それ以外は、パフォーマンスと生産性以外には何の影響もありません...

クライアントに関しては...

...彼らに簡単な真実を伝えることをお勧めします:彼らは可能な限り最低価格で機能の固定セットを提供するソフトウェアを持つことができます(おそらくあなたの場合、それは彼らが現在持っているものです)、または柔軟/拡張可能/適切に設計されたソフトウェアを使用できます...後者を選択した場合でも、書き換えなどの抜本的なステップを踏む必要があることを時々受け入れなければなりません...コードの絶え間ない劣化これは否定できない現象です...ソフトウェアを設計するとき、どの方向に進化するか、できない方向に進むか、そして機能を実装するために追加されたダーティハックのあいまいなウェブソフトウェアがレイアウトされていなかったため、

アプリケーションコードベースのアップグレードを検討する前に、ハードウェアをスケーリングします(特に、アップグレードが難しいと思われる場合)。ハードウェアの拡張は、より迅速かつ安価になります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top