国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

軟件開(kāi)發(fā)方法論:TDD、BDD、DDD、ATDD、DevOps

這篇具有很好參考價(jià)值的文章主要介紹了軟件開(kāi)發(fā)方法論:TDD、BDD、DDD、ATDD、DevOps。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、TDD:測(cè)試驅(qū)動(dòng)開(kāi)發(fā)

測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(Test-Driven Development, TDD)是敏捷開(kāi)發(fā)中的一項(xiàng)核心實(shí)踐和技術(shù)。針對(duì)每個(gè)功能點(diǎn)抽象出接口代碼,然后編寫(xiě)單元測(cè)試代碼。目前的一些模式對(duì)TDD的支持都非常不錯(cuò),比如MVC和MVP等。

適合TDD這種模式的項(xiàng)目必須具備:

  • 項(xiàng)目的需求必須足夠清晰,而且程序員對(duì)整個(gè)需求有足夠的了解。
  • 項(xiàng)目的復(fù)雜度和依賴性要低。對(duì)于一個(gè)業(yè)務(wù)模型及其復(fù)雜、內(nèi)部模塊之間的相互依賴性非常強(qiáng)的項(xiàng)目,采用TDD反而會(huì)得不嘗失,這會(huì)導(dǎo)致程序員在拆分接口和寫(xiě)測(cè)試代碼的時(shí)候工作量非常大。另外,由于模塊之間的依賴性太強(qiáng),我們?cè)趯?xiě)測(cè)試代碼的時(shí)候可能不采取一些橋接模式來(lái)實(shí)現(xiàn),這樣勢(shì)必加大了程序員的工作量。
二、BDD:行為驅(qū)動(dòng)開(kāi)發(fā)

行為驅(qū)動(dòng)開(kāi)發(fā)(Behavior Driven Development,BDD)。BDD旨在消除TDD過(guò)程中可能造成的問(wèn)題。與TDD相比,BDD是通過(guò)編寫(xiě)行為和規(guī)范來(lái)驅(qū)動(dòng)軟件開(kāi)發(fā)。 行為和規(guī)范可能看起來(lái)與測(cè)試非常相似,但是它們之間卻有著微妙但重要的區(qū)別。

BDD更注重功能本身而非單純的測(cè)試用例運(yùn)行結(jié)果。BDD測(cè)試用例的描述采用了更加’繁瑣’的風(fēng)格,閱讀BDD的測(cè)試用例就像是閱讀一篇文檔。這正是為什么我說(shuō)BDD旨在消除TDD過(guò)程中可能造成的問(wèn)題的原因所在。BDD賦予的這種像閱讀句子一樣閱讀測(cè)試的能力有助于帶來(lái)對(duì)測(cè)試認(rèn)知上的轉(zhuǎn)變,有助于我們?nèi)タ紤]如何更好寫(xiě)測(cè)試。當(dāng)你可以流暢的閱讀自己寫(xiě)的測(cè)試,你自然可以寫(xiě)出更好更全面的測(cè)試用例。

BDD是基于系統(tǒng)行為的一種測(cè)試方法,該方法基于系統(tǒng)行為定義出很多用于開(kāi)發(fā)功能點(diǎn)的途徑。Given(給予操作條件)-When(執(zhí)行相關(guān)操作)-Then(得到預(yù)期結(jié)果)是用來(lái)編寫(xiě)測(cè)試用例的方法:

  • Given(給予操作條件):用戶輸入有效的登錄憑證
  • When(執(zhí)行相關(guān)操作):用戶點(diǎn)擊登錄按鈕
  • Then(得到預(yù)期結(jié)果):顯示成功的驗(yàn)證消息
三、ATDD:驗(yàn)收測(cè)試驅(qū)動(dòng)開(kāi)發(fā)

驗(yàn)收測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(Acceptance Test Driven Development,ATDD)技術(shù),是從用戶的角度編寫(xiě)了一個(gè)驗(yàn)收測(cè)試。 它主要側(cè)重于滿足系統(tǒng)的功能行為。 該技術(shù)用于檢測(cè)代碼是否按預(yù)期工作。

注意:ATDD與BDD非常相似,它們之間的主要區(qū)別是:BDD更多的是聚焦功能點(diǎn)的行為,而ATDD是捕獲更精準(zhǔn)的需求。

四、DDD:領(lǐng)域驅(qū)動(dòng)開(kāi)發(fā)

領(lǐng)域驅(qū)動(dòng)開(kāi)發(fā)(Domain Drive Design, DDD)是一種以業(yè)務(wù)為導(dǎo)向的軟件設(shè)計(jì)方法和思路。我們?cè)陂_(kāi)發(fā)前,通常需要進(jìn)行大量的業(yè)務(wù)知識(shí)梳理,而后到達(dá)軟件設(shè)計(jì)的層面,最后才是開(kāi)發(fā)。而在業(yè)務(wù)知識(shí)梳理的過(guò)程中,我們必然會(huì)形成某個(gè)領(lǐng)域知識(shí),根據(jù)領(lǐng)域知識(shí)來(lái)一步步驅(qū)動(dòng)軟件設(shè)計(jì),就是領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的基本概念。而領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的核心就在于建立正確的領(lǐng)域驅(qū)動(dòng)模型。

對(duì)于現(xiàn)在流行的微服務(wù)架構(gòu),微服務(wù)的拆分一直都是微服務(wù)設(shè)計(jì)要解決的問(wèn)題,而拆分困境產(chǎn)生的根本原因就是不知道業(yè)務(wù)或者微服務(wù)的邊界到底在什么地方。換句話說(shuō),確定了業(yè)務(wù)邊界和應(yīng)用邊界,這個(gè)困境也就迎刃而解了。

解:DDD 核心思想就是通過(guò)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)方法定義領(lǐng)域模型,從而確定業(yè)務(wù)和應(yīng)用邊界,保證業(yè)務(wù)模型與代碼模型的一致性。

注意:
對(duì)于簡(jiǎn)單的系統(tǒng),如果后續(xù)業(yè)務(wù)不會(huì)有太大變化,那么就不適合用DDD。

五、持續(xù)集成CI

持續(xù)集成(Continuous Integration, CI),是指頻繁地(一天多次)將代碼集成到主干,然后放到CI Server上自動(dòng)化跑一遍,如果代碼有問(wèn)題就會(huì)原路打回來(lái),這樣做的目的就是為了能夠盡早發(fā)現(xiàn)錯(cuò)誤,從而能即時(shí)在最短的時(shí)間內(nèi)定位你的錯(cuò)誤并且改正。

六、持續(xù)交付CD

持續(xù)交付(Continuous Delivery, CD)是在持續(xù)集成的基礎(chǔ)上,將集成后的代碼部署到更貼近真實(shí)運(yùn)行環(huán)境的「類生產(chǎn)環(huán)境」中,是一個(gè)更小粒度提交的過(guò)程。比如,我們完成單元測(cè)試后,可以把代碼部署到連接數(shù)據(jù)庫(kù)的 Staging 環(huán)境中Jj進(jìn)行測(cè)試。如果代碼沒(méi)有問(wèn)題,可以繼續(xù)手動(dòng)部署到生產(chǎn)環(huán)境中。

七、持續(xù)部署CO

持續(xù)部署(continuous deployment,CO)是持續(xù)交付的下一步,指的是代碼通過(guò)評(píng)審以后,自動(dòng)部署到生產(chǎn)環(huán)境。

在持續(xù)交付后生成可執(zhí)行的制品,需要盡快驗(yàn)證是否存在功能性能等方面的問(wèn)題,或者盡可能快速的讓最終用戶可以使用這些功能。通過(guò)持續(xù)部署到測(cè)試環(huán)境、準(zhǔn)生成環(huán)境中,可以使測(cè)試團(tuán)隊(duì)盡快開(kāi)始測(cè)試,開(kāi)發(fā)團(tuán)隊(duì)獲得快速的反饋并響應(yīng)。使研發(fā)和測(cè)試的協(xié)同加快了進(jìn)程。通過(guò)持續(xù)部署到生產(chǎn)環(huán)境,讓最終用戶可見(jiàn),則可以快速獲得最終用戶的使用反饋,體現(xiàn)需求的市場(chǎng)價(jià)值。

八、DevOps

DevOps (Development和Operations的組合詞)是一種重視“軟件開(kāi)發(fā)人員(Dev)”和“IT運(yùn)維技術(shù)人員(Ops)”之間溝通合作的文化、運(yùn)動(dòng)或慣例。透過(guò)自動(dòng)化“軟件交付”和“架構(gòu)變更”的流程,來(lái)使得構(gòu)建、測(cè)試、發(fā)布軟件能夠更加地快捷、頻繁和可靠。

分布式架構(gòu)+敏捷開(kāi)發(fā)模式
軟件開(kāi)發(fā)方法論:TDD、BDD、DDD、ATDD、DevOps

微服務(wù)架構(gòu)+DEVOPS
軟件開(kāi)發(fā)方法論:TDD、BDD、DDD、ATDD、DevOps
軟件開(kāi)發(fā)方法論:TDD、BDD、DDD、ATDD、DevOps文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-461098.html

到了這里,關(guān)于軟件開(kāi)發(fā)方法論:TDD、BDD、DDD、ATDD、DevOps的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SQL-方法論

    寫(xiě)SQL時(shí)可以考慮的手段: 行轉(zhuǎn)列 先分為多個(gè)臨時(shí)表,然后JOIN到一起 用sum(if()) 列轉(zhuǎn)行 先分為多個(gè)臨時(shí)表,然后UNION到一起

    2024年02月14日
    瀏覽(31)
  • 滲透測(cè)試方法論

    滲透測(cè)試方法論

    攻擊與防御,攻擊典型代表就是黑客入侵,非法的和滲透測(cè)試,合法的等工作。防御的典型代表等級(jí)保護(hù)、安全基線檢查與加固、安全設(shè)備等。 滲透測(cè)試(penetration testing,pentest)是模擬黑客攻擊,實(shí)施安全評(píng)估(即審計(jì))的具體手段。方法論是在制定、實(shí)施信息安全審計(jì)方案時(shí)

    2024年02月11日
    瀏覽(48)
  • 性能分析方法論簡(jiǎn)介

    性能分析方法論簡(jiǎn)介

    限于作者能力水平,本文可能存在謬誤,因此而給讀者帶來(lái)的損失,作者不做任何承諾。 通常,我們是通過(guò)理論指導(dǎo)實(shí)踐,而實(shí)踐又反哺完善理論,二者缺一不可。 總的來(lái)說(shuō),性能優(yōu)化是 從 時(shí)間 和 空間 兩方面做出優(yōu)化 ,然后取得一個(gè)可接受的平衡點(diǎn)。記住,無(wú)論怎么優(yōu)

    2023年04月19日
    瀏覽(41)
  • 論文閱讀與管理方法論

    構(gòu)建知識(shí)體系 通過(guò)Related Works快速了解該方向研究現(xiàn)狀,追蹤經(jīng)典論文。 緊跟前沿技術(shù) 了解領(lǐng)域內(nèi)新技術(shù)及效果,快速借鑒到自身項(xiàng)目。 培養(yǎng)科研邏輯 熟悉論文體系,了解如何快速創(chuàng)造新事物,培養(yǎng)良好的科研習(xí)慣。 寫(xiě)論文 面試找工作 快速熟悉某領(lǐng)域 發(fā)展歷程 、 現(xiàn)狀及

    2024年02月15日
    瀏覽(58)
  • SOA認(rèn)知和方法論

    在軟件設(shè)計(jì)領(lǐng)域,企業(yè)架構(gòu)通常被劃分為如下五種分類: 如何理解架構(gòu)分類依據(jù)及其彼此之間的關(guān)系?業(yè)務(wù)是企業(yè)賴以生存之本,因此業(yè)務(wù)架構(gòu)是基礎(chǔ)、是靈魂,其他一切均是對(duì)業(yè)務(wù)架構(gòu)的支撐;根據(jù)業(yè)務(wù)架構(gòu)形成與之相應(yīng)的產(chǎn)品架構(gòu)和數(shù)據(jù)架構(gòu);最后通過(guò)技術(shù)架構(gòu)落地實(shí)施

    2024年02月08日
    瀏覽(36)
  • SRE方法論之擁抱風(fēng)險(xiǎn)

    系統(tǒng)不可能100%可靠,人都不可能100%健康,更何況我們?nèi)祟悇?chuàng)造的系統(tǒng)?所以,任何軟件系統(tǒng)都不應(yīng)該一味地追求 100%可靠。事實(shí)證明,可靠性超過(guò)一定值后,再提高可靠性對(duì)于一項(xiàng)服務(wù)來(lái)說(shuō),結(jié)果可能會(huì)更差而不是更好!極端的可靠性會(huì)帶來(lái)成本的大幅提升:比如過(guò)分追求穩(wěn)

    2024年02月05日
    瀏覽(28)
  • MySQL的性能優(yōu)化方法論

    作者:禪與計(jì)算機(jī)程序設(shè)計(jì)藝術(shù) MySQL是一個(gè)開(kāi)源的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQL AB開(kāi)發(fā)并發(fā)布。它的目的是為了快速、可靠地處理復(fù)雜的事務(wù)處理,支持多種編程語(yǔ)言,包括C、C++、Java、PHP、Python等。它是一個(gè)高效、可伸縮的數(shù)據(jù)庫(kù)服務(wù)器,在Web應(yīng)用方面也經(jīng)常被應(yīng)用到

    2024年02月06日
    瀏覽(26)
  • 控制論與科學(xué)方法論

    控制論與科學(xué)方法論

    《 控制論與科學(xué)方法論 》,真心不錯(cuò)。 書(shū)籍原文 電子版PDF :https://pan.quark.cn/s/00aa929e4433(分類在 學(xué)習(xí) 目錄下) 備用鏈接:https://pan.xunlei.com/s/VNgj2vjW-Hf_543R2K8kbaifA1?pwd=2sap# 控制論是一種讓系統(tǒng)按照我們想要的方式運(yùn)行的方法。 以下是控制論、信息論、系統(tǒng)論的總結(jié): 控制

    2024年01月25日
    瀏覽(18)
  • 黑盒測(cè)試方法論—邊界值

    黑盒測(cè)試方法論—邊界值

    邊界值分析法是一種很實(shí)用的黑盒測(cè)試用例方法,它具有很強(qiáng)的發(fā)現(xiàn)故障的能力。邊界值分析法也是作為對(duì)等價(jià)類劃分法的補(bǔ)充,測(cè)試用例來(lái)自等價(jià)類的邊界。 這個(gè)方法其實(shí)是在測(cè)試實(shí)踐當(dāng)中發(fā)現(xiàn),Bug 往往出現(xiàn)在定義域或值域的邊界上,而不是在其內(nèi)部。為檢測(cè)邊界附近的

    2024年02月11日
    瀏覽(29)
  • 數(shù)據(jù)建模方法論及實(shí)施步驟

    數(shù)據(jù)建模方法論及實(shí)施步驟

    了解數(shù)據(jù)建模之前首先要知道的是什么是數(shù)據(jù)模型。數(shù)據(jù)模型(Data Model)是數(shù)據(jù)特征的抽象,它從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動(dòng)態(tài)行為和約束條件,為數(shù)據(jù)庫(kù)系統(tǒng)的信息表示與操作提供一個(gè)抽象的框架。 一、概要:數(shù)據(jù)建模簡(jiǎn)介 數(shù)據(jù)基本用于兩種目的:1、操作型記

    2024年02月05日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包