日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

如何使用java代码生成_使用Java成功生成代码的7个技巧

發(fā)布時(shí)間:2023/12/3 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何使用java代码生成_使用Java成功生成代码的7个技巧 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

如何使用java代碼生成

作為介紹,最近我有點(diǎn)安靜,部分原因是我一直在忙于Chronicle-FIX的工作 。 這是Chronicle-Enterprise套件中的一個(gè)新的超低延遲庫(kù),我們證明了該庫(kù)可以在低個(gè)位數(shù)微秒內(nèi)解析和存儲(chǔ)消息。 當(dāng)然,它利用了我們的開源產(chǎn)品Chronicle-Queue , Chronicle-Network和Chronicle-Bytes 。

我們實(shí)現(xiàn)的低延遲的秘密之一是,每個(gè)實(shí)現(xiàn)都可以完全基于其所需的架構(gòu)來生成自定義的修復(fù)引擎。 為了實(shí)現(xiàn)這一點(diǎn),我構(gòu)建了很多代碼生成代碼。

因此,我想我將分享在此過程中學(xué)到的一些經(jīng)驗(yàn)教訓(xùn)。

1.使用代碼生成庫(kù)

到目前為止,這是最重要的提示。 我很難強(qiáng)調(diào)這有多重要,以及您將節(jié)省多少時(shí)間和復(fù)雜性。 您真的不想在創(chuàng)建字符串文字時(shí)試圖弄亂代碼中的正確間距或加倍和三倍轉(zhuǎn)義的引號(hào)引起麻煩!

我使用了JavaPoet ,它是開源的(Apache 2),非常好。 它處理了我想做的所有事情,包括一些非常復(fù)雜的泛型。 它唯一不支持的事情就是聲明靜態(tài)導(dǎo)入,但這很容易解決,對(duì)于一個(gè)優(yōu)秀的庫(kù)來說,它并不重要。

JavaPoet將Java代碼分解為對(duì)象:TypeSpec(類或接口),MethodSpec(方法),FieldSpec(字段),CodeBlocks(代碼塊)。 它巧妙地為基于printf模式的語(yǔ)句(代碼行)提供了豐富的語(yǔ)法。 您會(huì)發(fā)現(xiàn),遵循這種范式將使您擁有更簡(jiǎn)潔,更簡(jiǎn)潔的代碼,而不是自己動(dòng)手編寫代碼,這很容易使這類問題的過程編碼路線更加混亂。

2.首先手動(dòng)編寫代碼

在沒有先編寫示例代碼的情況下,請(qǐng)勿嘗試和生成代碼。 通過后視鏡進(jìn)行編碼不是一件容易的事,如果您在進(jìn)行過程中對(duì)其進(jìn)行處理,則變得很復(fù)雜。

首先花一點(diǎn)時(shí)間手工編寫代碼,然后為其生成代碼。

另外,您將希望產(chǎn)生盡可能最佳的代碼,這只有在您首先花費(fèi)時(shí)間和精力手工編寫代碼的情況下才能完成。

3.生成盡可能少的代碼

僅生成所需數(shù)量的代碼。 因此,例如,如果所有生成的類都需要實(shí)現(xiàn)某個(gè)方法,請(qǐng)使用可以由生成的代碼調(diào)用的幫助程序類,而不是多次生成該方法。 或者,獲取您的代碼以使用基類上的方法擴(kuò)展靜態(tài)基類。

4.確保可以一次性吹走所有生成的代碼

不要將靜態(tài)代碼與生成的代碼混合使用。 您要做的是擁有com.test.generatedcode.xx.xx類的軟件包。 在每次測(cè)試/開發(fā)運(yùn)行結(jié)束時(shí),您都應(yīng)該能夠刪除整個(gè)文件夾com/test/generatedcode ,這意味著該文件夾中根本沒有靜態(tài)代碼。

您會(huì)發(fā)現(xiàn)以這種方式安排代碼將使測(cè)試周期變得更快。

5.從少量可驗(yàn)證的代碼開始

代碼生成的重點(diǎn)通常是產(chǎn)生大量代碼。 很難測(cè)試您生成的代碼是否正確。 因此,從一個(gè)小而復(fù)雜的示例開始,您可以通過閱讀代碼進(jìn)行檢查,并為其提供測(cè)試用例。

希望以后的情況會(huì)更多。

6.生成測(cè)試用例

如第5點(diǎn)所述,很難在所有情況下驗(yàn)證您的代碼生成器是否正確。 因此,您應(yīng)該嘗試將測(cè)試用例作為所生成代碼的一部分進(jìn)行生成。 然后,您可以從生成器生成許多偏斜的復(fù)雜代碼,并對(duì)其進(jìn)行測(cè)試。

7.冗長(zhǎng)

從本質(zhì)上講,生成代碼的代碼可能很難閱讀和理解。 代碼生成代碼永遠(yuǎn)不必太快,因此不必?fù)?dān)心使其變得冗長(zhǎng)。 使用大量評(píng)論,但更重要的是,嘗試使其盡可能明確,以便您可以在一年內(nèi)回顧它并仍然可以對(duì)其進(jìn)行維護(hù)。

翻譯自: https://www.javacodegeeks.com/2015/12/7-tips-successful-code-generation-java.html

如何使用java代碼生成

總結(jié)

以上是生活随笔為你收集整理的如何使用java代码生成_使用Java成功生成代码的7个技巧的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。