2/2_QUARKUS(Javaフレームワーク)触ってみた!(チュートリアル実行編)

はじめに

今回は、チュートリアル実行編です。 「そんなの自分でやってやるぜ!」って方に向けて、 以下に実行するチュートリアルの元URLを添付しておきます。

quarkus.io

環境構築編

環境構築大事!!
コマンド漏れなく打ってるのに、エラーになったらここを疑ってみて!
以下、リンクはWindowsの方向けに貼っておきます。
macは、「brew」使えばいいので...(脳筋

1. IDE(Javaなので、ecilpseかIntelliJ かな?)
eclipsehttp://mergedoc.osdn.jp/
IntelliJhttps://www.jetbrains.com/idea/
1. JDK 8以上
Windowshttps://qiita.com/ko2a/items/69fa8a5366d7449500ca
JAVA_HOMEの設定も忘れずに!
1. Maven or Gradle(Mavenが無難かな)
Mavenhttps://qiita.com/tarosa0001/items/e5667cfa857529900216
Gradle:https://qiita.com/vvakame/items/83366fbfa47562fafbf4
1. GraalVM
GraalVM:https://www.graalvm.org/docs/getting-started/ qiita.com

eclipseとかの入れ方は、ググっておくれ...
その他は、先駆者の方の記事をお借りします...(ありがたやー)
Gradleでのビルドは、追々やれたらいいな。。。

チュートリアル

1.Gitからクローンを落としてきます。

$ cd 保存場所
$ git clone https://github.com/quarkusio/quarkus-quickstarts.git

※ソースを落とす際に、プロジェクト名を変えないで!

2.Quarkusプロジェクトを作成します。

$ mvn io.quarkus:quarkus-maven-plugin:0.11.0:create \
    -DprojectGroupId=org.acme \
    -DprojectArtifactId=getting-started \
    -DclassName="org.acme.quickstart.GreetingResource" \
    -Dpath="/hello"

3.動作確認をします。

$ cd quarkus-quickstarts
$ cd getting-started
$ mvn compile quarkus:dev

localhostにアクセスする。
URL:http://localhost:8080

f:id:WoodPecker:20190317003130p:plain

もう一つコンソールを開き、curlを投げてみる。

$ curl http://localhost:8080/hello
hello

とりあえず今回は、ここまで!
お疲れ様でしたー

補足

プロジェクト作成時に、以下のエラーが出て焦ったけど、コマンド打つ階層を間違えてただけだったよ。。。

[ERROR] Failed to execute goal io.quarkus:quarkus-maven-plugin:0.11.0:create (default-cli) on project quickstart-projects: Unable to generate the project, the `projectGroupId`, `projectArtifactId` and `projectVersion` parameters are not supported when applied to an existing `pom.xml` file -> [Help 1]

リンク

続きはこちら↓
未作成
前回はこちら↓ woodpecker.hatenadiary.jp

1/2_QUARKUS(Javaフレームワーク)触ってみた!(導入編)

はじめに

3/7(かな?)に発表された新しいフレームワークのため、
記述内容に拙いところがありますが、ご了承ください。
quarkus.io

QUARKUSとは

サーバ関係でよく耳にするであろうredhat社が作ったJavaフレームワークです。 ( redhat社ホームページ:https://www.redhat.com/ja/global/japan )

何が嬉しいの?

  1. くそ早ええー
  2. くそ軽い!
  3. 既存のライブラリにも対応してるぜ

https://quarkus.io/assets/images/quarkus_graphics_v3_bootmem_wide_03.png

f:id:WoodPecker:20190312215818p:plain
出典:https://quarkus.io/

上記画像は、公式サイトに乗っている画像です。 メモリ使用量とアプリを起動してから最初のレスポンスが返却されるまでの時間です。(画像:上) 一目瞭然ですね。 また、画像にあるように既存の便利なライブラリも利用できるようです。(画像:下)

リンク

続きはこちら↓
woodpecker.hatenadiary.jp

Dockerをはじめてみる。

最近、流行りのDockerですよ。

会社でも使い始めたので、エンジニアとして遅れないためにも身につけておきたい。
(そんなこと言ってたらキリがないけどね。。。。)

冒頭良さげだった、安定のO’Reilly本を購入しました。

続くといいね(他人事

まぁ、これから良さげなところをぼちぼち上げていくとしよう。

Docker [ Adrian Mouat ]

価格:3,888円
(2019/3/11 22:07時点)

cherry-pickでブランチ整理

はじめに

プルリクやブランチ管理ミスった時に整理する術として「cherry-pick」は、とても便利です。 これから行う操作は、ターミナル(Mac)やGit Bash(Windows)での操作を想定しています。

cherry-pickとは

他ブランチに存在する特定のコミットのみを反映させるコマンドです。

やりたいこと

3つのコミットのうち2つのコミットだけを反映させたブランチを作りたい。

操作

まずコミットのログを確認してみましょう。
現在のコミットは、以下の通りです。
・third commit(3番目)
・second commit(2番目)
・first commit(1番目)

$ git log
commit ハッシュ値3 (HEAD -> master, origin/master, master)
Author: ユーザ名 <xxx@xxx.co.jp>
Date:   Thu Mar 7 22:17:21 2019 +0900

 third commit

commit ハッシュ値2
Author: ユーザ名 <xxx@xxx.co.jp>
Date:   Thu Mar 7 22:15:28 2019 +0900

 second commit

commit ハッシュ値1
Author: ユーザ名 <xxx@xxx.co.jp>
Date:   Thu Mar 7 22:05:52 2019 +0900

 first commit

新しいブランチは、以下の通り反映させたい。
・third commit(3番目)
・first commit(1番目)

では、新しいブランチを作り、切り替えます。

$ git branch branchname
$ git branch
branchname
* master
$ git checkout branchname
Switched to branch 'branchname'

新しく作ったブランチのコミットの確認です。
masterと同じコミットですが念のため。。。

$ git log
commit ハッシュ値3 (HEAD -> branchname, origin/master, master)
Author: ユーザ名 <xxx@xxx.co.jp>
Date:   Thu Mar 7 22:17:21 2019 +0900

 third commit

commit ハッシュ値2
Author: ユーザ名 <xxx@xxx.co.jp>
Date:   Thu Mar 7 22:15:28 2019 +0900

 second commit

commit ハッシュ値1
Author: ユーザ名 <xxx@xxx.co.jp>
Date:   Thu Mar 7 22:05:52 2019 +0900

 first commit

ここからが本番です。 1番目のコミットまで状態を戻します。

$ reset --hard ハッシュ値1

その後、cherry-pickで欲しいコミットを持ってくれば完了です。 お疲れ様でした。

$ git cherry-pick ハッシュ値3
[xxxxx] third commit
Date: Thu Mar 7 22:17:21 2019 +0900
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 b.txt
$ git log
commit ハッシュ値3 (HEAD -> branchname)
Author: ユーザ名 <xxx@xxx.co.jp>
Date:   Thu Mar 7 22:17:21 2019 +0900

 third commit

commit ハッシュ値1
Author: ユーザ名 <xxx@xxx.co.jp>
Date:   Thu Mar 7 22:05:52 2019 +0900

 first commit
Date:   Thu Mar 7 22:05:52 2019 +0900

iPhoneでSuicaの新規発行できなくなったんだけど!?

結論から言うと、

Suica削除(払い戻し処理など)を行なった日は、新しいSuicaを発行出来ないそうだ。 (次の日の朝5時ごろから新しく発見可能。)

ある日、

今まで使っていた定期券を変えるために、iPhoneに入っていた定期券の「払い戻し処理」を行いSuicaを削除した。

そこまでは順調だった。。。

「さて、新しくSuica作り直すか!」

名前、年齢、住所...クレカ情報の入力。

...クレカ情報を受け付けてくれない。

今まで使っていたのになぜ!? (他のカードも使ってみたが、結局エラーで発行出来なかった。。。)

そこで、カスタマーサポートに連絡したところ翌日の5時まで新規Suica発行が出来ないことが、発覚した。

Suica削除→新規Suica発行する時は、時間帯などにお気をつけてください。 (その日使う前に、新規発行しようとしてしまったから切符を買う羽目になった。。。)

Junit mock作成

mockの作り方がわからんという初心者が対象になります。

メモ書き程度ですが、お役に立てればと思います。

1つ目 : @injectアノテーションの付いたクラスのメソッドのmockを作るときの例

[main.java]
  @inject
  Hoge hoge;

  public void methodA(String str){
       int a = 10;
       String b= hoge.methodB(a);
       .
       .
       .
       .
  }
[mainTest.java]
  public void test_methodA_001() throws Exception {
        new Expectations() {{
             hoge.methodB(anyInt);
             result="文字";  //1回目の結果
             result=new Exception(); //2回目の結果
        }};

       for(int count = 0; count < 2; count++){
         //Execute
         try{
           methodA("テスト") // 1回目と2回目で結果が違うはず←確認してみて!
         } catch(Exception e) {
           System.out.println("2回目にエラーが投げれられてくる。");
       }
  }

はじめまして。

20代のシステムエンジニアです。(詳細は、プロフィールへ)

 

エンジニアということで、御多分に漏れず、ブログを始めてみました。

(エンジニアは、アウトプットが大事らしいですよ(小声))

 

今後は、日常や技術的なことをきままに書いていこうかと思っております。

 

至らない点が多々あるとは思いますが、優しく見守っていただけると幸いです。

 

今後とも、よろしくお願い致します。