チケット #36043

コードリファクタリング

登録: 2016-02-21 16:00 最終更新: 2016-08-02 12:00

報告者:
担当者:
チケットの種類:
状況:
完了
コンポーネント:
マイルストーン:
優先度:
5 - 中
重要度:
5 - 中
解決法:
修正済み
ファイル:
なし
投票
点数: 0
No votes
0.0% (0/0)
0.0% (0/0)

詳細

#36028 に関連します。

コードのリファクタリングを行いたいです。

現在考えているのは具体的には次のようなものです。

  • 型安全な比較 (極力チャンネルをint等で扱わない)
  • ネスト型の partial 化 (CDTX によってネストされた型定義を partial にして別のファイルへ移す)
  • 似たようなロジックの一般化 (これは個別チケットになるかな・・・?)

チケットの履歴 (13 件中 3 件表示)

2016-02-21 16:00 更新者: chnmr0
  • 新しいチケット "コードリファクタリング" が作成されました
2016-02-21 17:18 更新者: yyagi
コメント

リファクタに賛成です。(099系のリファクタにはちょっと躊躇しますが)

ただ、私はしばらくドキュメント整備の方に注力します。すみません。

2016-02-21 19:50 更新者: chnmr0
  • 担当者(未割り当て) から chnmr0 に更新されました
コメント

了解です(099に関しては私も同意権です)。

2016-02-22 19:58 更新者: chnmr0
コメント

チャンネル定義に関する変更を rev. 919 で行いました。まだ続きます...

2016-03-15 20:01 更新者: chnmr0
コメント

rev. 929 で大幅に変更を加えました(詳細は各チケットをご覧ください)。

ツッコミどころはたくさんあると思いますが、現状の作業分をコミットしたという感じです。

まだまだ続きます...

2016-04-10 01:07 更新者: chnmr0
コメント

rev. 937 で行った大きな変更についてまとめます。

ELane (旧Eレーン) の定義

ELane は画面上に表示されるレーンと対応するようにしました。

これにあわせて ELane.RD, ELane.GtPick といった一見特殊なレーン定数は削除し、

これらに関連したロジックは適宜変更しました。

EPad (旧Eパッド) の定義

EPad は入力に対してひとつ割り当てるようにしました。

これにあわせて なにかが押されているかどうかを行う関数群で

楽器パートは指定しないようにしました(パッドだけ見ればよい)。

EPart (旧E楽器パート) の定義

Config 用とわかれていたものを統合しました。

これにより EPart.System が追加されました。

また、これにあわせて

STDGBSValue (旧 STDGBValue ) を定義しました。これは従来の D/G/B に加え、

System をメンバに含みます。

EnumConverter の追加

パッド・チャンネル・レーン間で対応をとりたいとき

このクラスの静的なメソッドで変換を行うようにしました。

疑問点などあればよろしくお願いいたします。

2016-04-11 01:23 更新者: yyagi
コメント

リファクタお疲れ様です。

Release 104と比較して、演奏動作が重くなっているようです。(サウンド飛び、スクロールがたつきが発生して、動画との同期が取れなくなっていく・・・)

どこで動作が重くなったのやら。追々調べます。(が、しばらくは時間なし。。。)

2016-04-13 00:47 更新者: chnmr0
コメント

ありがとうございます。

これは例のOOLの動画ですか?

Debug/Release/3D9Ex を試しましたがこちらでは事象を確認できませんでした。

ただ、動作は軽くしたいので、重くなってそうな場所を見なおしてみます。

2016-04-14 00:31 更新者: koh-hey
コメント

私のところでも動作が重くなる症状出ています。どのリビジョンから、というのはすぐわかりませんが今知っているのは

・リビジョン954は滑らかでしたが、曲の後半に行くとフリーズするという症状がありました。

・最新のリビジョン979はけっこうガタガタします・・。チップが多いところでガタガタするような気がします。チップが何もないところで動画がガタガタせず滑らかでした。曲の後半でフリーズするという症状はなくなっています。

いずれもチップが多いとがたつくような気がします。なおドラムのみの譜面での確認しかしておりません

あと、選曲画面でのバスドラム二度押しでの簡易コンフィグの表示が効かなくなっていますね

それにしても・・私今回のレイアウト・デザイン本当に気に入っておりまして無事105のリリースになってほしいと思っております。

2016-04-14 07:57 更新者: koh-hey
コメント

簡易コンフィグが表示されなかったというのはバスドラムのキー入力が設定されていなかったからだと思います。すみません。

2016-04-14 21:53 更新者: yyagi
コメント

私のところでは、チップの量に関係なく、重い感じ(プチフリっぽい動作)が起きるときには起きる、という感じです。(例えばoolですと、前奏でBGMがとぎれとぎれになったりすることがあります)。

そして、AP使用時間が長くなると、プチフリ度合いが増す感じ。そこで試しにCDTXManiaのDraw()ループの最後のあたりに

GC.Collect( 0, GCCollectionMode.Optimized, false );
を入れて、毎フレーム描画ごとに強制的にレベル0のGCを(バックグラウンド実行で)入れてみたところ、そこそこ改善しました。

もちろん原因が分からないのにあてずっぽうの対策を入れても仕方がありませんので、このコードを実際に入れようとは思っていませんが・・・まあ参考情報の一つとして。

キーアサインが最初全部クリアされているのは、別チケットにしましょう。

2016-06-06 03:30 更新者: yyagi
コメント

なんとなく、ConfigのSystem/UseOSTimerがONの時に、負荷問題が発生するように感じます。なぜだろうか・・・。

2016-08-02 12:00 更新者: yyagi
  • 解決法なし から 修正済み に更新されました
  • チケット完了時刻2016-08-02 12:00 に更新されました
  • マイルストーン(未割り当て) から 既存機能の仕様変更 に更新されました
  • コンポーネント(未割り当て) から DTXMania に更新されました
  • 状況オープン から 完了 に更新されました
コメント

リファクタ済みのRel105をリリースしましたので、本チケットはいったんクローズします。

リファクタ関連の要件が他にあれば、追加でチケットを発行してください。

添付ファイルリスト

添付ファイルはありません

編集

ログインしていません。ログインしていない状態では、コメントに記載者の記録が残りません。 » ログインする