喫茶 キエチーフ

......徒然ツンデレまったり雑記(更新不足とも言う)


   ここはしがない音楽屋T28が管理するブログスペースです。
     右側のメニューからどうぞ~ゆっくりしてってね!


   
  (⁰︻⁰) ☝お気軽にポチっ☆それだけで、幸せ

スポンサーサイト :: --/--/--(--)


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. スポンサー広告

11/26 オブジェクト指向?役割、責任の分担 :: 2014/11/27(Thu)


【jsファイルへのjavascriptコードの書き出しは、役割責任を考慮して行うこと】
【関数に暗黙的な条件を適用しない】
【関数はある機能専用という書き方をしない】

んなこと言われたって「は?」ですわ。
今日やっとこ役割(これがオブジェクト指向?)について理解が少し進んだ気がする。





【jsファイルへのjavascriptコードの書き出しは、役割責任を考慮して行うこと】

今実装している機能は
予約完了画面(スクリーン1)にて
・サーバからの予約情報(予約番号、予約時間、有効期限)をスクリーン1に表示
・予約情報をローカルに保存

予約情報閲覧画面(スクリーン2)にて
・ローカルに保存した予約情報、残り時間ををリスト表示する
・現在時刻と有効期限から残り時間を計算


上の機能を実現するために、

スクリーン1.html と 1.js
スクリーン2.html と 2.js

というように画面ごとにjavascriptファイルを書き出して実装していました。
・htmlファイルにjavascriptがやること(機能使用の指示?)を実装
・jsファイルに機能の具体的な処理を実装
という感じです。

んだが
画面ごとにjsファイルを分けてた意味とは・・・・・?
なし。モジュールの構築としては意味をなしていません。

スクリーン1、スクリーン2で使用している機能は共に「予約情報の管理」
ならば、「予約情報の管理.jsに予約情報管理の役割を任せる」べき。

そこで実装する機能を改めてまとめると

スクリーン1.htmlとスクリーン2.htmlにて
予約情報管理.js
・サーバからの予約情報を表示する
・予約情報をローカルに保存する
・ローカルの予約情報を読み込む
の各機能を読み込む・・・という構造で再実装しました。

機能的には何も変わっていないわけですが、管理はしやすく、読みやすくなりました。





【関数に暗黙的な条件を適用しない】

また最初の段階では、例えば予約情報を読み込むとき、「予約情報がローカルに保存してある」という条件を元に機能を使用して(関数を呼び出して)います。

これはこの機能は前提条件をクリアしていないと使用することはない仕様になっているからです。

しかし自分以外のエンジニアが、今回実装したモジュールを使用する場合、こんな暗黙的な前提条件は知ったこっちゃありません。また、仕様が変更され前提条件外での使用が行われた場合、バグの原因になってしまいます。

勝手に条件づけて関数を実装してはダメってことですね。





【関数はある機能専用という書き方をしない】

現在作っているアプリの規模が小さいからか、関数の記述がある機能専用の(他では使えない)ものになっていました。
しかし、「〇〇を行う」「☓☓を取ってくる」等の関数は役割の1つとして、あらゆる機能を実現するためにいつでも使えるようにするべき・・・とのことです。

これは言葉で書くのが難しい!・・・よく分かってないってことなんじゃないかな・・・。




テーマ:プログラミング - ジャンル:コンピュータ

  1. SW強いられまとめ
  2. | コメント:0

<<11/27 オブジェクト(javascriptの) | top | 11/25 bower(.json)について>>




comment

comment


管理者にだけ表示を許可する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。