像這樣寫,Java菜鳥也能寫出牛逼的代碼

場景一

有時候咱們會遇到一個方法就是佔滿了整個屏幕,其中各類 if else 判斷 ,for 循環嵌套,時不時來穿插着各類a b c參數,讓人看得實在是眼花繚亂。讓後面維護的人望而卻步,也實在的代碼塊後面繼續增長,增長......當咱們看着這樣的代碼時,慶幸的事不用我來維護,坑爹的事須要本身來改,心中早已一萬個草尼瑪飄過了。java

場景二

當一些新手剛學習接觸設計模式的時候,感受就像看到了武功祕籍。想也沒想就直接網上套,各類 工廠模式,策略模式,裝飾模式等等,會顯得更加臃腫,類過多。原本是簡單的功能,會可能就會設計過分。小程序

咱們做爲剛入門的Java菜鳥該如何避免呢

偶然看到Mark Seemann寫的一篇關於The 80/24 rule的博客,有很大的啓發。裏面提到的80/24規則,說的是咱們寫的代碼塊 (每行80個字符之內,不超過24行) 還有更多的細節你們能夠點擊連接參考參考。在這樣的規則約束下,就能夠輕鬆的去掉一些代碼的壞味道。
例如:設計模式

  • 重複代碼
  • 過長的函數方法
  • 過大的類
  • 過長的參數列
  • 等等

用小而美的代碼塊

小的代碼塊,小方法、小功能、小程序,用小而美的代碼來點綴咱們的軟件。
如何來實現小而美的代碼塊有如下幾點能夠關注微信

  • 每行字符數:<80
  • 方法體行數:<24
  • 方法依賴(對象或方法):<7
  • 代碼塊中循環嵌套複雜度:❤️

優雅代碼示例

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);
}
  • 不要出現和業務無關的參數app

  • 避免使用Map,Json這些複雜對象做爲參數和結果函數

  • 有明確的輸入輸出和方法名學習

  • 編寫能測試的函數測試

文章有幫助你,請關注微信公衆號:肆意遊離 有更多精彩等着你設計

相關文章
相關標籤/搜索