◀Unicode版開発トップへ
  • 5 ソース整理のお話
    • 8 Re:ソース整理のお話
      • 11 Re2:ソース整理のお話
        • 13 Re3:ソース整理のお話
      • 22 Re2:ソース整理のお話
        • 24 Re3:ソース整理のお話
    • 16 Re:ソース整理のお話
    • 26 Re:ソース整理のお話
      • 40 Re2:ソース整理のお話
    • 95 Re:ソース整理のお話
  • [5] ソース整理のお話 ラスティブ 2007年11月14日 07:34

    フライングしちゃってた話題を、
    digital hole の掲示板から転載します・・・

    ―――――― ここから ――――――――――――
    唐突ですが・・・といっても、ソース整理の話題です。
    ソース整理に関して日頃から感じていることを打ち明けてみたいと
    思います。畏れながらも少し棘のあるものですけれど、基本的に
    提言したいだけでそれ以上の事を成すものではないことを何卒ご理解
    下さい。


    1.フォルダ util/ 配下などへ移動できるのではないかと思われる
      内容を含むソースファイル:

    新しく用意したフォルダに移し切れていないのではないかという
    印象を受けました。

    StaticType.h
    MY_SP.h
    MY_SP.C
    my_tchar.h
    my_icmp.h
    my_icmp.cpp


    2.関数などが探しにくくなっているのではと思うもの:
    (甘い考えかと不安になりながらも敢えて提言してみます。)

    ファイルサイズが大き過ぎるのかと確かめてみても、
    CViewCommnander.cpp が 272KB というところをみると、
    そういうわけでもないように窺えます。
    目的があって分かれているなら、この際ファイル名を明確にした方が
    見やすくなるのではないかという感想を持ちました。

    CLayoutMgr_New.cpp
    CLayoutMgr_New2.cpp
    CEditView_New.cpp
    CEditView_New2.cpp
    CEditView_New3.cpp
    charcode2.h
    Debug2.h
    Debug2.cpp
    Debug3.h
    Debug3.cpp
    etc.
    ―――――― ここまで ――――――――――――
    • [8] Re:ソース整理のお話 みく 2007年11月14日 20:49

      文書化(doxygen)も必要と思いますのでリマインダとして。

      サクラエディタ用doxygen設定ファイルって公開されてましたでしょうか。
      参考になるようにサンプルソースとdoxygenでの見え方みたいなのを作ってみようかと思ったら見つかりませんでした。
      sample.cpp メソッドの説明・引数・戻り値など
      sample.h クラス・メンバ変数・列挙型・構造体など
      • [11] Re2:ソース整理のお話 maru 2007年11月15日 02:17

        >サクラエディタ用doxygen設定ファイルって公開されてましたでしょうか。

        現在sfのWebで使用しているDoxyfileでよければ
        http://sakura-editor.sourceforge.net/other/Doxyfile
        におきました。

        このDoxyfileは、INPUTフォルダやスタイルシートなどの、パス指定が必要な項目が設定されておりません。
        • [13] Re3:ソース整理のお話 みく 2007年11月15日 20:42

          ありがとうございます。

          追記:
          http://www29.atwiki.jp/mikmik/
          にDoxygenの使い方を書きました。

          dskobaさんも書かれてますが以下の点に注意が必要です。
          ・doxygen1.5.4はUTF-8出力のみ
          ・CHM作成時はhhc,hhpをSJISに変換する
          ・Full text searchのチェックをはずす
      • [22] Re2:ソース整理のお話 dskoba 2007年11月17日 00:14

        Doxyfileではありませんが
        unicode r1176 の Doxygen出力をchm化したものを置いておきます。
        http://www.ooyashima.net/products/

        DoxygenとGraphvizのバージョンを上げてDoxyfileを上書きしてしまったため公開しているchmのDoxyfileはありません。
        新しいDoxygenの出力から作ったchmはまだありません。
        メモ
        ・Doxygen 1.5.4 は Graphviz 2.16 に対応していない
        ・Doxygen 1.5.2 以降の UTF-8 出力をchm化するとツリーが化ける
        ・CP932出力なら化けないかどうかは試していないので不明
        • [24] Re3:ソース整理のお話 dskoba 2007年11月17日 21:55

          Doxyfileを公開しました。
          http://www.ooyashima.net/sakura/Doxyfile_20071117.txt

          > ・CP932出力なら化けないかどうかは試していないので不明
          CP932での出力は出来ないようです。hhcをShift_JISに変換して解決。

    • [16] Re:ソース整理のお話 kobake 2007年11月16日 00:02

      ▼ ラスティブさん
      > 1.フォルダ util/ 配下などへ移動できるのではないかと思われる
      >   内容を含むソースファイル:
      >
      > 新しく用意したフォルダに移し切れていないのではないかという
      > 印象を受けました。
      >
      > StaticType.h
      > MY_SP.h
      > MY_SP.C
      > my_tchar.h
      > my_icmp.h
      > my_icmp.cpp

      同意です。
      そのままutilに移動で良いと思います。

      > 2.関数などが探しにくくなっているのではと思うもの:
      > (甘い考えかと不安になりながらも敢えて提言してみます。)
      >
      > ファイルサイズが大き過ぎるのかと確かめてみても、
      > CViewCommnander.cpp が 272KB というところをみると、
      > そういうわけでもないように窺えます。
      > 目的があって分かれているなら、この際ファイル名を明確にした方が
      > 見やすくなるのではないかという感想を持ちました。
      >
      > CLayoutMgr_New.cpp
      > CLayoutMgr_New2.cpp
      > CEditView_New.cpp
      > CEditView_New2.cpp
      > CEditView_New3.cpp
      > charcode2.h
      > Debug2.h
      > Debug2.cpp
      > Debug3.h
      > Debug3.cpp

      charcode2, Debug2, Debug3 は自分が作っちゃった
      きもいファイルです。。後でまとめておきます。

      「~_New」系は、よく分からないですけど、どうせまとめるなら、まとめるついでに
      メンバ関数を種類毎に探しやすくする何らかの整理を適用できたら良いなと思います。

      #ちなみに、CEditView系ファイルからは、「COMMAND_~」というメンバ関数をすべて抜き出して
       CViewCommanderに移したので、ファイルサイズが元に比べてけっこう減ってます。

      個人的には、ファイル整理は「なんかの作業のついでにやる」程度で良いと思います。
      ファイル整理そのものに時間がかかっていては本末転倒なので。
    • [26] Re:ソース整理のお話 ラスティブ 2007年11月17日 23:02

      自分のわかる範囲でやってみた感触をまとめてみます。参考になれば。

      とりあえず bregonig.h は必要な構造体の宣言を CBregexpDll2.h に
      移すだけで除去できそうです。

      my_tchar.h
      my_icmp.h
      my_icmp.cpp

      上記3つのファイルは util/string_ex.h へ統合できそうです。
      が、観察していると大文字小文字を区別しない比較関数の種類が
      2つあることに今更気づいて困惑しました。

      種類1.7-bit ASCII, UTF16Mini 専用
      種類2.SJIS, UTF16Mini 専用
      (UTF16Mini: UTF-16 のサロゲートペアおよび組み合わせ文字列を
      考慮しない版みたいなものに今付けたあだ名)

      あと、TCHAR依存系とauto_~系とが陣地争いしているように
      見えてしまうのは、読み間違えでしょうか。

      MY_SP.h
      MY_SP.c

      上記2つは内容そのままに util/file.h, util/file.cpp へ
      転居出来そうです。といっても、C++用に多少手を加えないと
      型チェックに引っ掛ってコンパイルできませんでした。

      charcode2.h

      今の charcode.h は改めて見ると・・・
      バイナリフィルタ機能(変な文字発見器)がそれの主を占めていて、
      CESIやCCodeFactoryなどと運命共同体みたいな状態になっちゃって
      いるので、いっそのこと charcode.h に入っているのをどっかに
      転居して頂いて、charcode2.h を charcode.h に改名すれば
      いいのなかと思ったり。試してないので実際のところわかりません。


      ▼ kobake さん(>>16)
      > 個人的には、ファイル整理は「なんかの作業のついでにやる」
      > 程度で良いと思います。ファイル整理そのものに時間が
      > かかっていては本末転倒なので。

      ご尤もです。

      ファイル整理の延長線上にある狙いは、ライセンス問題の
      解決だったりしますので、たとえ徒労に終わっても、
      長い目で見て効果があるはず・・・と見るのはどうも甘い
      ですね。
      • [40] Re2:ソース整理のお話 ラスティブ 2007年11月19日 01:01

        一応、話題に出した内容に関するパッチをアップしておきます。
        Sourceforgeやdigital holeのpukiwikiにあるバグ情報に追加
        してもよかったのでしょうけれど少しご遠慮させていただいて。

        場所:http://groups.yahoo.co.jp/group/sakura-editor/files/Developer/Source/
        ファイル名:maintenance__r1184.tgz

        CFilePath.h に何故かパッチが当たらないので、
        #include "StaticType.h"
        を
        #include "util/StaticType.h"
        にエディタで変更してやってください。
    • [95] Re:ソース整理のお話 kobake 2007年12月13日 20:17

      パッチ作成し直しました。
      CFilePath.hにパッチが適用できないのは、たぶんリポジトリ側ソースの
      文字コード判別に問題があるのかな、と思ってます。
      http://sakura-editor.sourceforge.net/cgi-bin/cyclamen/cyclamen.cgi?log=dev&ol=200604&tree=s4406#4418

      CFilePath.h はパッチでは無くアーカイブに含めてあります。
      上記URL内に書かれている対処を施してみました。