天天看點

推薦程式員使用的,拒絕熬夜加班的幾種種開發工具?

作者:從程式員到架構師
推薦程式員使用的,拒絕熬夜加班的幾種種開發工具?

對于一個程式員來講,每天所要面對的事情就是寫代碼和劃水。

但是呢?每天不是編碼就是在去編碼的路上,根本沒有時間去劃水。要知道,程式員可是會偷懶的生物呀!能去拷貝的代碼絕對不會自己動腦子寫的。

既然是這樣,那麼為什麼你的劃水時間還那麼少呢?或許真不是自己太菜了,這真的是自己沒有學會使用進階的工具。下面我們就來推薦幾款程式員開發必備的工具吧

JSON解析工具

在日常的開發中經常會遇到處理JSON資料的情況,并且我們現在很多的RESTFul接口都是通過JSON資料格式來傳遞資料消息的。接下來我們要說的工具就是與JSON相關的工具。對于程式員來說使用最多的應該是Fastjson,它是由阿裡開源的一款JSON解析工具,其用法也相對簡單。

推薦程式員使用的,拒絕熬夜加班的幾種種開發工具?

在使用的時候我們需要在Maven檔案中導入對應的POM坐标。

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.83</version>
</dependency>           

這樣我們就可以在代碼中使用JSONObject以及JSONArray來對請求接受的JSON資料格式的字元串進行處理了。無外乎就是如下的幾種情況

  • JSON字元串到JSON對象
  • JSON對象到JSON字元串
  • JSON字元串到JSON數組
  • JSON數組到JSON字元串

引入了相應的依賴之後,接下來就是要看我們如何去請求資料,如何去處理出資料了。在RESTFul接口情況下,我們不可避免的要去調用一些第三方的HTTP請求,那麼我們如何去調用這些第三方的接口呢?就需要我們下面介紹的中,HTTP請求工具類。

HTTP請求工具

如何去高效的調用第三方的接口,方法有很多,但是這裡我們主要推薦的就是HttpClient的使用,它裡面提供了很多的基于網絡請求的封裝并且也經受過各種網絡場景的考驗,并且有很多的開發者。

推薦程式員使用的,拒絕熬夜加班的幾種種開發工具?

HttpClient 是Apache Jakarta Common 下的子項目,可以用來提供高效的、最新的、功能豐富的支援 HTTP 協定的用戶端程式設計工具包,并且它支援 HTTP 協定最新的版本和建議。導入一個HttpClient的依賴,如下所示,這裡我們隻是做了一個執行個體版本,讀者可以根據自己的需求去修改對應的版本号。

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.4.1</version>
</dependency>           

字元串處理工具

字元串的處理也是我們在開發中經常會處理的資料類型。我們也知道String類型所提供給我們的隻是一些對于字元串的基礎操作,而對于一些進階的操作則需要我們自己通過基礎操作去進行組合實作。

而下面我們介紹的commons-lang3元件其實就是對我們的字元串操作做了一系列的封裝操作,提供了對于字元串的截取、字元串的拼接、字元串的比較等等各種的擴充方法,并且它所提供的方法要比String自身的方法使用的更加友善。

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version>
</dependency>           

集合處理相關

推薦程式員使用的,拒絕熬夜加班的幾種種開發工具?

集合類處理,也是我們日常開發中經常會遇到的問題,當然也是在面試中經常會被問到的問題。而在Java中對于集合類的處理也提供了各種各樣的支援,例如List、Map、Set等等。它們都是對集合的各種實作,并且其中包含了各種的處理方法。可以完成集合資料的排序、集合資料翻轉、集合資料判空、将集合資料轉換為線程安全的結構、二分法查找等操作。

我們可以在POM檔案中引入如下依賴來獲得

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>4.3</version>
</dependency>           

檔案處理工具

檔案處理也是在開發中非常頭疼的事情,例如讀取一個檔案,寫入日志檔案,處理某個日志檔案等等。并且令很多開發者頭疼的并不是這些檔案的處理,而是對于Java中IO流操作的了解。這裡我們推薦一款IO處理工具。

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.13.0</version>
</dependency>           

如圖所示,FileUtils中提供了檔案IO處理相關的操作,有興趣的讀者可以詳細的探究一下它們其中這些方法如何去使用。

推薦程式員使用的,拒絕熬夜加班的幾種種開發工具?

MapStruct工具

相信很多人都用過BeanUtils工具類,它主要是用來完成對對象屬性的拷貝工作。但是需要注意的是如果在項目開發中對象結構變化較大的情況下則不推薦使用這種方式。

當然在Java中還提供了一個MapStruct 類來實作對象的轉換,BeanUtils隻能完成屬性名稱相同的類型轉換,而MapStruct所能完成的工作可以就非常多了。

首先在項目引入如下的依賴,這裡需要注意的是JDK1.8的情況處理。

<dependency>
	<groupId>org.mapstruct</groupId>
	<!-- jdk8以下就使用mapstruct -->
	<artifactId>mapstruct-jdk8</artifactId>
	<version>1.2.0.Final</version>
</dependency>
<dependency>
	<groupId>org.mapstruct</groupId>
	<artifactId>mapstruct-processor</artifactId>
	<version>1.2.0.Final</version>
</dependency>           

怎麼使用呢?如下所示,我們可以在所要執行類型轉換的類上面添加上@Mapper注解,當然這個注解并不是MyBatis中的注解。而是org.mapstruct.Mapper注解。然後可以按照如下的操作來開發。會看到在其中我們可以通過@Mapping指定對象屬性的映射規則

@Mapper
public class Test {
    Test INSTANCE = Mappers.getMapper(Test.class);
    // 配置字段映射規則
    @Mapping(source = "name",target = "username")
    WeiXin toCovert(Student student);
}           

Google Guava包

在Guava包中提供了很多的Google Java項目所依賴的核心類庫,例如對于集合的操作,對于緩存的操作,對于限流的操作對于并發的操作。引入方式如下

<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>28.2-jre</version>
</dependency>           

Guava的優勢

  • 高效的設計方式,比較實際
  • 遵循Java的高效文法,使用簡單