$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

Javaに入門している(その1)

Javaアルゴリズムを紹介している本に書いてあるアルゴリズムを全部Javaで実装してみるというのをやってみたかったので、まずJavaに簡単に入門している。

Javaの構文を理解する

まあ簡単だった。

IntelliJでとりあえずHelloWorldを動かす

ここまでも簡単。

  • とりあえずNew Projectして、Javaプロジェクトを作る
  • srcディレクトリに入れるらしいことがわかる
  • src/HelloWorld.javaを使ってmainメソッドでprintする
  • IntelliJでRunボタンを押したら普通に動く
  • なるほど簡単

Javaでもテスト書けるようにする

アルゴリズムを実装するなら簡単にテストくらいは書きたい。ここからが大変だった。

  • JUnitというのを使うらしい
  • JUnitJava標準には入っていないので、依存追加する必要があるらしい
  • jarファイルを取ってきてclasspathみたいなの(?)を追加するとできるらしい
  • jarを手で取ってくるのはだるそう

ビルドツールを使えるようにする

  • 依存管理とかビルドツールとかの意味で、Mavenというのがあるらしい
  • Maven 入門」でググるも、なんかよくわからん
  • Gradleというのもあるらしい
  • 「Gradle 入門」でぐぐったら、 Gradle入門 - Qiita みたいな良さそうな記事が見つかる
  • Gradleを使えるようにしようと思う
  • さっきの記事を参考にgvmでgradle入れる

GradleをIntelliJから使う

  • gradleを入れたのはいいけど、IntelliJからどうやって使えばいいかわからん
  • New Projectして、Gradleプロジェクトを作ればいいっぽい
  • 作る
  • なんかpopupでgradle wrapperがどうのこうのって書かれていたから、メッセージに従ってOKを押す
  • .gradleとかgradlewみたいなファイルが自動的にできた
  • これで雛形ができた?

テストコードを書いてみる

  • とりあえずsrc/Sample.javaとかにaddNumみたいな足し算メソッドを定義してみる
  • src/SampleTest.javaにテスト書いてみる
  • IntelliJでRunしようとするも動かない
  • なぜ
  • gradleはsrc/main/java/に実装ファイル、src/test/java/にテストファイルを置くのがデフォルトになってるらしい
  • src/main/java/Sample.javaとsrc/test/java/SampleTest.javaを配置
  • IntelliJでRunしようとするも動かない
  • なぜ
  • IntelliJで、src/main/java/をMark Directory as Sources Rootして、src/test/java/をMark Directory as Test Sources Rootする
    • デフォルトでなっているはずなんだけど、いろいろいじっていたせいでおかしくなっていたらしい
  • IntelliJでRunする
  • 動いた、助かった

まとめ

  • いつもは結構細かいところも気になっていろいろ調べてたけど、アルゴリズムを勉強するためにJavaをやりたいくらいの温度感なのでスピード重視でやった
  • スピード重視でやっても、4時間くらいいろいろハマってた
  • とりあえず適当なgradleプロジェクトを作るとこまではいけたので、これで実装できそう
  • とりあえずの成果は https://github.com/shibayu36/java-gradle-sample
  • なんか最近はもうちょっとこうした方がいいとかあったら教えてください

次ははてなインターンの事前課題をJavaで軽く実装してみて、その後にアルゴリズムの本を読んでみる。