DEC培訓(xùn)Day-1:導(dǎo)論和精益敏捷

2020年9月18日 DEC培訓(xùn)

一、Devops導(dǎo)論(董越)

概述

軟件工程

核心思想:工程化。
為了解決軟件危機(jī),用工程化方法開發(fā)軟件碳柱。要有嚴(yán)格的計(jì)劃和周期。

敏捷——>精益:消除各種浪費(fèi)

精益:定義工作目標(biāo)熬芜,定義價(jià)值莲镣,識(shí)別價(jià)值流,流動(dòng)涎拉,拉動(dòng)瑞侮,盡善盡美。

將關(guān)注點(diǎn)從自身轉(zhuǎn)移到客戶鼓拧,關(guān)注價(jià)值流半火。

持續(xù)集成

  • 為了避免獨(dú)自前進(jìn)太遠(yuǎn)
  • 頻繁測試,驗(yàn)證質(zhì)量

通常狹義毁枯、不涉及SIT慈缔、UAT等

持續(xù)交付

軟件可隨時(shí)發(fā)布上線,交付測試种玛。
持續(xù)交付是一種能力藐鹤,能夠讓給各類變更(如新特性、配置變更赂韵、缺陷修復(fù)娱节、嘗試性內(nèi)容等)以安全、快速祭示、可持續(xù)的方式交付到生產(chǎn)環(huán)境或用戶手上

架構(gòu)和技術(shù)方面

結(jié)構(gòu)化變成——>面向?qū)ο笞兂伞?gt;軟件復(fù)用
實(shí)體機(jī)——>虛擬機(jī)——>容器——>函數(shù)服務(wù)
微服務(wù)肄满、云原生
思路:盡量做到復(fù)用

DevOps誕生

原因:軟件交付的形式的巨大變化:本地安裝——>在線服務(wù)
部門墻:Dev團(tuán)隊(duì)與Ops團(tuán)隊(duì)
DevOps的目的是期待更順暢的協(xié)作:Dev、QA质涛、Ops
是“法”的維度

廣義的DevOps

將Devops在本時(shí)代下的實(shí)踐整合在一起
DevOps = 精益敏捷 + 持續(xù)交付 + 容器化 + 微服務(wù)
DevOps = Dev + QA + Sec + Ops
DevOps = 軟件開發(fā)交付運(yùn)營的最佳實(shí)踐

DevOps的優(yōu)化目標(biāo)

產(chǎn)品定義側(cè)

  • CEO稠歉、產(chǎn)品經(jīng)理
  • 設(shè)計(jì)產(chǎn)品,探索和發(fā)現(xiàn)有用價(jià)值
  • 多嘗試汇陆,盡快反饋怒炸,迅速調(diào)整

產(chǎn)品實(shí)現(xiàn)側(cè)

  • 開發(fā)、測試毡代、運(yùn)維阅羹、安全
  • 提供產(chǎn)品和服務(wù)勺疼,落地實(shí)現(xiàn)價(jià)值

——>在具體場景下的多快好省:更高產(chǎn)能捏鱼、更快響應(yīng)速度执庐、適當(dāng)的質(zhì)量、合理的成本

不是所有項(xiàng)目都適合DevOps

DevOps的十個(gè)核心策略

細(xì)粒度低耦合

不僅僅是軟件架構(gòu)导梆,也適用于組織架構(gòu)
組織架構(gòu)的考量:全棧團(tuán)隊(duì)更快速
集中辦公的效率轨淌?

工具、環(huán)境问潭、方法的優(yōu)化猿诸,可以擴(kuò)張團(tuán)隊(duì)的職能,讓團(tuán)隊(duì)提高自服務(wù)的能力

小批量持續(xù)流動(dòng)

瀑布——>Scrum——>以特性為顆粒度的交付(不再趕發(fā)布火車)
需求拆分
限制在制品數(shù)量
持續(xù)集成狡忙、持續(xù)交付
去掉發(fā)布窗口

綜合手段保證質(zhì)量和安全

擴(kuò)展測試的定義
各階段的綜合保證:綜合考慮測試的性質(zhì)放在合適的位置
“便宜”的測試梳虽,盡量左移
"貴"的測試,進(jìn)行右移

自動(dòng)化與自助化

自動(dòng)化好處:省時(shí)間灾茁、省成本窜觉、可重復(fù)、完備記錄
單個(gè)活動(dòng)的自動(dòng)化+流程的自動(dòng)化
自動(dòng)化——>自助化
工具的穩(wěn)定性

加速各項(xiàng)活動(dòng)

硬件能力
并行
避免重復(fù)
只關(guān)注增量
緩存

關(guān)注各個(gè)過程活動(dòng)中的加速

及時(shí)修復(fù)

涵蓋范圍:測試階段北专、發(fā)布后
如何實(shí)現(xiàn):及時(shí)通知禀挫、優(yōu)先處置、修不如退拓颓、便捷排查

完備記錄语婴、充分展現(xiàn)

自動(dòng)化不僅僅關(guān)注往前推動(dòng),還關(guān)注記錄

  • 工作項(xiàng)砰左、sprint backlog、看板墻
  • 流水線相關(guān)信息展現(xiàn)
  • 版本控制&制品管理
  • 對外來資產(chǎn)的管理
  • 權(quán)限管理策略
    • 組織內(nèi)開源有利于協(xié)作
  • 數(shù)據(jù)備份

保持一致性

內(nèi)容涵蓋:可重復(fù)性沦泌、標(biāo)準(zhǔn)化、組織級(jí)統(tǒng)一孩饼、運(yùn)行環(huán)境一致性
實(shí)現(xiàn)方法:規(guī)范化镀娶、內(nèi)化到工具汽畴、版本控制忍些、代碼化
有章可循的適度靈活
配置參數(shù)兩類

  • 隨著系統(tǒng)演化的升級(jí):類似源碼的管理方法
  • 對于每個(gè)具體環(huán)境的改變的變化:采用別的管理方式

協(xié)調(diào)完成整體功能

架構(gòu)層面:接口定義罢坝、接口管理嘁酿、兼容性
管理層面:SoS、SAFe娱仔、LeSS游桩、DAD
工程層面:特性涉及多個(gè)部署單元的改動(dòng)借卧、集成、發(fā)布涉及多個(gè)部署單元陪每、完整性镰吵、順序锌订、摘除與回退

基于度量的持續(xù)改進(jìn)

組織結(jié)構(gòu)與文化

1.1 關(guān)鍵思路:自主性

  • 溝通辆飘、協(xié)調(diào)需要精力
  • 協(xié)作帶來排隊(duì)和等待

特性團(tuán)隊(duì):長期的蜈项、具備交付價(jià)值所需的各種角色的、可以協(xié)同完成完整用戶價(jià)值交付的團(tuán)隊(duì)

1.2 各職能之間的協(xié)作

  • 每個(gè)團(tuán)隊(duì)都盡量是全功能的團(tuán)隊(duì)
  • 工具&環(huán)境團(tuán)隊(duì)
  • 方法&流程團(tuán)隊(duì)
  • 其他情況

1.3 負(fù)責(zé)不同開發(fā)內(nèi)容的團(tuán)隊(duì)的劃分

長期團(tuán)隊(duì)
獨(dú)立完成特性代碼改動(dòng)
運(yùn)用康威定律:通過組織的改進(jìn)跑芳,來推動(dòng)產(chǎn)品的改進(jìn)
有負(fù)責(zé)公共品的團(tuán)隊(duì)
層級(jí):還是需要部分劃分來進(jìn)行層級(jí)管理
其他情況

1.4 團(tuán)隊(duì)規(guī)模

兩個(gè)披薩原則:5-9人合適
自主 和 專注

DevOps文化

設(shè)置共同目標(biāo)
尊重和信任
及時(shí)和充分的溝通
聚焦于解決問題并改進(jìn)機(jī)制
鼓勵(lì)學(xué)習(xí)和探索
其他

二博个、精益敏捷(丁曉嬌)

基礎(chǔ)

參考書

  • 《精益思想》
  • 《看板方法》
  • 《Scrum敏捷軟件開發(fā)》

五大原則:定義價(jià)值盆佣,識(shí)別價(jià)值流,流動(dòng)虑灰,拉動(dòng)穆咐,盡善盡美佃蚜。

拉動(dòng):讓客戶按需求去拉動(dòng)庸娱,而不是硬推給客戶不想要的;只有被客戶和下游拉動(dòng)時(shí)熟尉,價(jià)值才流動(dòng)

流動(dòng):從按“部門”和“批量”轉(zhuǎn)化為“生產(chǎn)團(tuán)隊(duì)”和“連續(xù)流”

價(jià)值流中的浪費(fèi):

  1. 部分完成的工作(未被集成的代碼)
  2. 額外過程
  3. 額外特性:最大化的做當(dāng)下的需求,不要考慮額外的工作
  4. 任務(wù)調(diào)換:任務(wù)調(diào)整斤儿、切換時(shí)候的浪費(fèi)
  5. 移動(dòng):針對強(qiáng)矩陣組織,打破部門墻恐锦。不需要協(xié)調(diào)資源去做事情往果。
  6. 缺陷:提前發(fā)現(xiàn)問題一铅,成本可降低
  7. 等待:等待開發(fā)潘飘、等待測試、等待部署,都需要透明化艰毒,想辦法去消除等待
  8. 管理活動(dòng):盡量自主去解決問題

為什么要精益敏捷開發(fā)
做到多快好省。通過強(qiáng)調(diào)價(jià)值蜀肘、流動(dòng)和人員,就可以提高質(zhì)量稽屏,降低成本幌缝,加快交付速度

敏捷研發(fā)模型

Scrum:透明化、檢查反饋诫欠、持續(xù)改進(jìn)

長期:向團(tuán)隊(duì)同步價(jià)值、確定使命和目標(biāo)
中期:制定需求和版本中期規(guī)劃
迭代前:需求準(zhǔn)備浴栽,優(yōu)先級(jí)
迭代中:需求池荒叼、每日站會(huì)時(shí)間把握、暴露問題典鸡、sprint review還是需要的
兩周一回顧
3355:3個(gè)角色被廓、3個(gè)工件、5個(gè)活動(dòng)萝玷、5個(gè)價(jià)值觀

五大常見實(shí)踐:

  • 測試驅(qū)動(dòng)開發(fā)
  • 集體所有權(quán):針對代碼嫁乘,所有人員可以看到整個(gè)工程的代碼
    • 風(fēng)險(xiǎn)和效能的權(quán)衡
  • 持續(xù)集成
  • 重構(gòu):優(yōu)雅性的提升,每個(gè)迭代要解決部分技術(shù)債問題
  • 結(jié)對編程:code review的進(jìn)一步

看板方法

一種基于精益思想的軟件開發(fā)方法球碉,其五大實(shí)踐:

  • 透明化
  • 規(guī)則顯示化
  • 限制在制品
  • 管理流動(dòng)
  • 建立反饋蜓斧,持續(xù)改進(jìn)
透明化

針對不同公司、不同場景組織架構(gòu)下睁冬,浪費(fèi)的活動(dòng)定義不一樣
價(jià)值活動(dòng):需求分析挎春、編碼、……豆拨、部署
I型浪費(fèi):

  1. TO C場景下的編寫文檔
  2. 跨團(tuán)隊(duì)溝通
  3. 系統(tǒng)間聯(lián)調(diào)

II型浪費(fèi):

  1. 協(xié)調(diào)團(tuán)隊(duì)排期
  2. 部署申請
限制在制品的價(jià)值直奋、原則和方法

什么是在制品
又稱WIP,“進(jìn)行中”能交付客戶價(jià)值的工作施禾,包括待開發(fā)的需求脚线,未被集成的代碼,未測試的代碼弥搞,未部署的制品等邮绿。

為什么?

  • 精益思想之流動(dòng):小批量拓巧,讓價(jià)值流動(dòng)起來
  • 在制品越多斯碌,切換和等待產(chǎn)生,反饋環(huán)被拖長
  • 通過限制在制品肛度,有效識(shí)別和消除浪費(fèi)傻唾,加速流動(dòng)
  • 提高質(zhì)量,減少復(fù)雜度,提高專注度

基本原則

  • 限制在制品不是目的冠骄,改進(jìn)才是伪煤;限制過程也是個(gè)改進(jìn)過程
  • 人員閑置或工作閑置
  • 沒有限制是不對的
  • 更低比更高好,但不要使得組織壓力過大凛辣,開始時(shí)設(shè)置大些抱既,建立改進(jìn)驅(qū)動(dòng)力后,逐步調(diào)低
  • 停止啟動(dòng)扁誓,聚焦完成
  • 單件流"1"并不是答案

思路
限制在制品的過程就是發(fā)現(xiàn)問題和驅(qū)動(dòng)改進(jìn)的過程

方法

  • 基于列的在制品限制(更傾向)
    • 對于瓶頸處的處理方法——約束理論
      1. 挖掘策略:挖掘瓶頸處的問題防泵,并解決它
      2. 保護(hù)策略:如設(shè)置緩沖區(qū)(比如開發(fā)->測試,中間增加“待測試”緩沖區(qū))
      3. 服從策略:改善瓶頸效能所需要的變化通常不發(fā)生在瓶頸處蝗敢,關(guān)注整體端到端(可調(diào)用其他資源協(xié)助)
      4. 突破策略:比如資源增加(最后再考慮這種策略)
  • 基于整個(gè)團(tuán)隊(duì)限制
  • 按人員限制在制品

管理流動(dòng)方法
管理并監(jiān)控看板的工作流動(dòng)

  • 限制在制品
  • 顯示化等待列和實(shí)踐捷泞,并縮短等待
  • 消除阻塞,永遠(yuǎn)不要被阻塞——敏捷開發(fā)的最高指示
  • 避免返工
  • 打造跨職能團(tuán)隊(duì)
  • 設(shè)定SLA或需求前置時(shí)間目標(biāo)
  • 通過每日站會(huì)及時(shí)發(fā)現(xiàn)和跟進(jìn)阻礙流動(dòng)的問題
  • 識(shí)別和管理瓶頸

每個(gè)教練要定制適合自己團(tuán)隊(duì)的scrum+kanban研發(fā)模型

需求管理活動(dòng)

用戶故事 VS 工作故事

用戶故事:AS...(角色)寿谴,I WANT...(活動(dòng)目標(biāo))锁右,SO I CAN...(價(jià)值原因)
工作故事:WHEN...(場景),I WANT...(活動(dòng)目標(biāo))讶泰,SO I CAN...(價(jià)值原因)

基本要素:標(biāo)題咏瑟、描述、驗(yàn)收條件(DoD)痪署、優(yōu)先級(jí)码泞、大小
產(chǎn)品參與驗(yàn)收

六個(gè)特性:INVEST
從用戶角度拆到最小可測試,可獨(dú)立交付的最小用戶功能

產(chǎn)品經(jīng)理從用戶價(jià)值角度拆狼犯,RD從獨(dú)立負(fù)責(zé)人浦夷,風(fēng)險(xiǎn)可控角度去拆

要權(quán)衡管理成本,對于技術(shù)性團(tuán)隊(duì)辜王,下太重管理成本可能做不下去劈狐。

需求拆分

需求拆分是后續(xù)所有過程的基礎(chǔ)

  1. 面臨的挑戰(zhàn)
  • 如何拆出既能體現(xiàn)進(jìn)度又能在一個(gè)迭代內(nèi)完成的故事
  • 如何避免拆出瀑布型階段任務(wù)
  • 不會(huì)花費(fèi)太多時(shí)間
  • 不會(huì)迷失在網(wǎng)絡(luò)上太多的拆分方法
  1. 需求拆分方法
    復(fù)雜型故事:涉及基礎(chǔ)架構(gòu)型故事,無法拆分呐馆,占比較小
    符合型故事:包含多個(gè)更小的故事肥缔,可以拆分,占比較大
    針對業(yè)務(wù)人員汹来,需要了解無法拆分的原因续膳。

  2. SPIDR方法

5). Spikes:刺入探索法。在不知道客戶需求的情況下
2). Paths:路徑分析法收班》夭恚客戶如何使用功能,客戶路徑摔桦。
1). Interfaces:場景界面法社付。理清什么場景下客戶的需求承疲,通過什么樣的功能來滿足痛點(diǎn)。
4). Data:數(shù)據(jù)因素法鸥咖。與Rules類似燕鸽,逐步將數(shù)據(jù)補(bǔ)充給用戶。
3). Rules:規(guī)則分析法啼辣。在Paths考慮的情況下啊研,可通過迭代的方式逐步增加規(guī)則。

INTERFACE法

image.png

PATHS

image.png

DATA

image.png

RULES

image.png

SPKIES
使用MVP來探索用戶的需求

  1. 需求估算方法
    建議需求估算不要花費(fèi)太多時(shí)間
    統(tǒng)計(jì)各種SIZE需求花費(fèi)的歷史數(shù)據(jù)鸥拧,可計(jì)算花費(fèi)人天党远,適合中長期規(guī)劃估算
    理想人天:比較難以估準(zhǔn)。
    根據(jù)自己的團(tuán)隊(duì)文化進(jìn)行估算

  2. 需求規(guī)劃和發(fā)布
    通過用戶故事地圖富弦,按照場景和大功能進(jìn)行需求歸類麸锉,再從每個(gè)版本規(guī)劃功能(產(chǎn)品經(jīng)理的職責(zé))

跨團(tuán)隊(duì)敏捷(Scrum of Scrum)

適用場景:團(tuán)隊(duì)需求耦合、團(tuán)隊(duì)技術(shù)架構(gòu)耦合舆声,且團(tuán)隊(duì)人數(shù)也較多的時(shí)候,需要拆分多個(gè)Scrum小團(tuán)隊(duì)柳爽,通過SoS方法進(jìn)行協(xié)作

盡量不要走版本火車的模式媳握,通過管理手段應(yīng)該避免浪費(fèi),而不是增加浪費(fèi)

產(chǎn)品經(jīng)理團(tuán)隊(duì)制定愿景磷脯、對齊中長期目標(biāo)蛾找、橫向?qū)R需求優(yōu)先級(jí)并驅(qū)動(dòng)一起做計(jì)劃

跨團(tuán)隊(duì)需求引入特性技術(shù)負(fù)責(zé)人,把控和對齊方案

社區(qū)溝通架構(gòu)和技術(shù)演進(jìn)和成長赵誓,促進(jìn)人員能力提升和跨團(tuán)隊(duì)溝通

Sos擴(kuò)展實(shí)踐

  • 產(chǎn)品經(jīng)理團(tuán)隊(duì)內(nèi)定期產(chǎn)品發(fā)布規(guī)劃打毛,關(guān)注整體目標(biāo)
  • 產(chǎn)品經(jīng)理團(tuán)隊(duì)內(nèi)主動(dòng)對齊需求優(yōu)先級(jí)和依賴
  • PM聯(lián)合技術(shù)負(fù)責(zé)人溝通和對齊方案
  • 共享團(tuán)隊(duì)chengyuan
  • 成立集成團(tuán)隊(duì)專注解決項(xiàng)目集成過程中各種問題

Sos擴(kuò)展實(shí)踐

  • 從產(chǎn)品交付價(jià)值角度建立產(chǎn)品backlog,可分不同團(tuán)隊(duì)子視圖
    • 產(chǎn)品級(jí)是用戶故事視圖俩功,研發(fā)級(jí)是用戶故事拆分出的任務(wù)視圖幻枉。
  • 團(tuán)隊(duì)間協(xié)調(diào)實(shí)踐
    • 團(tuán)隊(duì)建設(shè)同步迭代解耦(迭代日歷)
    • 派代表參加SoS會(huì)議(定期解決協(xié)作問題)
  • 擴(kuò)展Sprint計(jì)劃實(shí)踐
    • 產(chǎn)品經(jīng)理和技術(shù)負(fù)責(zé)人提前溝通對齊
    • 計(jì)劃日錯(cuò)開
    • 大房間(集中辦公)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市诡蜓,隨后出現(xiàn)的幾起案子熬甫,更是在濱河造成了極大的恐慌,老刑警劉巖蔓罚,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件椿肩,死亡現(xiàn)場離奇詭異,居然都是意外死亡豺谈,警方通過查閱死者的電腦和手機(jī)郑象,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茬末,“玉大人厂榛,你說我怎么就攤上這事。” “怎么了噪沙?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵炼彪,是天一觀的道長。 經(jīng)常有香客問我正歼,道長辐马,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任局义,我火速辦了婚禮喜爷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘萄唇。我一直安慰自己檩帐,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布另萤。 她就那樣靜靜地躺著湃密,像睡著了一般。 火紅的嫁衣襯著肌膚如雪四敞。 梳的紋絲不亂的頭發(fā)上泛源,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音忿危,去河邊找鬼达箍。 笑死,一個(gè)胖子當(dāng)著我的面吹牛铺厨,可吹牛的內(nèi)容都是我干的缎玫。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼解滓,長吁一口氣:“原來是場噩夢啊……” “哼赃磨!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起洼裤,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬榮一對情侶失蹤煞躬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后逸邦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恩沛,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年缕减,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了雷客。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡桥狡,死狀恐怖搅裙,靈堂內(nèi)的尸體忽然破棺而出皱卓,到底是詐尸還是另有隱情,我是刑警寧澤部逮,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布娜汁,位于F島的核電站,受9級(jí)特大地震影響兄朋,放射性物質(zhì)發(fā)生泄漏掐禁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一颅和、第九天 我趴在偏房一處隱蔽的房頂上張望傅事。 院中可真熱鬧,春花似錦峡扩、人聲如沸蹭越。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽响鹃。三九已至,卻和暖如春案训,著一層夾襖步出監(jiān)牢的瞬間买置,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來泰國打工萤衰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人猜旬。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓脆栋,卻偏偏與公主長得像,于是被迫代替她去往敵國和親洒擦。 傳聞我的和親對象是個(gè)殘疾皇子椿争,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359