• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 如何寫出更好的Java代碼(4)

    發表于:2014-05-27來源:不詳作者:不詳點擊數: 標簽:
    配置管理 那現在你的代碼可以編譯了,倉庫也搭建起來了,你需要把你的代碼帶出開發環境,走向最終的發布了。別馬虎了,因為 自動化 執行從長遠來看

      配置管理

      那現在你的代碼可以編譯了,倉庫也搭建起來了,你需要把你的代碼帶出開發環境,走向最終的發布了。別馬虎了,因為自動化執行從長遠來看,好處是大大的。

      Chef,Puppet,和Ansible都是常見的選擇。我自己也寫了一個可選方案,Squadron。這個嘛,當然了,我自然是希望你們能下載下它的,因為它比其它那些要好用多了。

      不管你用的是哪個工具,別忘了自動化部署就好。

      庫

      可能Java最好的特性就是它擁有的這些庫了。下面列出了一些庫,應該絕大多數人都會用得上。

      Java的標準庫,曾經還是很不錯的,但在現在看來它也遺漏掉了很多關鍵的特性。

      Apache Commons

      Apache Commons項目有許多有用的功能。

      Commons Codec有許多有用的Base64或者16進制字符串的編解碼的方法。別浪費時間自己又寫一遍了。

      Commons Lang是一個字符串操作,創建,字符集,以及許多工具方法的類庫。

      Commons IO,你想要的文件相關的方法都在這里了。它有FileUtils.copyDirectory,FileUtils.writeStringToFile, IOUtils.readLines,等等。

      Guava

      Guava是一個非常棒的庫,它就是Java標準庫"所缺失的那部分"。它有很多我喜歡的地方,很難一一贅述,不過我還是想試一下。

      Cache,這是一個最簡單的獲取內存緩存的方式了,你可以用它來緩存網絡訪問,磁盤訪問,或者幾乎所有東西。你只需實現一個CacheBuilder,告訴Guava如何創建緩存就好了。

      不可變集合。這里有許多類:ImmutableMap, ImmutableList,甚至還有ImmutableSortedMultiSet,如果這就是你想要的話。

      我還喜歡用Guava的方式來新建可變集合:

      // Instead of

      final Map map = new HashMap();

      // You can use

      final Map map = Maps.newHashMap();

      有許多像Lists, Maps, Sets的靜態類,他們都更簡潔易懂一些。

      如果你還在堅持使用Java 6或者7的話,你可以用下Collections2,它有一些諸如filter和transform的方法。沒有Jvaa 8的stream的支持,你也可以用它們來寫出連貫的代碼。

      Guava也有一些很簡單的東西,比如Joiner,你可以用它來拼接字符串,還有一個類可以用來處理中斷。

      Gson

      Google的Gson是一個簡單高效的JSON解析庫。它是這樣工作的:

      final Gson gson = new Gson();

      final String json = gson.toJson(fooWidget);

      final FooWidget newFooWidget = gson.fromJson(json, FooWidget.class);

      真的很簡單,使用它會感覺非常愉快。Gson的用戶指南中有更多的示例。

      Java Tuples

      我對Java一個不爽的地方就是它的標準庫中居然沒有元組。幸運的是, Java tuples工程解決了這一問題。

      它也很容易使用,并且真的很贊:

      Pair func(String input) {

      // something...

      return Pair.with(stringResult, intResult);

      }

      Joda-Time

      Joda-Time是我用過的最好的時間庫了。簡直,直接,容易測試。你還想要什么?

      這個庫里我最喜歡的一個類就是Duration,因為我用它來告訴說我要等待多長時間,或者過多久我才進行重試。

      Lombok

      Lombok是一個非常有趣的庫。它通過注釋來減少了Java中的飽受詬病的樣板代碼(注:setter,getter之類的)。

      想給你類中的變量增加setter, getter方法?太簡單了:

      public class Foo {

      @Getter @Setter private int var;

      }

      現在你可以這么寫了:

      final Foo foo = new Foo();

      foo.setVar(5);

      這里還有更多的示例。我還沒在生產代碼中用過Lombok,不過我有點等不及了。

      Play框架

      備選方案:Jersey或者Spark

      在Java中實現REST風格的WEB服務有兩大陣營:JAX-RS和其它。

      JAX-RS是傳統的方式。你使用像Jersey這樣的東西來將注解和接口,實現組合到一起來實現WEB服務。這樣做的好處就是,你可以通過一個接口就能很容易創建出一個調用的客戶端來。

      Play框架是在JVM上實現WEB服務的截然不同的一種方式:你有一個routes文件,然后你去實現routes中那些規則所引用到的類。它其實就是個完整的MVC框架,不過你可以只用它來實現REST服務。

    原文轉自:http://it.deepinmind.com/java/2014/05/21/better-java.html

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>