优秀的java代码_像这样写,Java菜鸟也能写出牛逼的代码
場(chǎng)景一
有時(shí)候我們會(huì)遇到一個(gè)方法就是占滿(mǎn)了整個(gè)屏幕,其中各種if else 判斷 ,for 循環(huán)嵌套,時(shí)不時(shí)來(lái)穿插著各種a b c參數(shù),讓人看得實(shí)在是眼花繚亂。讓后面維護(hù)的人望而卻步,也實(shí)在的代碼塊后面繼續(xù)增加,增加......當(dāng)我們看著這樣的代碼時(shí),慶幸的事不用我來(lái)維護(hù),坑爹的事需要自己來(lái)改,心中早已一萬(wàn)個(gè)草尼瑪飄過(guò)了。
場(chǎng)景二
當(dāng)一些新手剛學(xué)習(xí)接觸設(shè)計(jì)模式的時(shí)候,感覺(jué)就像看到了武功秘籍。想也沒(méi)想就直接網(wǎng)上套,各種 工廠(chǎng)模式,策略模式,裝飾模式等等,會(huì)顯得更加臃腫,類(lèi)過(guò)多。本來(lái)是簡(jiǎn)單的功能,會(huì)可能就會(huì)設(shè)計(jì)過(guò)度。
我們作為剛?cè)腴T(mén)的Java菜鳥(niǎo)該如何避免呢
偶然看到Mark Seemann寫(xiě)的一篇關(guān)于The 80/24 rule的博客,有很大的啟發(fā)。里面提到的80/24規(guī)則,說(shuō)的是我們寫(xiě)的代碼塊 (每行80個(gè)字符以?xún)?nèi),不超過(guò)24行) 還有更多的細(xì)節(jié)大家可以點(diǎn)擊鏈接參考參考。在這樣的規(guī)則約束下,就可以輕松的去掉一些代碼的壞味道。
例如:
重復(fù)代碼
過(guò)長(zhǎng)的函數(shù)方法
過(guò)大的類(lèi)
過(guò)長(zhǎng)的參數(shù)列
等等
用小而美的代碼塊
小的代碼塊,小方法、小功能、小程序,用小而美的代碼來(lái)點(diǎn)綴我們的軟件。
如何來(lái)實(shí)現(xiàn)小而美的代碼塊有以下幾點(diǎn)可以關(guān)注
每行字符數(shù):<80
方法體行數(shù):<24
方法依賴(lài)(對(duì)象或方法):<7
代碼塊中循環(huán)嵌套復(fù)雜度:<3
優(yōu)雅代碼示例
public ActionResult Post(ReservationDto dto)
{
var validationMsg = Validator.Validate(dto);
if (validationMsg != "")
return BadRequest(validationMsg);
var reservation = Mapper.Map(dto);
var reservations = Repository.ReadReservations(reservation.Date);
var accepted = ma?treD.CanAccept(reservations, reservation);
if (!accepted)
return StatusCode(
StatusCodes.Status500InternalServerError,
"Couldn't accept.");
var id = Repository.Create(reservation);
return Ok(id);
}
不要出現(xiàn)和業(yè)務(wù)無(wú)關(guān)的參數(shù)
避免使用Map,Json這些復(fù)雜對(duì)象作為參數(shù)和結(jié)果
有明確的輸入輸出和方法名
編寫(xiě)能測(cè)試的函數(shù)
傻瓜都能寫(xiě)出計(jì)算機(jī)可以讀懂的代碼,只有優(yōu)秀的程序員才能寫(xiě)出人能讀懂的代碼!
文章有幫助你,請(qǐng)關(guān)注微信公眾號(hào):肆意游離 有更多精彩等著你
總結(jié)
以上是生活随笔為你收集整理的优秀的java代码_像这样写,Java菜鸟也能写出牛逼的代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java 格式化位数_java数字如何格
- 下一篇: java union方法参数_Java