*日本語でコーディングしてもコンパイルが通るみたいな話じゃないよ
言いたいこと
コーディング始めにメソッドを作るとき
パッと見何をやるかわかりにくい ↓
#region event
privatevoidForm1_MouseMove(objectsender,MouseEventArgse){IsPaintBox();}#endregion
#region method
privatevoidIsPaintBox(){if(csrPos[0]<=BOX_POS_LEFT)return;if(csrPos[0]>=BOX_POS_RIGHT)return;if(csrPos[1]<=BOX_POS_TOP)return;if(csrPos[1]>=BOX_POS_BOTTOM)return;PaintBox();}privateint[]GetMousePosition(){}privatevoidDrawBoxFrame(){}privatevoidPaintBox(){}#endregion
ので 日本語でみたら
#region イベント
マウスが動いたときのイベント(){四角に色を塗るか判断するメソッド();}#endregion
#region メソッド
マウスの位置を補足するメソッド(){}// 画面初期描写時にのみ使用する四角を描写するメソッド(){}四角に色を塗るか判断するメソッド(){マウスの位置を補足するメソッド();if(マウスの位置が四角の中なら){四角を塗るさせるメソッド();}}四角を塗るメソッド(){}#endregion
わかりやすくない? って話
問題提起
最初から英字・ローマ字でコーディングすると、めっちゃ頭がこんがらがる...
→なら日本人に合った言語=日本語でコード組み立ててみたらいいんでは
→分かりやすくなった(手間は増える)
メリット(日本語で組むとどうなる)
・わかりやすい≒見やすい → 不足点・変更点が見つけやすい
これが大きい
・そのままコメント化できる
英字で作った後にコード読み直しながら概要コメントを作らなくていい
・メソッド名を考えやすくなる
マウスが四角の上に来たら四角を塗りつぶすメソッド
→マウスが四角の上に来たら/四角を塗りつぶすメソッド
→Mouse_On_Square / Paint_Square
→Paint_Square_On_Mouse
みたいな
・メソッド作る目的の軸がブレない
GetMousePosition より マウス位置取得、の方が
目的が明確に見える ワイは見える
デメリット
・多人数プロジェクトだと 命名の仕方が人によってバラつきが出そう
日本語→英字に変える時、コーディングルールに気をつけよう
既存メソッドがあるならそれに合わせよう(既存プロジェクトなら)
・後で結局メソッド名作んなきゃなのでめんどくさい
具体例
作成するプログラムは
「カーソルを四角の中に移動させると、四角の中に色がつく」
とする
流れとして
①イベントとメソッドを1つずつ作る
②メソッドを細分化する
③メソッドへ遷移する条件分岐を考える
④足りなそうなメソッドを足す
⑤完成
の順で考える
マウスが動いたときのイベント(){四角に色を塗るか判断するメソッド();}四角に色を塗るか判断するメソッド(){}すごく大まかにつくる ↑
四角に色を塗るか判断するメソッド(){}//↓マウスの位置を補足するメソッド(){}四角を塗るメソッド(){}大まかなメソッドに、何が必要なのかを解体して考える ↑
四角に色を塗るか判断するメソッド(){マウスの位置を補足するメソッド();if(マウスの位置が四角の中なら){四角を塗るメソッド();}}マウスの位置を補足するメソッド(){}四角を塗るメソッド(){}どう遷移するかぼんやり書く↑
四角の枠を描写するメソッド(){}上の方で遷移書いてみて、足りないなーと思う機能(動作)が出たら追加する
出なければいい
マウスが動いたときのイベント(){四角に色を塗るか判断するメソッド();}四角に色を塗るか判断するメソッド(){マウスの位置を補足するメソッド();if(マウスの位置が四角の中なら){四角を塗るメソッド();}}マウスの位置を補足するメソッド(){}四角を塗るメソッド(){}四角の枠を描写するメソッド(){}みたいな
最後に
英語がわかりにくいんだ