行為驅(qū)動(dòng)開(kāi)發(fā)

原文鏈接:https://dannorth.net/whats-in-a-story/

行為驅(qū)動(dòng)開(kāi)發(fā)是一種由外到內(nèi)的開(kāi)發(fā)方式总滩。它首先從外部定義業(yè)務(wù)成果闰渔,再深入到能實(shí)現(xiàn)這些成果的特性集合中去向挖。每個(gè)特征都會(huì)轉(zhuǎn)化成相應(yīng)的包含了驗(yàn)收準(zhǔn)則和范圍的“故事”何之。這篇文章介紹行為驅(qū)動(dòng)開(kāi)發(fā)的實(shí)現(xiàn)方式,定義和標(biāo)識(shí)故事及其驗(yàn)收標(biāo)準(zhǔn)蒜危。

介紹

軟件交付是關(guān)于編寫軟件來(lái)實(shí)現(xiàn)業(yè)務(wù)功能的部翘。聽(tīng)起來(lái)容易新思,但總是有政治或者環(huán)境因素使我們忘記初衷夹囚。有時(shí)候軟件交付就表現(xiàn)得像遞交報(bào)告來(lái)迎合高層管理人員,或者僅是創(chuàng)建“忙碌的工作”來(lái)保持人們持續(xù)支付費(fèi)用鞍历。額堰燎。秆剪。仅讽。我們還是另開(kāi)題目改天再討論軟件交付吧。

業(yè)務(wù)功能開(kāi)發(fā)通常是很粗糙的徽千,其表現(xiàn)為直接編寫程序(你是怎么開(kāi)始編寫“節(jié)省5%的運(yùn)營(yíng)成本”功能的?)牍汹。所以我們需要用某些中介形式定義需求來(lái)讓工作美滿完成慎菲。

行為驅(qū)動(dòng)開(kāi)發(fā)就是瞄準(zhǔn)你能將需求轉(zhuǎn)化成實(shí)現(xiàn)睬棚,編寫可測(cè)試的,生產(chǎn)環(huán)境可運(yùn)行的新荤,簡(jiǎn)單篱瞎,高效的代碼的這個(gè)環(huán)節(jié)牵素,當(dāng)然前提是需求是清晰明確,每個(gè)人都能理解的赠幕。為了做這項(xiàng)工作,我們需要一種讓業(yè)務(wù)人員逆屡,分析師,開(kāi)發(fā)者和測(cè)試者都明白需求是怎么實(shí)現(xiàn)滿足的方法來(lái)描述需求挨约。由此大家都能同意這項(xiàng)工作“完成”。借此我們能避開(kāi)“這不是我想要的”和“我忘記告訴你還有其他情況”夕土。

接下來(lái)我們講解“故事”的規(guī)則拷获。它必須用于描敘需求和它的業(yè)務(wù)效益赢笨,其包含一組所有人都同意“完成”的標(biāo)準(zhǔn)。這是一個(gè)比其他敏捷方法更為嚴(yán)謹(jǐn)?shù)亩x桐筏。這個(gè)描述等同于“一個(gè)場(chǎng)景下的承諾”和“一個(gè)特征的描述”除破。一個(gè)“故事”可以描述非功能性需求,只要它的工作可以度量剖毯,評(píng)估和同意土铺。

“故事”的結(jié)構(gòu)

行為驅(qū)動(dòng)開(kāi)發(fā)提供一個(gè)結(jié)構(gòu)給一個(gè)“故事”,這不是強(qiáng)制要求的,你可以用不同的故事形式來(lái)做行為驅(qū)動(dòng)開(kāi)發(fā)赫蛇。但我在這里仍然要展示例子給你,因?yàn)檫@已經(jīng)在不同形態(tài)大小的項(xiàng)目中證明能夠工作雾叭。最起碼的要求悟耘,你的“故事”必須在模板中包含所有描述元素≈“故事”模板大概是這樣的:

標(biāo)題(用一行來(lái)描述故事)
敘事:
作為(一個(gè)角色)
我想要(某些特征)
因此我可以得到(收益暂幼,效益)
驗(yàn)收標(biāo)準(zhǔn):(場(chǎng)景描述)
場(chǎng)景1:標(biāo)題xx
給定 (語(yǔ)境)
和(更多語(yǔ)境)
當(dāng)(某個(gè)事件發(fā)生)
就會(huì)有(某個(gè)結(jié)果)
和(某個(gè)結(jié)果)

場(chǎng)景2:...
Title (one line describing the story)
 
Narrative:
As a [role]
I want [feature]
So that [benefit]
 
Acceptance Criteria: (presented as Scenarios)
 
Scenario 1: Title
Given [context]
  And [some more context]...
When  [event]
Then  [outcome]
  And [another outcome]...
 
Scenario 2: ...

"講故事"

一個(gè)故事應(yīng)該能夠轉(zhuǎn)化成有幾個(gè)人參與的對(duì)話。業(yè)務(wù)分析師跟業(yè)務(wù)相關(guān)的人員討論特性或者需求赚瘦,然后幫助他們構(gòu)建“故事”的描述粟誓。測(cè)試人員幫助定義“故事”的描述范圍--寫在表格的驗(yàn)收標(biāo)準(zhǔn)奏寨,也幫助決定哪些場(chǎng)景重要起意,哪些是無(wú)用的。技術(shù)代表會(huì)提供一個(gè)大概的關(guān)于“故事”包含了哪些工作的評(píng)估病瞳,提供可選擇的實(shí)現(xiàn)方式揽咕。好多關(guān)于系統(tǒng)的好主意都是來(lái)自開(kāi)發(fā)和第一個(gè)要求這個(gè)事情的人。

這做起來(lái)像一個(gè)迭代過(guò)程套菜。相關(guān)人員會(huì)產(chǎn)生關(guān)于想要什么的想法亲善。但他們通常不知道有多少工作要被包含進(jìn)來(lái),或者工作是怎么分配的逗柴。通過(guò)技術(shù)專家和測(cè)試專家的幫助蛹头,他們會(huì)明白每個(gè)場(chǎng)景的花費(fèi)和收益,并決定他們是否需要戏溺。當(dāng)然渣蜗,這是與另外一個(gè)需求相關(guān)的,我們要決定先覆蓋更多這個(gè)“故事”的場(chǎng)景還是先覆蓋另外一個(gè)“故事”的場(chǎng)景旷祸。

有時(shí)候開(kāi)發(fā)團(tuán)隊(duì)做的工作評(píng)估可能不是很好耕拷。這種情況下,為了更加清晰理解需求托享,他們可以選擇進(jìn)行一些調(diào)查工作(類似極限編程里面的spike概念)骚烧。(我將在往后的文章中討論更多細(xì)節(jié)浸赫。)

一個(gè)好“故事”的特征

使用《介紹行為驅(qū)動(dòng)開(kāi)發(fā)》里面的例子,讓我們來(lái)一起觀察關(guān)于ATM提款這個(gè)需求需求赃绊。

故事:賬戶持有人提取現(xiàn)金

作為一個(gè)賬戶持有人既峡。
我想從ATM中提取現(xiàn)金。
這樣就算銀行營(yíng)業(yè)廳關(guān)門碧查,我都能夠取到錢涧狮。

場(chǎng)景1:賬戶里面有足夠的資金
假設(shè) 賬戶里面有300元
而且 銀行卡是合法的
而且 ATM里面存放了足夠的錢
當(dāng) 賬戶持有人請(qǐng)求提取200元
因此 ATM機(jī)器應(yīng)該吐出200元
而且 賬戶里面的余額該為100元
而且 銀行卡應(yīng)該會(huì)被退返

場(chǎng)景2:賬戶里面沒(méi)有足夠的資金
假設(shè) 賬戶里面有100元
而且 銀行卡是合法的
而且 ATM里面存放了足夠的錢
當(dāng) 賬戶持有人請(qǐng)求提取200元
因此 ATM機(jī)器不應(yīng)該吐出任何錢
而且 ATM機(jī)器會(huì)說(shuō)賬戶余額不足
而且 賬戶里面的余額該為100元
而且 銀行卡應(yīng)該會(huì)被退返

場(chǎng)景3:銀行卡已經(jīng)被取消
假設(shè) 銀行卡已經(jīng)被取消
當(dāng) 賬戶持有人請(qǐng)求提取200元
因此 ATM機(jī)器收回這張銀行卡
而且 ATM機(jī)器會(huì)說(shuō)銀行卡已經(jīng)被收回

場(chǎng)景4:銀行卡已經(jīng)被取消
code here...

你能看到,這里有很多場(chǎng)景需要考慮么夫,有些是關(guān)于賬戶余額的者冤,有些是銀行卡的,有些是關(guān)于ATM機(jī)器自身的档痪。讓我們一起來(lái)分析故事是否足夠優(yōu)秀涉枫。

標(biāo)題應(yīng)該描述一項(xiàng)活動(dòng)

“故事”的標(biāo)題,“賬戶持有人提取現(xiàn)金”腐螟,描述了一個(gè)關(guān)于賬戶持有人提款的活動(dòng)愿汰。賬戶持有人沒(méi)辦法從ATM提取現(xiàn)金直到我們完成這個(gè)特征。一旦我們交付乐纸,我們會(huì)得到一個(gè)很明確的“完成”標(biāo)識(shí)來(lái)表示是否完成衬廷。

如果我們的標(biāo)題是“帳戶管理”或者“ATM工作方式”,我們必須話費(fèi)時(shí)間去看內(nèi)容才能明白怎么算完成汽绢,而且界定范圍可能更加模糊吗跋。舉個(gè)例子,“帳戶管理”可能不合適做申請(qǐng)貸款宁昭,而且“ATM工作方式”可能包括改變我銀行卡的PIN碼跌宛。“故事”標(biāo)題應(yīng)該總是描述一個(gè)系統(tǒng)用戶的實(shí)際行為积仗。

描述應(yīng)該包含角色疆拘,特征,收益

模板做為一個(gè)“X角色”寂曹,我想要“Y特征”哎迄,由此得到“Z收益”有很多好處。在敘述中明確角色隆圆,你會(huì)明白誰(shuí)在討論“特征”漱挚。在敘述中明確收益,你會(huì)明白“故事”的作者為什么他們會(huì)想要這個(gè)“特征”匾灶。

有意思的是如果你發(fā)現(xiàn)你寫的特征不能實(shí)際地表達(dá)收益棱烂。這通常意味著你有一個(gè)失蹤的故事。一個(gè)故事是描述當(dāng)前特征阶女,表達(dá)的收益卻不相同颊糜,意味著這是一個(gè)隱藏故事哩治,你需要編寫不同的特征來(lái)表達(dá)收益。

故事例子告訴我們有一個(gè)賬戶持有人關(guān)心所交付的功能衬鱼,因此我們知道怎么去探索這個(gè)功能需要做的事情业筏。

情景的標(biāo)題應(yīng)該說(shuō)明有什么不同

你應(yīng)該有能力將場(chǎng)景排列出來(lái),同時(shí)僅僅是使用題目來(lái)描述他們的不同鸟赫。在我們的例子當(dāng)中蒜胖,我們可以看到情景描述僅僅說(shuō)明每個(gè)場(chǎng)景之間的差異。你不用在標(biāo)題中寫“一個(gè)賬戶持有人從一個(gè)資金不足的賬戶中提取金錢抛蚤,他不能夠完成交易”台谢。同時(shí),這個(gè)場(chǎng)景對(duì)比其他場(chǎng)景你是否關(guān)心是很明顯的岁经。

場(chǎng)景應(yīng)該是基于給定的描述朋沮,事件和結(jié)果

應(yīng)用行為驅(qū)動(dòng)開(kāi)發(fā)方法,這在團(tuán)隊(duì)中是簡(jiǎn)單強(qiáng)大的行為轉(zhuǎn)移缀壤。用“假定/當(dāng)/然后”詞匯就可以使業(yè)務(wù)人員樊拓,分析師,測(cè)試人員塘慕,開(kāi)發(fā)者共同發(fā)現(xiàn)一個(gè)模糊的世界消失了筋夏。

不是所有場(chǎng)景都這么簡(jiǎn)單。事件序列是最好的表現(xiàn)图呢。描述為“假設(shè)(某些內(nèi)容)条篷,當(dāng)(我做某事),就會(huì)(產(chǎn)生某個(gè)結(jié)果)岳瞭,當(dāng)(我做另外的事情)拥娄,就會(huì)(發(fā)生另外的事情)蚊锹,如此繼續(xù)瞳筏。一個(gè)例子就是向?qū)骄W(wǎng)站(你會(huì)一步一步進(jìn)入場(chǎng)景,來(lái)構(gòu)建你的數(shù)據(jù)模型)牡昆。這完美地將事件結(jié)果序列混合在一起姚炕,只要你有這方面思考的習(xí)慣。

一個(gè)有趣且緊急的行為是對(duì)話質(zhì)量改變丢烘。你會(huì)很快發(fā)現(xiàn)你有錯(cuò)誤的假設(shè)柱宦,或者忘記驗(yàn)證結(jié)果。這是我在一個(gè)特別的項(xiàng)目中觀察到的播瞳,他們的技術(shù)負(fù)責(zé)人告訴我掸刊,有些時(shí)候,分析師和工程師討論問(wèn)題赢乓,但他們都沒(méi)有辦法來(lái)展示他們的意圖忧侧。介紹了幾日“假定/當(dāng)/就”詞匯之后石窑,他就能看到他們的交流有非常優(yōu)秀的提升。

在不超過(guò)所需的背景的前提下蚓炬,“假設(shè)”應(yīng)確定所有條件松逊。

不論是從技術(shù)上還是業(yè)務(wù)上,任何附加的條件都會(huì)令第一次閱讀“故事”的人感覺(jué)理解困難肯夏。缺少假定的情況同理经宏。如果你從相同的假定條件中能夠得到不同的結(jié)果,這肯定少了某些假設(shè)情況驯击。

在例子中烁兰,第一個(gè)場(chǎng)景說(shuō)了某些關(guān)于賬戶余額的情況,銀行徊都,ATM機(jī)器缚柏。所有這些都要求完整地定義場(chǎng)景。在第三個(gè)場(chǎng)景中碟贾,我們不說(shuō)任何有關(guān)賬戶余額的事情币喧,或者ATM是否有足夠的資金。這表明機(jī)器會(huì)收回銀行卡無(wú)論賬戶余額剩余多少袱耽,或者ATM的機(jī)器狀態(tài)是怎么樣杀餐。

事件應(yīng)該描述特征

事件本身很簡(jiǎn)單,通常是一個(gè)簡(jiǎn)單的調(diào)用生產(chǎn)代碼朱巨。當(dāng)我們討論這個(gè)的時(shí)候史翘,某些場(chǎng)景是比這個(gè)復(fù)雜得多的,但大部分“故事”場(chǎng)景會(huì)轉(zhuǎn)化為一個(gè)單一事件冀续。他們的差別僅僅在于給定的假設(shè)內(nèi)容和得到的結(jié)果不一樣琼讽。

故事應(yīng)該足夠小來(lái)適應(yīng)迭代。

這里沒(méi)有關(guān)于怎么做迭代的硬道理或者第一定理洪唐,只要你能夠明顯地分切塊钻蹬。通常來(lái)說(shuō),如果這里有超過(guò)5個(gè)或者6個(gè)場(chǎng)景凭需,一個(gè)“故事”可能可以拆分成更小的分組问欠。

我們不能夠說(shuō)清楚ATM例子的“故事”的場(chǎng)景到底需要多少個(gè),但我懷疑這里需要幾個(gè)甚至更多粒蜈。本質(zhì)上來(lái)說(shuō)顺献,我們?cè)谶@個(gè)故事里面有三個(gè)moving part,分別命名為賬戶余額枯怖,銀行卡狀態(tài)注整,和ATM狀態(tài)。我們可以討論一下關(guān)于銀行卡的細(xì)節(jié):如果它過(guò)期了會(huì)怎么樣?我不能夠用它提款肿轨,但ATM仍然會(huì)返回給我嗎借浊?如果ATM在交易過(guò)程中發(fā)生故障會(huì)怎樣?如果我的賬戶有透支的情況呢萝招?

這可能將一個(gè)“故事”分拆成三個(gè)“故事”更好蚂斤。

  • 賬戶持有人提取現(xiàn)金(假設(shè)ATM工作良好且銀行卡合法)
  • 賬戶持有人用非法卡提取現(xiàn)金(假設(shè)ATM工作良好)
  • 賬戶持有人在壞的ATM上提取現(xiàn)金(假設(shè)銀行卡合法)

這雖然像是故意而為之的,這讓你可以展示過(guò)程給業(yè)務(wù)團(tuán)隊(duì)槐沼,而且給你更多的數(shù)據(jù)點(diǎn)去追蹤曙蒸。重要的事情是根據(jù)業(yè)務(wù)線來(lái)決定是否要打破這個(gè)“故事”。(同時(shí)假設(shè)明確)岗钩,而不是根據(jù)技術(shù)線來(lái)做(一次是數(shù)據(jù)庫(kù)工作纽窟,一次是圖形界面工作)。這樣大家能夠展示過(guò)程兼吓,而不僅僅取決于你說(shuō)的話臂港。

跟用例之間有什么區(qū)別呢?

這是用例视搏,這就是用例审孽。對(duì)于Alistair Cockburn 描述用例的方法(),我是他的大粉絲浑娜。假設(shè)我在用例驅(qū)動(dòng)項(xiàng)目中沒(méi)有什么經(jīng)驗(yàn)佑力,我會(huì)讓其他人來(lái)做這個(gè)比較。

其次筋遭,我同意他從低精度(成果打颤,目標(biāo))到高精度的方法,因?yàn)楫?dāng)你行動(dòng)的時(shí)候漓滔,你會(huì)發(fā)現(xiàn)更多意外場(chǎng)景编饺。這意味從業(yè)務(wù)結(jié)果開(kāi)始,一直貫穿到高層次的功能領(lǐng)域响驴,這是為了深入到包含驗(yàn)收標(biāo)準(zhǔn)的特定故事透且。

在現(xiàn)實(shí)世界中,你的過(guò)程是否標(biāo)識(shí)明確或者需求描述詳細(xì)并不重要踏施。如果能夠幫助你組織你的想法石蔗,你想寫需求文檔也是好的。但畅形,如果是為了一直通過(guò)這些文檔,好像它們實(shí)際上封裝了你的想法诉探,這就有問(wèn)題了日熬,因?yàn)樗鼈儧](méi)有!你應(yīng)該將需求文檔或者用例堆放到一邊并重新開(kāi)始從業(yè)務(wù)成果中定義故事肾胯。這樣在知識(shí)方面是安全的竖席,因?yàn)槟愕那趭^工作已經(jīng)表明了所有在你腦中的答案--至少耘纱,有足夠好的理解來(lái)描述你現(xiàn)在能在看到的工作。

總結(jié)

行為驅(qū)動(dòng)開(kāi)發(fā)用故事來(lái)作為基本的工作單元毕荐,并以此來(lái)做交付束析。故事里面已經(jīng)包含了驗(yàn)收標(biāo)準(zhǔn),從效果上看憎亚,它們定義了行為的范圍员寇,同時(shí)生成了一個(gè)大家都能理解的“完成”。它也可以用來(lái)基本評(píng)估我們要做的工作計(jì)劃第美。

最重要的是,故事是項(xiàng)目負(fù)責(zé)人什往,業(yè)務(wù)分析師扳缕,測(cè)試人員,開(kāi)發(fā)者溝通交流的結(jié)果别威。行為驅(qū)動(dòng)開(kāi)發(fā)更關(guān)注的方面是不同人在項(xiàng)目中的相互作用躯舔,同時(shí)亦關(guān)注開(kāi)發(fā)過(guò)程的輸出結(jié)果。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末省古,一起剝皮案震驚了整個(gè)濱河市庸毫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌衫樊,老刑警劉巖飒赃,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異科侈,居然都是意外死亡载佳,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門臀栈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蔫慧,“玉大人,你說(shuō)我怎么就攤上這事权薯」枚悖” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵盟蚣,是天一觀的道長(zhǎng)黍析。 經(jīng)常有香客問(wèn)我,道長(zhǎng)屎开,這世上最難降的妖魔是什么阐枣? 我笑而不...
    開(kāi)封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上蔼两,老公的妹妹穿的比我還像新娘甩鳄。我一直安慰自己,他們只是感情好额划,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布妙啃。 她就那樣靜靜地躺著,像睡著了一般俊戳。 火紅的嫁衣襯著肌膚如雪揖赴。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天品抽,我揣著相機(jī)與錄音储笑,去河邊找鬼。 笑死圆恤,一個(gè)胖子當(dāng)著我的面吹牛突倍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播盆昙,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼羽历,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了淡喜?” 一聲冷哼從身側(cè)響起秕磷,我...
    開(kāi)封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎炼团,沒(méi)想到半個(gè)月后澎嚣,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瘟芝,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年易桃,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锌俱。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡晤郑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出贸宏,到底是詐尸還是另有隱情造寝,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布吭练,位于F島的核電站诫龙,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏线脚。R本人自食惡果不足惜赐稽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一叫榕、第九天 我趴在偏房一處隱蔽的房頂上張望浑侥。 院中可真熱鬧姊舵,春花似錦、人聲如沸寓落。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)伶选。三九已至史飞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間仰税,已是汗流浹背构资。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留陨簇,地道東北人吐绵。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像河绽,于是被迫代替她去往敵國(guó)和親己单。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容