JAVA関連のことを調べてみた2022年10月07日

JAVA関連のことを調べてみた2022年10月07日

オブジェクト指向設計原則①

# クリーンアーキテクチャを読んでみて
## 序章
SOLIDはかなり時間をかけて学習してきたので、
インターフェイス分離の原則だけまだあまり体感が伴ってないので、
どこかで体感してみたいなと感じました。

コンポーネントレベルでの凝集性は、
それぞれ3つとも相反する特性があって、
現状は閉鎖性共通原則(コンポーネントカプセル化)に振り切った考え方なので、
運用していく中で、再利用性も考慮したうえで、落としどころを見つけていく。

さらにその落としどころが時々刻々変わっていく、変えないといけない状況っていうのが
大変そうではあるけども、とてもやりがいがありそうで体験してみたいという思いがあります。

一旦は最初0から作ったものは、コンポーネントカプセル化に振り切って保守性に特化した設計にして、
徐々に運用していく中で、再利用のための分割や、リリース作業削減のための分割を必要に応じて考慮してく
といった流れが、個人的にはしっくりくる流れかなと考えています。

とても読みやすい記事なので他の書籍と絡めながら読んでいきます。

元記事を表示

メモ:Kubernetes の Java API を利用した Pod のスケールアップを試してみました

Kubernetes の[Java Client](https://github.com/kubernetes-client/java) というのがあったので、試しに pods のスケール・アウトを実装してみました。

“`java
import java.io.IOException;
import io.kubernetes.client.custom.V1Patch;
import io.kubernetes.client.openapi.ApiClient;
import io.kubernetes.client.openapi.ApiException;
import io.kubernetes.client.openapi.apis.AppsV1Api;
import io.kubernetes.client.openapi.apis.CoreV1Api;
import io.kubernetes.client.openapi.models.V1Deployment;
import io.kubernetes.client.openapi.models.V1PodList

元記事を表示

MacにJDKをインストールする

## はじめに
こんにちは、今年(2022年)の11月からSES企業に勤めることになりました。
入社予定の会社では主にJavaを使用するということで、言語習得や資格取得に向けて頑張っています。
本記事では、MacでJavaの勉強するためにJDKをインストールするため少し手間取ったので忘備録として残しておきます。

## JDKをインストールする
インストールは下のOracle公式ページから行えます。
https://www.oracle.com/java/technologies/downloads/#java17
開くと、こんなページに飛びます。
![スクリーンショット 2022-10-06 16.14.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2759696/65d67593-5497-9ff4-9bdc-334526a54b3b.png)

### 1. バージョンを指定してダウンロードする
上で開いたページでスクロールすると、少し下の方に↓のような画面が出てきます。
![スクリーンショ

元記事を表示

レガシー環境でtry-with-resourcesのC1カバレッジを網羅できない場合の対処法

Java 1.8/JUnit 4等のレガシーな開発環境において、単体テストでC1網羅を求められるケースがありました。
関連するライブラリの過去バージョンでは、カバレッジ検出時にコンパイラがコンパイル後に出力した分岐が未到達とされ、一見しただけでは対処しにくい状況になります。
以下に対処方法をまとめたため、同事例に遭遇した方の一助となれば幸いです。

## 問題
– catchの行で分岐が8あると表示される
※tryブロック内の書きようによっては8以上になる
– なぜか1パターンだけどうしても通らない

## 結論
以下を網羅する。

1. try→finally(tryが正常終了)
1. 取得したリソースが非nullで、リソース破棄が正常終了
2. 取得したリソースがnull
2. try→finally→catch(tryで異常発生)
1. 取得したリソースがnull
2. 取得したリソースが非nullで、リソース破棄が正常終了
3. 取得したリソースが非nullで、リソース破棄が異常終了
3. resources→finally→ca

元記事を表示

テクニカル指標からイベントトリガーを発火する

# はじめに

前記事
1. [auカブコム証券のkabuステーションREST APIをcurlで叩く](https://qiita.com/hiuchida/items/fcdd3d6ff921b386a37e)
2. [auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く](https://qiita.com/hiuchida/items/73b7fc846d4c9501ef2f)
3. [auカブコム証券のkabuステーションREST APIの残高照会をcurlとjavaで叩く](https://qiita.com/hiuchida/items/9eb5336755a3d1b1a3df)
4. [auカブコム証券のkabuステーションREST APIの残高照会から先物OPのdeltaを計算する](https://qiita.com/hiuchida/items/6e0d8d5114192bec1632)
5. [auカブコム証券のkabuステーションREST APIのテスト用モック

元記事を表示

Java Silver SE8 に一か月で合格するためのロードマップ

## はじめに
Javaエンジニアになるべく最初の入りとしてJava Silver SE8の合格を目的に1か月かけて資格を取りました。
Java Silver の試験はSE8と最新のSE11がありますがSE8のほうが範囲が狭く合格率が高いです。
試験時間もSE8は120分(56問)でSE11は180分(80問)とかなりの違いがあります。
今回は一か月以内という期間を設けたこともあり合格率少しでも高めるためにSE8を選択しました。

## 事前知識
プログラミングスクールにて半年間勉強(HTML/CSS, Java Script, PHP(Laravel))
Web制作会社にて業務経験3か月未満(PHP/Wordpress)

## 使った参考書

### [「オラクル認定資格教科書 Javaプログラマ Silver SE 8 」](https://www.amazon.co.jp/%E3%82%AA%E3%83%A9%E3%82%AF%E3%83%AB%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E6%95%99%E7%A7%91%E6%9B%B8-Java

元記事を表示

コンソールで遊べるオセロを作ってみる【研修レポート】

研修でJavaを勉強しており、学習の成果を1週間という期間を設けた自主制作という形で披露することになったので、その題材としてオセロを作ることにしました。

## 何故オセロ?
本当は自主制作の題材として小さくとも日常に存在する課題をちゃんと解決するモノを作りたかったのですが、スケジュールと現状の技術力を考えると難しいと判断されたため急遽代替案を用意することに。
そこで、スケジュール感を把握しやすい既存のゲームであり、初学者の多くが通る道であるオセロを自分でもやってみることにしました。

既にありふれているモノを自主制作の題材として選ぶことに抵抗はありましたが、研修を受けている身としての自分の現時点での技術力を試すという観点では丁度よい難易度の題材だと考えました。
また、ネット上にコードが溢れているという点もそれを見ずに完成させる事で自身のコードと他人のコードを比較できるという点もメリットの一つだと考えました。

## 早速つくった
https://github.com/reoboz/java_othello

各クラス・メソッドの動きについてはREADMEに記載してあります。
皆さんが

元記事を表示

【Java・Spring Boot】YAML形式のプロパティファイルから値を取得する方法

# 本記事の内容
この記事では、
Spring BootのプロジェクトでYAML(YML)形式のプロパティファイルから値を取得する方法について解説しています。

## 記事を書く経緯
一般的に、ハードコーディングを避けるため、システム内で使用する値をプロパティファイルに記載して外部化する場面があるかと思います。
Java/SpringBootでは、自動生成される`application.propeties`をプロパティファイル(設定ファイル)として使っていましたが、JSON形式のように読めて可読性も高いため、YAML形式のプロパティファイル`application.yml`を採用しました。

デフォルトのプロパティファイルとなる`application.yml`の他に、メッセージを管理するプロパティファイル`message.yml`も必要となり、これを作成したところ、設定値が取得できずに詰まったので今回記事にします。

## 前提条件
下記の前提条件で、Spring Bootのプロジェクトを作成済みとします。
|使用技術 | バージョン |
|:—–|:——–|

元記事を表示

これからエンジニアを目指す人に読んでほしいWeb開発まとめ

# はじめに
この記事は,以下に当てはまる方が読むことを想定しています.
– エンジニアとして働いたことがない方
– IT企業に就職を考えている方
– Web開発の流れを理解したい方
– HTMLやCSS以外のことを知りたい駆け出しエンジニアの方

# 全体の流れ
どの企業もそうだと思いますが,いきなり開発から始まることはめったにありません.
基本的には,以下のような流れでシステム開発が進んでいきます.知らない単語が出てくると思いますが,後で詳しく説明するので,気にせず読み進めて大丈夫です.

1. チケットが切られる
1. MTGに参加する
1. スケジュールを立てる
1. 調査を行う
1. 設計をする
1. 設計書をもとにDEV環境で開発を行う
1. ユニットテストを行う
1. ソースコードをGitHubに上げて,チームの人にレビューしてもらう
1. STG環境デプロイする
1. テストケースを作成する
1. ブラウザテストを行う
1. リリースに向けたドキュメントを作

元記事を表示

【Java SE11 Silver】入社1ヶ月でJava Silver合格した勉強法

## はじめに
こんにちは、名古屋勤務の1年目エンジニアです。

私は、今年6月前職を辞めてプログラミングスクールに通い、先月IT企業に転職しました。

先月から社外のJava研修で学習しながらJava Silverの勉強を進めていました。

そこで今回は、勉強方法やコツを共有したいと思います。

:::note info
ちなみに合格点65点のところ85点で合格しました。
:::

前提として、プログラミングスクールでは10週間ほどRubyについて学びましたが、
Javaの知識はゼロの状態で始まりました。

前職もITとは全く関係なく、正真正銘の初心者です。

## 勉強方法
結論から言いますと、__黒本を3周しました__
[Java Silver 黒本](https://www.amazon.co.jp/%E5%BE%B9%E5%BA%95%E6%94%BB%E7%95%A5Java-SE-11-Silver%E5%95%8F%E9%A1%8C%E9%9B%86-1Z0-815/dp/4295007625/ref=pd_bxgy_sccl_2/355-3502044-3384762

元記事を表示

gradleのTIPS

## Gradle buildが実行できないとき

以下コマンドを対象のプロジェクトのディレクトリ内で実行してビルドする。
適当なgradleのバージョンを引っ張って実行してくれる
“`bash
./gradlew build
“`

成功したら、プロジェクトディレクトリ内のlib配下 にjarファイルが作成されるので、
lib配下に移動して実行できる
“`bash
pwd hogeProject
cd lib
ls hoge.jar
java -jar hoge.jar
“`

## build.gradleの記述

以下のように書き換えることでJREのバージョンに対応した形でビルドできる
“`java
sourceCompatibility = ’11’
targetCompatibility = ’11’

sourceCompatibility = ‘8’
targetCompatibility = ‘8’
“`

jarにビルドするときは以下のようにマニフェストの記述が必要
“`java
jar {
manifest {
attribu

元記事を表示

TL;DR 2022年版macOSにJavaをインストールする方法

“`sh
brew install java

sudo ln -sfn /opt/homebrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk

echo ‘export PATH=”/opt/homebrew/opt/openjdk/bin:$PATH”‘ >> ~/.zshrc
source ~/.zshrc
“`

元記事を表示

マージしたチャートデータからテクニカル指標を計算する(パラボリック編)

# はじめに

前記事
1. [auカブコム証券のkabuステーションREST APIをcurlで叩く](https://qiita.com/hiuchida/items/fcdd3d6ff921b386a37e)
2. [auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く](https://qiita.com/hiuchida/items/73b7fc846d4c9501ef2f)
3. [auカブコム証券のkabuステーションREST APIの残高照会をcurlとjavaで叩く](https://qiita.com/hiuchida/items/9eb5336755a3d1b1a3df)
4. [auカブコム証券のkabuステーションREST APIの残高照会から先物OPのdeltaを計算する](https://qiita.com/hiuchida/items/6e0d8d5114192bec1632)
5. [auカブコム証券のkabuステーションREST APIのテスト用モック

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlのオブジェクト指向プログラミングの比較

Python JavaScript PHP Java Ruby

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlのオブジェクト指向プログラミングの比較

# Python

https://qiita.com/kaitolucifer/items/926ed9bc08426ad8e835

# Ruby

https://qiita.com/shogo-1988/items/e749208c0733bbe025c0

# PHP

https://qiita.com/mpyw/items/41230bec5c02142ae691

# Java

https://qiita.com/nao0725/items/aba8126c50bf85543c78

# JavaScript

https://qiita.com/shotets/items/e4b2ca36f5cbdc39

元記事を表示

OpenJDKとJDKディストリビューション

https://qiita.com/yoshioterada/items/38cc9e5e0c95f8be84e1

https://qiita.com/yoshioterada/items/2a54dfb60a02a26a2c35

JDKディストリビューション、なぜこんなに種類があるのか。
[OpenJDKと各種JDKディストリビューションの情報源まとめ #minjava](https://qiita.com/yamadamn/items/2dd26a014791b9557199)
以下等がわかりやすかったので自分のためにまとめていたものの蔵出しです…
[JDK、Oracle JDK、OpenJDK、Java SEってなに?](https://qiita.com/nowokay/items/c1de127354cd1b0ddc5e)

## [Java SEとは](https://www.javadrive.jp/start/install/index5.html#section1)
– Java Platform, Standard Edition の略。
– Java

元記事を表示

時刻のみのtime_tを作ってみた

# はじめに

前記事
1. [auカブコム証券のkabuステーションREST APIをcurlで叩く](https://qiita.com/hiuchida/items/fcdd3d6ff921b386a37e)
2. [auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く](https://qiita.com/hiuchida/items/73b7fc846d4c9501ef2f)
3. [auカブコム証券のkabuステーションREST APIの残高照会をcurlとjavaで叩く](https://qiita.com/hiuchida/items/9eb5336755a3d1b1a3df)
4. [auカブコム証券のkabuステーションREST APIの残高照会から先物OPのdeltaを計算する](https://qiita.com/hiuchida/items/6e0d8d5114192bec1632)
5. [auカブコム証券のkabuステーションREST APIのテスト用モック

元記事を表示

【ほぼメモ】Scalaの表現力の高さに恐れおののいたJavaエンジニア

トランプを表現するクラスを書いてみた。
こんな書き方できんのかよ…

“`scala:Hello.scala
package example

import example.Suits._
import example.ValueHolder._

object Hello {
def main(args: Array[String]) = {
println(Ace of Spades) // すごい
println(2 of Diamonds) // とてもすごい
}
}

sealed trait Suits {
def emoji: String
}

object Suits {
object Diamonds extends Suits {
override def emoji: String = “♦”
}
object Clubs extends Suits {
override def emoji: String = “♣”

元記事を表示

Lucene の Tokenizer で 「数字%」や「文字列&文字列」を許容する

備忘録

https://mikolajkania.com/2017/08/27/How-to-change-standard-tokenizer-rules/

を参考にしました。

コードは、

https://github.com/YmBIgo/JFlex_Test/blob/master/lucene_tokenizer.flex.java

https://github.com/YmBIgo/JFlex_Test/blob/master/Sample_Lucene.java

にあります。

## StandardTokenizer

Lucene の `StandartAnalyzer` では、`StandardTokenizer` という 絵文字など1文字なのに3バイト以上で認識されてしまうものを修正するなどの機能があります。つまり、Lucene で全文検索をする際の最初の前処理をしているところと言ってもいいでしょう。

この StandardTokeniser の初期の設定で、Lucene で 「20%」など「数字%」や「A&E」など「文字列&文字列」が弾かれてし

元記事を表示

【Java】覚えた用語一覧集 2 データ型

## データ型 使用頻度の高いもの
|種類|型名 |内容|
|:–|:–|:–|
|整数型 |int|-2147483648 ~ 2147483647 までの整数を取り扱える箱|
|文字列クラス|String| “java”、”勉強”、”Mac” などの複数の文字を扱える箱|

##
|種類|型名|内容|
|:–|:–|:–|
|整数型| byte| -128 ~ 127 までの整数を取り扱える箱|
|整数型| short| -32768 ~ 32767 までの整数を取り扱える箱|
整数型| long| -92223372036854775808 ~ 9223372036854775807 までの整数を取り扱える箱|
|浮動小数点型| float| ± 3.4 × 1039 ~ ± 1.4 × 10 – 45 細かい数字を扱える箱|
|浮動小数点型| double| ± 1.8 × 10308 ~ ± 3.4 × 10 – 324 さらに細かい数字を扱える箱|
|論理型| boolean true| ( 真 ) or false ( 偽 ) 真偽を測る箱|
|文字型| c

元記事を表示

【Java】覚えた用語一覧集 1

## 用語集

|用語|意味|
|:–|:–|
|クラス|データと処理のかたまりのことをクラスと呼ぶ|
|フィールド|クラス内でどのような情報を扱うかのデータのこと|
|メソッド|クラス内に書かれた処理のこと|
|引数|メソットを処理する際に設定できる条件 イメージは材料|
|戻り値|引数を渡して処理を実行した際に戻ってくる結果|
|インスタンス(化)|クラスから作られたオブジェクト、設計図 イメージはレシピ|
|コンストラクタ|インスタンスを呼び出すタイミングで呼び出される特別なメソットのこと|

元記事を表示

OTHERカテゴリの最新記事