【Js-004】殺人和投票的業(yè)務(wù)邏輯上有什么區(qū)別?

大家好,我是IT修真院北京分院第27期學(xué)員,一枚正直善良的前端程序員今天跟大家分享一下前端知識點。

今天講下深度思考中的知識點

————?dú)⑷撕屯镀钡臉I(yè)務(wù)邏輯上有什么區(qū)別?

1.背景介紹

業(yè)務(wù)邏輯是什么?

不同的項目有不同的功能,不同的功能需要不同的實現(xiàn),實現(xiàn)這些核心功能的代碼就叫業(yè)務(wù)邏輯。

2.知識剖析

讓你實現(xiàn)一個功能,給你兩個數(shù),讓你獲取它的和,你所寫的如何才能獲得任意給定的兩個數(shù)的和,這個程序?qū)崿F(xiàn)過程稱為業(yè)務(wù)邏輯處理。

就像家里規(guī)矩–“吃飯前必須洗手”“有客人來要起立”-就是業(yè)務(wù)邏輯的生活化實例。

簡單來就是在怎么做事(how to do), 比方說你去餐館吃飯, 你點了個炒米粉,服務(wù)員給你下單,廚房見到單后下鍋給你炒,你吃完后付賬。這一些列動作都可以說是業(yè)務(wù)邏輯。

業(yè)務(wù)邏輯就是客戶的邏輯。在 N 層架構(gòu)的系統(tǒng)中,經(jīng)常會提到這些名詞。

表現(xiàn)層(Presentation layer) 業(yè)務(wù)邏輯層(Application layer)數(shù)據(jù)訪問層(Data layer) ,在一個系統(tǒng)開發(fā)過程中,后臺做一些處理,如果成功,則跳轉(zhuǎn)到 success_xxx 頁面,如果失敗,則跳轉(zhuǎn)到fail_xxx 頁面,如果系統(tǒng)拋出了異常,則跳轉(zhuǎn)到 5xx 頁面,…… 這些屬于頁面邏輯。

還有一些持久層的邏輯,也就是對數(shù)據(jù)庫的操作。

業(yè)務(wù)邏輯是核心邏輯,只關(guān)注用戶的業(yè)務(wù),比如管理系統(tǒng)和財務(wù)系統(tǒng),需要處理的業(yè)務(wù)肯定不一樣,但是頁面的跳轉(zhuǎn)大致相同,對于持久層的操作也差不多。如果你使用了 SSH 框架,那么 hibernate 和 struts 的代碼有很大一部分可以復(fù)用

業(yè)務(wù)邏輯(BL Action)不關(guān)心頁面如何跳轉(zhuǎn),只是簡單的返回成功,或是失敗,或是異常,struts 框架根據(jù)配置文件跳轉(zhuǎn)到相應(yīng)的頁面。

業(yè)務(wù)邏輯也不關(guān)心數(shù)據(jù)如何存儲,是存儲在文件系統(tǒng),還是存儲在數(shù)據(jù)庫系統(tǒng)。是存儲在MySQL,還是NoSQL。也不關(guān)系到底用沒用緩存。

3.常見問題

那么我們今天的主題

——?dú)⑷撕屯镀钡臉I(yè)務(wù)邏輯上有什么區(qū)別?

4.解決方案

實際上就是如何設(shè)置彼此的權(quán)限,以及定義游戲結(jié)束。

剛才講過,程序?qū)崿F(xiàn)過程稱為業(yè)務(wù)邏輯處理。

程序?qū)崿F(xiàn)的過程——獲取上個頁面設(shè)置的玩家數(shù)量,和玩家身份

如何定義死亡?

具體場景具體定義,比如用戶眼中:頭像變暗了(畫個叉叉,寫個死亡之類),不可點擊和其他操作。程序上:要清除他的身份和號碼。

殺手怎么殺人?

殺手殺人要滿足當(dāng)殺手人數(shù)過多時,被殺對象不是殺手,以及活著進(jìn)入到殺人環(huán)節(jié)。

投票要怎么投死人?

投票也要滿足少數(shù)服從多數(shù)的原則,要考慮到當(dāng)票數(shù)相等時會出現(xiàn)什么情況?

1,是要進(jìn)入下一個環(huán)節(jié)。

2,或者是兩個被投票者雙雙出局。

3,還是不許出現(xiàn)這種情況, 必須要決定投一個人,否則判定殺手勝利。

——這些都是要在寫程序之前說清楚,然后用程序?qū)崿F(xiàn)的。

如何定義游戲結(jié)束?

因為寫的是簡易版的殺人游戲,所以這里就討論簡易版的相關(guān)規(guī)則,

平民勝利規(guī)則:平民只有一種勝利方式,當(dāng)殺手一方全部被投死的時候。

殺手勝利規(guī)則:平民一方死光了,或者進(jìn)入到下一輪的參與人數(shù)<=2時。(因為此時為了活命,雙方會互相投票,出現(xiàn)死循環(huán),這種情況直接定義殺手勝利)


5.更多討論

Q1:提問人:藍(lán)裕偉


A1:回答人:李浩

回答:能夠繼續(xù)殺人和投票,因為殺人是取決于點擊確認(rèn)按鈕的,之前的刷新不影響這個。

Q2:提問人:吳浩杰

A2:回答人:李浩

回答:

平民勝利規(guī)則:平民只有一種勝利方式,當(dāng)殺手一方全部被投死的時候。

殺手勝利規(guī)則:平民一方死光了,或者進(jìn)入到下一輪的參與人數(shù)<=2時。

Q3:提問人:郭建峰

A3:回答人:李浩

回答:

因為第一天黑夜一定死亡的是平民,

用sessionStorage來存儲date的天數(shù),

然后做一個if...else判斷就可以了。


個人拙見,多多指教

感謝閱讀

github-PPT鏈接

https://ptteng.github.io/WEB/ppt/JS-04-service-logic.html#/

騰訊視頻鏈接

v.qq.com/x/page/n051999g5gs.html

-----------------------------------------------------------------------------------------------------------------------------------

人生苦短,想學(xué)Python。

著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容