Tagbangers Blog

Java

JUnitテストについて

暖かくなったり寒くなったり毎日着る服に困りますね。こんばんは、内藤です。 今回はユニットテストについて書いていきたいと思います。 テストと言われたら、テスト仕様項目書を書いてそのテストを黙々とこなしていく方法しか知らなかった為、 テスト用のコードを書いてビルド時に自動的に実行してくれるなんて便利すぎるだろと感動しました。 JUnitテストって? Javaプログラム単体テスト専用フレームワークです。 ユニットテストを描くことによって正しく動作しているか確認できます。 また、一度描くと何度も手軽にテストを行うことができますし、 同じようなテストを作成する場合に使い回すことも可能です。 今回、私はC...

Javaの再勉強

初めまして、2月1日からタグバンガーズで勤務することになりました内藤です。 以前の会社ではactionScriptとJavaを主に使ってました。 1〜23日の間、Devチームにて研修をさせて頂いたのですが、Javaを使っていた私は謎の余裕に満ちてました。 いざ研修が始まってプログラムを組むってなった時、javaの知識がパッと頭の引き出しから出せない事に気付きました。 javaだけでプログラムが書けない、文字表示すんのどうすんだっけ、あぁSystem.out.printか、全然覚えてないわ ってな感じだったのでこれは勉強しなきゃマズイと思いこそこそjavaの再勉強と再発見をしていきました。 その...

Hibernate Search + Elasticsearch を試してみる (Amazon Elasticsearch Service 版)

前回の記事では Hibernate Search を使って Docker コンテナ上の Elasticsearch と連携してみました。 今回は AWS のフルマネージドな Amazon Elasticsearch Service と連携させてみましょう。 記事中のサンプルコードはここにあります。 環境: Mac OS X Hibernate Search 5.8.0.CR1 Amazon Elasticsearch Service (Elasticsearch version 5.5) 1. Elasticsearch Service を作成する AWS マネージメントコンソールの Elas...

ユニットテストを実装してみる

こんにちは、藤岡です。 今週はユニットテストについて学びました。 ユニットテストとは、プログラムを構成する個々のメソッドが正しく機能しているかを確かめるためのテストのことです。 ユニットテストのメリットは、全体でテストをするよりも細かく分けてテストをした方が、バグの原因がどこにあるのか突き止めやすいことと、テストを意識してプロダクションコードを書くことで結合度を低く保てるため、互いに影響を及ぼしにくくなるところです。 一方で、これは開発者によって実施されるため、開発者にかかる負担が大きくなりやすいというデメリットもあるそうです。 今回僕がやるのは、今まで作ってきたプログラム(cat、ls、ch...

Basic認証をJavaで導入する2

こんにちは、藤岡です。 四苦八苦して、やっとJavaで作ったWebサーバアプリにBasic認証を導入することができました。 このプログラムの概要については、前回の記事で説明してあります。 完成したものは、GitHubにあげておきました → https://github.com/hiroki0976/Server2 このプログラムを作る中で、Socketの使い方と、Threadの性質、Input(Output)Streamクラスの性質がよく理解できました。 特にInput(Output)Streamクラスについては、流れの概念を表すクラスで、一度使用すると消えてしまう特徴があったので理解しにくか...

Basic認証をJavaで導入する

こんにちは、藤岡です。 今週は前回作ったWebサーバアプリの改良をしていたのですが、Basic認証の機能を追加するところでつまずいてしまったので、あまり進められませんでした。 しかし、考え方として多くを学び得ることができたので、共有していきます。 Basic認証とは? 僕はこのサイトでBasic認証の概要を掴みましたが、大まかに説明すると、その名の通り簡易的な認証機能のことです。 ブラウザでこの機能が実装されたURLにアクセスすると、このような画面が出てきて、UserNameとPasswordが正しければ先に進めるというものです。 今回は、これをJavaで作ったWebサーバアプリに組み込んでみ...

Javaでlsコマンドを作る

こんにちは、藤岡です。 今週も、先週に引き続き「ターミナルのlsコマンドをJavaで作る」ということをやりました。 ようやく完成に近づいたので、それを共有したいと思います。試作品はこちらです。 このプログラムを作るに当たって、ポイントとなったのは オプションが指定された時にそれをどう受け取るのかということ オプションが指定された時にそれぞれどう場合分けして処理させればいいのかということ ということです。 それぞれどう対処したのかを解説します。 1. オプションをどう受け取るか これが最初の難関でしたが、Character型の配列に指定されたものを追加していくという方法で解決しました。 具体的に...

ターミナルのコマンドをJavaで作る

こんにちは、藤岡です。 今週も学んだことを共有していきたいと思います。 今週はパソコンの受け継ぎを行ったので、MBAからMBPにグレードアップしました。 いつの年のものかは知りませんが、明らかにPCの解像度が綺麗になっていたので、時代の進歩を感じました。 また、キーボードもApple純正の「Magic Keyboard」になり、ディスプレイも2画面から3画面となったことで、作業がかなり快適になりました。 自分にはもったいない環境だとは思いますが、是非とも活用していきたいです。 さて、今週は主にJavaについて学んだのですが、以下の2つの課題を出していただきました。 javaでcatコマンドを作...

JS、Javaでサンプルプログラムを作ってみる

こんにちは、藤岡です。 今週も、先週に引き続きJavaとJavaScriptの勉強を進めました。 今週の課題として出していただいたのは、以下の3つです。 JSで四則演算を行うプログラムを作る JSで電卓を作る Javaで誕生日を入力し、年齢を算出させるプログラムを作る それぞれ、説明していきます。 四則演算プログラム(JS) このプログラムは、単純に「掛け算」、「足し算」、「引き算」、「割り算」を計算させるものです。 注意しなければならないのは、足し算を行う時です。というのも「+」を用いて計算させているため、数値が文字列として扱われてしまう危険性があるということです。そのため、「parseIn...

Hibernate Search + Elasticsearch を試してみる (Docker 版)

Hibernate Search 5.6 から Elasticsearch がサポートされました。 Hibernate Search は全文検索用のインデックスを Hibernate のエンティティのライフサイクルにあわせてリアルタイムに自動生成してくれます。 前回の記事では Elasticsearch の Docker イメージを使って簡単に動作を確認してみましたが、今回はさらに Maven のライフサイクルあわせて Docker の起動停止を行ってみます。 docker-maven-plugin を使うと、Maven の integration-test 実行時に Docker コンテナの...