java入門簡(jiǎn)單小項(xiàng)目 寫JAVA后端代碼時(shí)邏輯混亂怎么辦?
寫JAVA后端代碼時(shí)邏輯混亂怎么辦?后端代碼的復(fù)雜性是通過(guò)除法和規(guī)則來(lái)解決的。首先,通過(guò)拆分項(xiàng)目,項(xiàng)目之間可以存在依賴關(guān)系,但必須是單向依賴而不是環(huán)依賴。如果存在環(huán),我們必須考慮將環(huán)依賴分解為單獨(dú)的項(xiàng)
寫JAVA后端代碼時(shí)邏輯混亂怎么辦?
后端代碼的復(fù)雜性是通過(guò)除法和規(guī)則來(lái)解決的。首先,通過(guò)拆分項(xiàng)目,項(xiàng)目之間可以存在依賴關(guān)系,但必須是單向依賴而不是環(huán)依賴。如果存在環(huán),我們必須考慮將環(huán)依賴分解為單獨(dú)的項(xiàng)目來(lái)解決環(huán)依賴。
對(duì)于項(xiàng)目中的代碼,可以通過(guò)水平拆分和垂直拆分來(lái)降低復(fù)雜性。水平層分為控制器、服務(wù)、Dao和sqlmap,垂直層分為系統(tǒng)、biz1、biz2、Bizn,但在數(shù)據(jù)通暢連接中,水平拆分和垂直拆分相結(jié)合,如下圖所示:
通過(guò)這種分層方式,代碼層是分開的,結(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的哪個(gè)語(yǔ)法特性讓你覺得寫Java代碼很享受?
我在日常生活中使用的主要語(yǔ)言是C#和Java。在語(yǔ)法方面,寫C#更有趣。主要原因是C#有更多的語(yǔ)法糖,而且LINQ非常容易使用。其次,visualstudio被稱為世界上第一個(gè)ide。但個(gè)人更喜歡Java。
從java8出來(lái)后,我覺得Java正在追趕C#,Java和C#的語(yǔ)法越來(lái)越相似(原來(lái)很相似,哈哈)。這里有一些比較。
在java8中添加lambda表達(dá)式后,我感覺越來(lái)越像C。
1. 當(dāng)然,首先要看收入。在中國(guó),基本上沒(méi)有使用C的大公司。最初,攜程在使用它,但后來(lái),它也轉(zhuǎn)向了Java。
2. 從技術(shù)的角度來(lái)看,有很多優(yōu)秀的框架可以使用,因?yàn)镴ava可以制造很多輪子。在實(shí)際項(xiàng)目中你遇到問(wèn)題,別人一定遇到過(guò),能找到問(wèn)題的關(guān)鍵。
3. 從生態(tài)學(xué)的角度來(lái)看,Java無(wú)疑是最好的選擇之一,因?yàn)樗拈_源較早,建立生態(tài)學(xué)的時(shí)間也較早。
4. 在性能方面,sun/Oracle熱點(diǎn)JVM內(nèi)置的JIT編譯器在運(yùn)行時(shí)對(duì)字節(jié)碼進(jìn)行了優(yōu)化。如果它不是一個(gè)性能敏感的應(yīng)用程序,Java就足夠了。
謝謝。
程序員所有代碼都一個(gè)一個(gè)自己敲出來(lái)的嗎?
從這個(gè)問(wèn)題中,我們可以看到所有者沒(méi)有編寫過(guò)代碼,或者已經(jīng)編寫過(guò)代碼,但是很少。即使他做到了,也只是一個(gè)小系統(tǒng),他還沒(méi)有接觸過(guò)一個(gè)大系統(tǒng)
!這里我想說(shuō)三點(diǎn):第一,99%的程序員是從模仿別人開始寫程序的!第二個(gè)原因是你寫的程序越多,就越復(fù)雜。”你寫的程序越多,就越復(fù)雜,它們之間有很多共同點(diǎn),也有很多可以重用的東西。例如,大型軟件和成熟公司都有公共資源庫(kù),很多東西都可以為您使用。如果你什么都自己做,我想你什么都做不了。例如,通信中使用了許多rs-Rodley算法,這些算法既復(fù)雜又簡(jiǎn)單,但無(wú)論多么簡(jiǎn)單都不容易,你必須花時(shí)間去解決。在企業(yè)里,不是學(xué)校。它給你更多的時(shí)間去解決它!第三,限制!人不是萬(wàn)能的,不可能什么都懂,但是,在你的項(xiàng)目中,你需要一個(gè)功能,但是你不能,沒(méi)關(guān)系,只要有現(xiàn)成的解決方案,你不懂,沒(méi)關(guān)系,可以實(shí)現(xiàn),至于你現(xiàn)在不懂,沒(méi)關(guān)系,公司要的是結(jié)果!