あらすじ
※この商品はタブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字だけを拡大することや、文字列のハイライト、検索、辞書の参照、引用などの機能が使用できません。
マンガと図解を駆使したシステム方式設計の入門書
誰もが悩む「エラー制御」「排他制御」を徹底解説
本書の最大の特徴は、マンガと図解を駆使していることです。システム設計は抽象的でなかなか理解しづらく、教えるほうも「どのように教えればいいのかわからない」と頭を抱えることが少なくありません。だからこそ、図解が有効です。
本書は前著『トラブル知らずのシステム設計』の第2弾に当たり、システム設計で誰もが頭を悩ます「エラー制御」と「排他制御」に絞って解説しています。
エラー制御では、「いつ」「どこで」「どのように」エラーチェックするか、エラーが発生した後、利用者にどのように案内すればいいのかを、一つひとつ丁寧に解説しています。
排他制御では、「DBの行ロック」「楽観ロック」「悲観ロック」を解説するほか、オンライン処理とバッチ処理の共存で起こる問題にも踏み込んでいます。
エラー制御/排他制御をスマートに設計できれば一人前。ぜひ、本書でマスターしてください。
感情タグBEST3
Posted by ブクログ
マンガなので情報量は薄いですが、大きく2つのテーマ(入力チェックとロック)しか取り上げていないので、その部分の知識がピンポイントで必要な人間にとっては十分な情報量です。こういうマンガ形式は広くやろうとすると薄くせざるを得ないので、テーマを極狭にして専門的な内容かつマンガでわかりやすくしている点ですごく良かったです。
・業務トランザクションとDBトランザクションを意識した排他制御
・楽観ロックと悲観ロック、行ロックの組み合わせ
・オンライン処理とバッチ処理の組み合わせ
上記を意識した設計とそれぞれの問題がわかりやすく、実務で謎のロックが起こる際の原因箇所の想定、ロックのテストをするときのポイントがつかめて助かりました。
求めていた部分ドンピシャ
Posted by ブクログ
エラー制御はどのようなエラーがあるかや、エラー発生時のエラーメッセージ、画面でのユーザーの誘導方法を体系的に押さえられた。
また、排他制御についても、体系的に抑えられた。OLとBTがぶつかるケースが現状あまりないが、要件として今後あがることは想定されるので、押さえられてよかった。
【エラー】
◆エラー制御
・単項目
・複数項目間
・業務チェック(DBや、外部システムとの整合性)
・その他(認証、タイムアウトなど)
◆エラーメッセージ内容
・何が起こったかだけではなく、何をすべきか(解決策)をメッセージに簡潔に詰める。
◆エラーメッセージ箇所
・ポップアップ(エラーを見ながら入力不可なのに注意)
・メッセージエリア(エラー箇所がわからないことや、メッセージが見えなくなることに注意)
・項目の横(項目が見えなくなる、レイアウト崩れに注意)
◆エラー後の誘導
・再入力させる(単項目とかはこれ)
・ある画面からやり直しさせる(タイムアウトとかはこれ)
・システムエラー画面を表示して問合せさせる(OOMとかはこれ)
【排他】
◆楽観ロック
・バージョン列やタイムスタンプ列の値の違いがあった場合に更新不可とする
・バージョン列を設けるのがおすすめ
・更新実行時に検知するので、あまり更新が発生しない場合に使用する
◆悲観ロック
・ロック状態列やロックテーブルを設けて、ロック中の場合に更新不可とする
・更新実行前に検知するので、更新が多発する場合に使用する
◆DBの行ロック
・SELECT FOR UPDATEのこと
ロックのときは必ず使う
・楽観ロック、悲観ロックどちらでも使う
※楽観ロックでは、バージョンの突き合わせ時
※悲観ロックでは、ロック状態確認時
◆ロックで気をつけること
・1テーブルにロックの種類が混在すると、整合性を取れなくなるケースが出るので、テーブルごとに使用するロックの種類は1つにする。(そういう論理テーブル設計をする)
・排他の期間は短ければ短いほどよい。
※楽観ロックだと、期間が長いほど更新失敗のケースが増える
※悲観ロックだと、期間が長いほどはなから更新できないケースが増える