多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 每個 Java 開發者應該知道(并愛上)的 8 個工具

每個 Java 開發者應該知道(并愛上)的 8 個工具

來源:程序員人生   發布時間:2017-03-15 09:19:12 閱讀次數:4516次

學習Java的同學注意了!!! 
學習進程中遇到甚么問題或想獲得學習資源的話,歡迎加入Java學習交換群,群號碼:183993990  我們1起學Java!


在Stormpath(1款用戶管理和認證服務),我們認真對待質量和效力。任何1個優秀的工匠,僅僅具有天賦是不夠的,你在工作中還需要正確的工具。工程學不單單是科學,更是藝術。所以,在Stormpath,雖然我們具有天賦,我們仍不斷尋覓所需的有用的工具。我們的工程師1直渴望向團隊其他人分享新工具。現在,讓我們向所有充滿天賦的Java開發者推薦工具。

在這篇文章中,我將分享我們Java團隊平常工作使用的工具,并介紹如何使用它們,分享1些實用的小技能。

1.Groovy

我們使用Groovy來寫Java測試。為何?由于它提供了下面這些能力:

寬松的Java語法:這是Java語法,但有些其他規則,比如分號,變量類型,訪問修飾符都是可選的。后者對測試意義重大,由于訪問修飾符不是嚴格的,你的測試可以讀取并斷言類內部的狀態。舉個例子,我們假定下面1個類:

public class Foo {
    private String bar = null;

    public void setBar(String bar) {
        this.bar = bar;
    }
}

如果你想測試setBar(String)方法正常(即能正確修改bar的值),你可以用Groovy方便的讀取變量值。Java中不允許這樣的操作(在不觸及Java反射機制條件下)。

@Test public void test() {
    def foo = new Foo()
    foo.setBar("hello")
    Assert.isTrue(foo.bar.equals("hello"))
    //groovy 允許我們訪問私有變量 bar
}

強大的斷言:Groovy提供強大多樣的assert,被稱作power assertion statement。Groovy的強大斷言能夠清晰的展現驗證失敗時的結果。另外,它比Java更有可讀性。

Assert.isTrue(foo.bar.equals("hello"));

可以用Groovy這樣寫:

assert foo.bar == "hello"

當斷言失敗時它會顯示1個非常清晰的描寫:

assert foo.bar == "goodbye"
       |   |   |
       |   |   false
       |   hello
       Foo@12f41634

Mocking:使用Java時,動態摹擬框架(如:EasyMock,PowerMock和Mockito)非常流行,這些框架可以在Groovy下方便的使用。耶!

2.支持REST風格

我們的后端提供REST API服務來創建和管理賬戶,眾多SDK中,我們的Java SDK提供特定語言客戶端模型做簡單交互。其中1些SDK也提供網頁來和后端交互,從而不用編寫代碼。

為了保證網絡框架的互操作性,它們必須表現的1樣。因此我們需要創建1系列基于HTTP的測試。這是我們的兼容性測試工具。這個項目由我們的SDK工程師保護,他們精通不止1種語言。因此我們需要跨語言測試工具,謝天謝地Rest-assured來了。

Rest-assured是Java領域特定語言(DSL domain-specific language)用來測試REST服務,它簡單易用易上手,乃至對沒有用過Java的開發者也是難以置信的強大。它提供先進的特性,比如細節配置、過濾器、定制分析、跨站要求捏造(CSRF)和OAuth 2.0。它提供非常簡單的語法:given-when-then。

舉個例子:讓我們來看它如何校驗“向/login路徑發送post認證信息要求返回302狀態碼”:

given() .accept(ContentType.HTML) .formParam("login", account.username) 
.formParam("password", account.password) .when() .post(LoginRoute) .then() .statusCode(302)

你可以在我們的TCK repo中看到更多Rest-assured測試

3.Cargo Plugin

為了讓我們的Java SDK依照TCK校驗,我們需要開啟我們其中1個Web服務,以便測試在上面履行。講道理的話,我們需要每次構建時自動測試,Gargo Plugin就是為此而生。

Cargo用標準的方式簡單封裝各種利用容器。我們使用Cargo可以絕不費力的在不同的Servlet容器(比如Jetty和Tomcat)中運行我們的代碼。我們只需要在我們的pom文件中配置Cargo Maven2 Plugin來啟動1個Servlet容器(Tomcat7),在測試階段編譯最近的War包,你可以在我們的Servlet插件例子中看到配置。

4.Git

我們能討論哪些關于Git你不了解的事情呢?想要深入了解Git,你可以看他們的About頁。

我們的Java SDK團隊遍及全球,而且彼此之間幾近從未坐在1起。Git保障了我們寫的每行代碼,這里有1些非常棒的命令,節省了我們大量的時間:

  • git mv –force foo.java Foo.java:在大小寫敏感的文件系統中改變文件名是非常麻煩的,這個命令能讓git意想到foo.java重命名為Foo.java
  • git diff-tree –no-commit-id –name-only -r <commit_ID>:查看所有在<commit_ID>這次提交中更改的文件。
  • git diff –name-only SHA1 SHA2:羅列出在SHA1和SHA2兩次提交之間所有更改的文件。
  • 在1個文件的歷史提交記錄中查詢某個字符串:創建search.sh文件,粘貼下面代碼:
git rev-list --all $2 | (
    while read revision; do
        git grep -F $1 $revision $2
    done
)

命令可以通過這類方式履行:sh ./search.sh string_to_search file_where_to_search

5.GitHub

GitHub不單單為我們的Git項目提供托管服務,它為代碼開源并讓全球都看到做出了巨大貢獻。這鼓舞了人們去嘗試、去交換、去練習,很大程度提高了每一個人的項目質量和大家的技術水平。

GitHub允許我們跟進我們的issue.游客可以提交新需求和報告bug。他們也能夠收到我們項目進展的通知。

6.Maven

Maven已足夠出名了。所以我不會用長篇幅解釋為何我們使用Maven做構建管理。但是我可以分享幾個技能,讓你的Maven更得心應手:

管理依賴:在1個多模塊的項目中,你需要在根pom.xml的<dependencyManagement>標簽中定義每個依賴。1旦你這樣做,所有下層模塊都可以不需要指定版本。這類管理依賴的方式(比如版本升級)可以集中處理,所有下層模塊都會自動辨認。比如在根pom.xml:

<dependencyManagement>
  <dependencies>
    <dependency>
        <groupId>io.jsonwebtoken</groupId>
        <artifactId>jjwt</artifactId>
        <version>${jjwt.version}</version>
     </dependency>
     ...
  <dependencies>
<dependencyManagement>

下層模塊的pom.xml:

<dependencies>
  <dependency>
      <groupId>io.jsonwebtoken</groupId>
      <artifactId>jjwt</artifactId>  <!-- 注意這里沒有指定版本 -->
  </dependency>
  ...
<dependencies>

禁止下層模塊編譯:在發布的時候我們需要所有下層模塊1起發布,但是我們如何避免某個模塊(比如example)發布呢?很簡單,只需要把下面的pom文件加入到你不想發布的模塊:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-deploy-plugin</artifactId>
    <version>2.7</version>
    <configuration>
        <skip>true</skip>  <!-- (敲黑板)這是重點 -->
    </configuration>
</plugin>

跳過集成測試:我們有很多集成測試需要很長時間編譯。這些測試確保了后端整體運行正常.在頻繁的本地部署期間,我們屢次由于新功能或修復bug而更改代碼。其實不需要每次在本地構建的時候履行這些測試,這會拖慢開發進度。因此我們要確保我們的Java SDK只在我們的CI服務器上運行的時候履行集成測試。可以通過下面方法:

根pom.xml文件:

<properties>
    <skipITs>true</skipITs>
</properties>
...
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>2.19.1</version>
            <configuration>
                <skipITs>${skipITs}</skipITs>
                <includes>
                    <include>**/*IT.*</include>
                </includes>
            </configuration>
            <executions>
               <execution>
                   <goals>
                       <goal>integration-test</goal>
                       <goal>verify</goal>
                   </goals>
               </execution>
            </executions>
        </plugin>
  </plugins>
<build>

所以你可以想象到,所有集成測試文件以IT結尾,來保證配置正常運作,比如:ApplicationIT.groovy 或 I18nIT.groovy

然后,如果我們想讓集成測試運行,我們履行以下構建:mvn clean install -DskipITs=false

7.JWT Inspector

我們的Java SDK使用JWT(JSON Web Token)通過安全可靠的方式傳輸數據。當我們測試排查時,我們需要分析從閱讀器接收到的JWT內容。token信息可能在URL,cookie或本地貯存中。JWT Inspector是1款閱讀器插件,讓我們可以從控制臺或內置的界面解碼JSON Web Token。你不需要在你的app中跟蹤token信息。你只需要按1下插件的按鈕,JWT Inspector會自動展現你所需要的所有信息,然后你可以復制其中任何token信息。

8.Postman

我們重度依賴REST API要求,編寫REST要求其實不方便,具體語法取決于我們所用的工具,比如curl或HTTPie。二者都易讀,但語法難記。通常,我們需要排查問題時,我們需要測試1些要求。當出問題時,我們沒法判斷緣由是要求還是后端。我們浪費了大量時間來懷疑我們寫的要求是不是正確。

Postman讓書寫REST API要求變得簡單。它也提供很多功能,比如保存、復用要求、生成代碼(java,python,curl等等),還可以批量按序履行要求。Postman通過友好的界面幫助你構建復雜的命令,你所需要做的就是填寫1個表單,簡直不能再棒了。

總結

使用正確的工具不單單幫助你節省時間提高效力,還能提高你作品的質量并享受平常工作。我們要時刻留意,發現并學習新的工具。1開始可能需要1些努力,但你總會心識到付出的時間是值得的。

學習Java的同學注意了!!! 
學習進程中遇到甚么問題或想獲得學習資源的話,歡迎加入Java學習交換群,群號碼:183993990  我們1起學Java!

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 福利视频一二三在线视频免费观看 | 国内成人自拍 | 波多野结衣视频在线观看地址免费 | 国产午夜免费一区二区三区 | 三级黄视频 | 香港黄页精品视频在线 | 在线午夜 | 国产小情侣 | 91四虎国自产在线播放线 | 欧美成人第一页 | 日本高清www免费视频软件 | 免费高清毛片在线播放视频 | 亚洲欧美日韩天堂 | 日本成人在线播放 | 国产福利视频一区二区三区四区 | 视频在线观看网站免费 | 欧美一级毛片无遮挡内谢 | 欧美午夜理伦三级在线观看 | 成人免费性视频 | 久久综合九色综合欧美狠狠 | 国产欧洲亚洲 | 精品日韩一区二区三区视频 | 最近中文字幕免费mv视频 | 色欧美综合| 欧美13一14周岁a在线播放 | 午夜视频网站 | 欧美激情一区二区亚洲专区 | 亚洲精品天堂在线 | 国产精品视频在线观看 | 亚洲高清在线观看播放 | 亚洲 校园 春色 另类 激情 | 亚洲日本中文字幕在线 | 一级片.| 日本高清免费毛片久久看 | 男女激情视频 | 黑人太大太粗受不了了 | 91色图| 性欧美性 | 永久看片| 日本一级淫片aaaaaa | 国产精品性 |