java開(kāi)發(fā)接口怎么寫(xiě) 后端開(kāi)發(fā)完接口才給出接口文檔,合理嗎?你怎么看?
后端開(kāi)發(fā)完接口才給出接口文檔,合理嗎?你怎么看?一個(gè)非常好的問(wèn)題。我是一個(gè)web應(yīng)用程序架構(gòu)師,多年來(lái)一直致力于回答這個(gè)問(wèn)題。歡迎跟我來(lái)了解更多。后端提供接口文檔為時(shí)已晚,這是合理和不合理的。根據(jù)具體
后端開(kāi)發(fā)完接口才給出接口文檔,合理嗎?你怎么看?
一個(gè)非常好的問(wèn)題。我是一個(gè)web應(yīng)用程序架構(gòu)師,多年來(lái)一直致力于回答這個(gè)問(wèn)題。歡迎跟我來(lái)了解更多。
后端提供接口文檔為時(shí)已晚,這是合理和不合理的。根據(jù)具體情況,總有解決辦法。讓我談?wù)勎业挠^點(diǎn)。
不合理:成熟的技術(shù)團(tuán)隊(duì)重視功能設(shè)計(jì),在編寫(xiě)代碼之前有完整的技術(shù)文檔和功能定義。即使在TDD測(cè)試驅(qū)動(dòng)的開(kāi)發(fā)模式下,測(cè)試數(shù)據(jù)已經(jīng)準(zhǔn)備好了,那么接口邏輯就已經(jīng)確定了接口文檔是否編寫(xiě)好了,理清它們是很自然的。
-第一,主觀原因。原因是多方面的,比如趕進(jìn)度,沒(méi)有時(shí)間,不懶得寫(xiě),甚至在開(kāi)發(fā)前沒(méi)有仔細(xì)設(shè)計(jì),在做的時(shí)候也有變化。真的沒(méi)有好辦法。
-客觀原因:需求在變化,功能在變化,接口也在變化。所以,如果你寫(xiě)了一個(gè)文件,它的自然更新和維護(hù)?天哪?
有解決方案嗎?建議嘗試:[1]swagger接口文檔,將文檔集成到代碼中,集成維護(hù)文檔和修改代碼,在修改代碼邏輯的同時(shí)方便修改文檔描述。
2、郵遞員界面測(cè)試工具,導(dǎo)入導(dǎo)出JSON文件,高效的團(tuán)隊(duì)合作。Postman支持各種請(qǐng)求方法和配置環(huán)境變量,對(duì)返回的結(jié)果進(jìn)行測(cè)試和驗(yàn)證,支持批量自動(dòng)操作,可與自動(dòng)構(gòu)建系統(tǒng)集成。
JAVA前端和JAVA后端哪個(gè)好?
作為高級(jí)程序員,dingo將回答這個(gè)問(wèn)題。Java通常是一種后端編程語(yǔ)言。Java可以用作前端嗎?是的,當(dāng)然。有幾種方法可以使用Java作為前端。
一是手機(jī)編程。例如,Android移動(dòng)應(yīng)用程序開(kāi)發(fā)可以使用java編寫(xiě)程序。
另一個(gè)是使用googleweb工具包,它可以將java代碼轉(zhuǎn)換成JavaScript。所以它被前端使用。一個(gè)著名的例子是prime ng。這個(gè)前端控件庫(kù)不僅可以用于Java編寫(xiě)的桌面前端,也可以用于web開(kāi)發(fā)的前端。它的代碼實(shí)現(xiàn)部分是Java。
另一個(gè)是傳統(tǒng)的java桌面應(yīng)用程序。您可以直接使用java接口開(kāi)發(fā)工具包進(jìn)行應(yīng)用程序開(kāi)發(fā)。隨著網(wǎng)絡(luò)應(yīng)用的發(fā)展,桌面應(yīng)用已經(jīng)不像以前那么流行了。
我必須提到的另一件事是,最著名的軟件開(kāi)發(fā)工具,如eclipse、NetBeans和IntelliJ都是用Java開(kāi)發(fā)的。
如上所述,Java的前端開(kāi)發(fā)部分。讓我們來(lái)談?wù)凧ava后端開(kāi)發(fā)應(yīng)用程序。
一是java網(wǎng)絡(luò)應(yīng)用開(kāi)發(fā)。這種技術(shù)包括springboot、springmvc、struts或類(lèi)似的電子商務(wù)體系結(jié)構(gòu),都是用Java語(yǔ)言開(kāi)發(fā)的。
另一個(gè)是大數(shù)據(jù)技術(shù)。Hadoop、kafaka等大數(shù)據(jù)技術(shù)都在使用Java。
另一個(gè)是科學(xué)的應(yīng)用。該領(lǐng)域包括自然語(yǔ)言處理、人工智能分析、機(jī)器語(yǔ)言研究等。如果在該字段中使用編程語(yǔ)言,則Java是默認(rèn)選項(xiàng)。這是因?yàn)镴ava更安全、更可移植、更易維護(hù),并且具有高質(zhì)量的并發(fā)工具。
最后一個(gè)應(yīng)該嵌入。事實(shí)上,Java的最初定位是嵌入式系統(tǒng)開(kāi)發(fā)。它只需要13兆的內(nèi)存就可以運(yùn)行。許多設(shè)備,如SIM卡、光刻機(jī)、一些儀器、電視等,都采用了嵌入式Java技術(shù)。
以上對(duì)Java編程語(yǔ)言的具體應(yīng)用領(lǐng)域進(jìn)行了總體介紹。我希望聽(tīng)到你的想法。歡迎在下面留言。謝謝你的關(guān)注。下次再見(jiàn)。
寫(xiě)JAVA后端代碼時(shí)邏輯混亂怎么辦?
后端代碼的復(fù)雜性通過(guò)分割和裁決來(lái)解決。首先,通過(guò)拆分項(xiàng)目,項(xiàng)目之間可以存在依賴(lài)關(guān)系,但必須是單向依賴(lài)而不是環(huán)依賴(lài)。如果存在環(huán),我們必須考慮將環(huán)依賴(lài)分解為單獨(dú)的項(xiàng)目來(lái)解決環(huán)依賴(lài)。
對(duì)于項(xiàng)目中的代碼,可以通過(guò)水平拆分和垂直拆分來(lái)降低復(fù)雜性。水平層分為控制器、服務(wù)、Dao和sqlmap,垂直層分為系統(tǒng)、biz1、biz2、Bizn,但在數(shù)據(jù)通暢連接中,水平拆分和垂直拆分相結(jié)合,如下圖所示:
通過(guò)這種分層方式,代碼層是分開(kāi)的,結(jié)構(gòu)清晰。對(duì)于一些跨模塊調(diào)用的接口,如同一個(gè)數(shù)據(jù)表需要在不同的模塊中操作時(shí),可以將該接口作為公共接口升級(jí)到上層cxmodule,對(duì)于一些可重用的、相對(duì)獨(dú)立的功能,可以在cxmodule中定義一個(gè)干凈的接口,業(yè)務(wù)邏輯可以通過(guò)在模塊的功能模塊中實(shí)現(xiàn)接口來(lái)實(shí)現(xiàn),而不需要使用spring的事務(wù)管理機(jī)制,從而降低代碼的復(fù)雜度。
java業(yè)務(wù)邏輯,寫(xiě)在哪里比較好?
現(xiàn)在很多公司的開(kāi)發(fā)人員都應(yīng)該采用MVC架構(gòu)。
MVC是所謂的模型、視圖、控制器。
每一層都有明確的分工。
對(duì)于簡(jiǎn)單的項(xiàng)目,不管nignx如何,網(wǎng)關(guān)通常都會(huì)將請(qǐng)求從前端發(fā)送到后端,首先發(fā)送到控制器,然后發(fā)送到服務(wù)層,然后發(fā)送到Dao層。
這里的服務(wù)層就是所謂的業(yè)務(wù)層,專(zhuān)門(mén)負(fù)責(zé)業(yè)務(wù)處理操作,而Dao層則負(fù)責(zé)處理數(shù)據(jù)庫(kù),將數(shù)據(jù)庫(kù)中的數(shù)據(jù)帶回服務(wù),經(jīng)過(guò)服務(wù)處理后返回控制器層??刂破魍ㄟ^(guò)視圖解析器解析頁(yè)面,并通過(guò)瀏覽器呈現(xiàn)頁(yè)面。
基本上,我認(rèn)為答案是顯而易見(jiàn)的。也就是說(shuō),Java業(yè)務(wù)邏輯是在服務(wù)層編寫(xiě)的。
事實(shí)上,服務(wù)層涉及接口和接口實(shí)現(xiàn)。
在編寫(xiě)代碼時(shí),我們通常為控制器定義一個(gè)調(diào)用接口。
實(shí)際上,服務(wù)接口的實(shí)現(xiàn)類(lèi)應(yīng)該是編寫(xiě)業(yè)務(wù)邏輯的地方。
當(dāng)然,許多公司可能有多個(gè)服務(wù)層,例如,有一個(gè)管理層繼續(xù)對(duì)數(shù)據(jù)進(jìn)行特殊的業(yè)務(wù)處理。這里只是一個(gè)簡(jiǎn)單的概述。
每個(gè)公司的每個(gè)項(xiàng)目根據(jù)其自身業(yè)務(wù)可能有不同的體系結(jié)構(gòu)。但本質(zhì)是一樣的。
綜上所述,業(yè)務(wù)邏輯必須作為一個(gè)獨(dú)立的層來(lái)處理,這樣便于擴(kuò)展和維護(hù)。記住不要在控制器中編寫(xiě)所有業(yè)務(wù)邏輯。
每一層都有自己的分工,是捏合在一起的。代碼不僅冗長(zhǎng),而且雜亂無(wú)章。
好吧,我希望我的回答能幫助你
!如果你有興趣,可以關(guān)注一下,一起學(xué)習(xí)交流!