コーディングTips

コードの共通化

別々のクラスで、同じソースが使いまわしされていた(コピペコード)場合の対応 今まで "重複は悪" の考えの下、何が何でも処理を共有しようとがんばる。 その為、複雑なつくりになってしまったこともある。 これから 同じ処理であっても、その操作が対象と…

Undo

Undoバッファのインターフェイスなクラス。 UndoBufferTargetはUndoBufferがビューの状態を操作する際の仲介役。/// <summary> /// アンドゥバッファ基本クラス /// </summary> public abstract class UndoBuffer { /// <summary> /// 子 /// </summary> /// <remarks> /// 最後に入力した状態がリストの先頭</remarks>…

実装パターン

読んで気になったところをメモ メソッドの名前 public class Employee { public int EmpNo; public String Name; ... } public class EmployeeManager { //どっちも社員を取得するメソッド public Employee getEmployeeInfo(int emp_no){ ... } public Emplo…

インターフェイスに色を付ける

インターフェイス設計の際に考慮する項目 public Interface ISomethingProcesser { void process() } public Interface ISomethingProcesser2 { void process(SomethingData s_data) } public Interface ISomethingProcesser3 { void process(SomethingData …

オブジェクトの生存期間について

なるべく短くなるように設計、実装する。 短い方が管理しやすい。(生成し、用が済んだらさっさと解放する感じ。) 書き方によって生存期間が変わる1 public class SomethingProcesser { public SomethingProcesser(SomethingData s_data) public void proce…

入力コントロールについて

数字、日付を入力する項目は可能な限りそれ用のコントロールを使用する。 TextBoxで入力チェックや入力制限をかけるよりよほどコスト的にも可用性も高いと思う。 そんな単純なことに今更ながら気づいた。。。

クラス・データ配置

物理的な構造と、クラス・データ構造をそろえる。 それに関係して、処理クラスが駆動元コンポーネントに配置されているかを常に確認する。

今までのプログラミングTipsまとめ

これらを常日頃に考えて設計・製造を行う。

クラス利用者の心得

ClassAのmethodAAA()はClassAの初期化メソッドinit()が呼び出されていない場合には、 内部で呼び出すような処理になっている。 その為にClassAを利用する側では初期化処理init()を呼び出さず、直接methodAAA() を呼び出す。 →こういう場合、利用側のコードは…

今日の反省

・スレッド間の同期取りは本当によく考えて、最小範囲のみに使用する。範囲が大きすぎる・使用箇所が多すぎると、スレッド処理をしているのに逐次処理と変わらなくなるよ。・設計が正しく行われているかのチェック方法。関係するクラスとやりとりされるデー…

関係のあるデータを複数箇所で管理する場合

上記のようなことになった場合、まずはデータを 1,ベースとなるデータ 2,ベースを加工して使用するデータ(利用側) に分けて考える。その上で、 利用側データに対応するベースデータへの参照を持たせる(リンクを張る) ベースとなるデータは並び変えや削除…

理論的に考える

例) 欠陥数を取得したい。 //欠陥情報 class DetectInfo { public int 欠陥No public int 欠陥名称 public Color 分類色 } class Working() { DetectInfo[] d_infos; public void Working() { d_infos = 欠陥情報取得(); //発生欠陥をカウントアップクラスの…

データの生成、受け渡しタイミング

必要な時に必要な物だけを生成・受け渡しする。 これは強くすること!!! -> 無駄なデータの保持やたらい回しが無くなる。

データの管理者とデータの表示者の関連

データに表示先の参照を持たせておく。

クラス作成その前に

「○○な処理をするのには、□□と△△が必要になる。 現状ではクラスAは●●を持っていて、クラスBは▲▲を持っている。」現状とやりたい処理・それに必要なデータから、どういった流れでコーディングを行うか決める。 そこでクラスが必要ならば作成すれば良いし、別…