## 移植前の開発環境
|項目 |内容 |
|:———————-|:——————————–|
| IDE | IntelliJ IDEA Community 2022.2 |
| Yarn mappings | 1.19+build.2 |
| Fabric loader
## 概要
JavaでListを作成する際に、1行で書く方法のまとめ。
いつも忘れちゃうので。
## 基本的な初期化
キホンのキです。new してaddする。
“` java
import java.util.ArrayList;
import java.util.List;
public class Sample {
public static void main(String args[]) {
List list0 = new ArrayList();
list0.add(“a”);
list0.add(“b”);
for(String x : list0) System.out.println(x);
}
“`
## 初期値込みで1行で書く方法
以下3つ例示します。
(1) `List.of`
(2) `Arrays.asList`
(3) arrayListと`Arrays.asList` の併用
“` java
import java.util.Ar
# 挨拶
地方IT企業で働いて6年目になります。
基幹システムのコード体系が変わることをきっかけに関連する様々なシステムの修正をすることになりましたので少しでもテストの工数を減らすべくselenideというブラウザのテスティングフレームワークを導入する環境構築についてまとめました。
selenideだけではなく、新規にプロジェクトにアサインされた人でも環境構築できるような文章にしていきたいと思います。
これを見てうまく行かなかったということがあればぜひコメント頂きたいです。よろしくお願いします。
既存のプロジェクトのtestフォルダにselenideのテストコードを置くかどうかで迷いましたが、今回は新規のプロジェクトとして作成しています。
超レガシーwebプロジェクトでも別でプロジェクト作成しておけばそれぞれを疎にしておけるので別にしておく方が便利だと思います。
# selenideとは
seleniumというUIテストフレームワークのラッパーしてより使いやすくしたテストフレームワークです。
単なるテスト実行だけではなくて、スクリーンショットの取得なども自動で行うことができます。
# このドキュメントは?
テストの自動化のハードルが高い方々に向けて、まず最初の一歩を踏み出しやすくするためのツールを作ろうと日々少しずつ作っている中で、「あれ?」と躓いたポイントをメモしておくためのページ。
結果的に皆さんの開発シーンの中で同じような躓きがあったら役立つかもしれないのと、何より忘れっぽい自分のための備忘録。
# 躓き
## aShot を入れたら Selenium が動かなくなった
[Selenium](https://www.selenium.dev/ja/ “Selenium”) を使ってE2Eテストを自動化するのはなかなか古参(?)かも?
個人的にはまだまだ現役だと思っている私ですが、スクリーンショットを撮ろうとすると、その時にブラウザに表示されているエリアしか画像として保存されなくてエビデンス大好きな人たちにとって頭を悩ませるポイントになりがちですよね。
昔は自分で対処していたのですが、ここ最近は [aShot](https://github.com/pazone/ashot “aShot”) というユーティリティがイイ感じにしてくれるらしいので早速 `po
Python,Ruby,PHP,Java,JavaScript,Perlの文字列処理の比較
# Python
https://qiita.com/tomotaka_ito/items/594ee1396cf982ba9887
# Ruby
https://qiita.com/kyohei-horikawa/items/b3308601931c20074c31
# PHP
https://qiita.com/chimayu/items/9b9cb14548aa7dd8da1b
# Java
https://qiita.com/suema0331/items/a3c947076ee1a0c6037a
# JavaScript
https://qiita.com/saka212/items/11ce1f1d6316c1fbf15b
# Perl
https://perlzemi.com/blog/20161003147558.html
Python,Ruby,PHP,Java,JavaScript,Perlの変数の比較
# Python
https://qiita.com/G-Rape/items/854a51ef188cd5933bcc
# Ruby
https://qiita.com/Hashimoto-Noriaki/items/d705a3fb92db14de4742
# PHP
https://qiita.com/tokutoku393/items/72d2f3f8986c97c36a27
# Java
https://qiita.com/takahirocook/items/52298e13281e26e576ab
# JavaScript
https://qiita.com/andota05/items/238ff472a0e711b65275
# Perl
https://perlzemi.com/blog/20161107147852.html
### はじめに
業務の新人施策で、
チーム内で合意形成し、SpringBootをベースにする、
その上で社内で使える技術なら自由に選んでいいよと言われたので、真っ先にnpmが浮かびました。
その理由は、ただjsファイルを用意するだけでなく、
パッケージマネージャーやバンドラーなどの周辺技術を組み合わて、Spring Bootで開発できたらなと思ったからです。
というわけで、とりあえずnpmを入れてみます。
ソースコードはこちらになります。
(コミットメッセージが超適当です。ごめんなさい。)
https://github.com/tkknot/spring-npm
### 作成者スペック
- Jsはそこそこに書けるけど、実務の経験はないので客観的にできるとは言えないかも?
- モダンJSはReactもVueも一応書ける
- モジュールバンドラーからは逃げてきました
- Spring Bootはまだまだ学習中のため、本業務で身につけていきたい
- Spring Boot周りの開発技術はもっとわからない、、、頑張
言語はとにかくまとめることが大切ですね。
# C言語
c言語では構造体という仕組みがあります。
今で言うところのクラス、やオブジェクトのようなものと考えても良いでしょう。
ただ、C言語の場合は、オブジェクトのようにメソッドを持つことはありません。
ただ、データの構造を表すだけ、だから構造体と言われるのですね。
“`c:struct
struct 構造体名{
メンバ 1;;
メンバ 2
};
“`
## 構造体を使わないと
一昔前の仕組みではありますが、この構造体と言う仕組みはよくできていて、構造体を使わないと、ソースがとても読みづらいものになります。
例えば、自動販売機内にある缶ジュースを表そうとしていみましょう。
必要な項目としては、大体
商品名
単価
種別(暖かい 冷たい)
ぐらいでしょうか。
これを変数で表そうとすると、
“`c:変数
char naem[];
int price;
int type;
“`
のようになるでしょう。
しかし、これはあくまで商品aにおいての変数であり、商品bのデータを保存するには別の変数を定義しなければいけません。
これではもし商品
### Lombok
Lombokとは、SpringやSpringBootなどに追加してコードを効率的に作成できるようにするJavaライブラリ。クラス名の上にAnnotationを明示することで、GetterやSetterのようなメソッドを別に作成する手間を省いてくれる。
#### @Data
– 定義
@Getter、@Setter、@ToString、@EqualsAndHashCodeと@RequiredArgsConstructorの機能が含まれている便利なAnnotationである。しかし、最初に設定したデフォルト値を変更する場合、問題が生じるかの世があるため、個々のAnnotationの設定値をデフォルト以外の値に設定して使用したい場合、@Dataの代わりに個々のAnnotationを使用する。
– Annoation
1.@Getter、@Setter:データにアクセスする時に使用
2.@ToString:オブジェクトが持っている情報や値を文字列にして返す
3.@EqualsAndHashCode:equals(Object)メソッドとhashCode()メソッドを作
## Jackson
1. 定義
Java ObjectをJSONに変えたり、JSONをJava Objectに変えるために使用するJavaライブラリ
2. 特徴
(1)XML/YAML/CSVなど様々な形式のデータをサポート
(2)Stream方式で高速かつ柔軟で、Annotation方式でメタデータを記述できる
(3)ObjectMapper APIを使用してObjectにデータを設定する
3. Core Modules
(1)Streaming(jackson-core)
low-level streaming APIを定義する役割とJSON-specific implementationsを含むModule
(2)Annotations(jackson-annotations)
Jackson annotationが含まれているModule
(3)Databind(jackson-databind)
Streaming packageのDatabindingをサポート。StreamingとAnnotations packageに依存
:::note
# 背景
– JasperReportsでPDFを作成する記事は結構あるけどExcelに関する記事は少なかったので
– JasperReports自体はJavaで動作する帳票出力ライブラリ。昔からあるライブラリで日本語の情報も豊富。
# 環境
– Java 11
– jasperreports 6.19.1
– Gradle 7.4.2
# 実装
## 下準備
– 関連ライブラリを入れておく
“` gradle: build.gradle
plugins {
id ‘java’
}
group = ‘qiita.jasper.sample’
version = ‘0.0.1-SNAPSHOT’
sourceCompatibility = ’11’
targetCompatibility = ’11’
repositories {
mavenCentral()
}
dependencies {
// Test
testImplementation ‘org.junit.jupiter:junit-jupiter:5.5.2’
## TDD(Test-driven devlopment)
#### Test Code
TDDに入る前、先ずTest Codeについて知っておきたい。
Test Codeとは、サービスの品質を確認したりバグを見つけるため作成するコードで、サービスが期待どおりに動作しているのか確認できる。
Test Codeのない状態のテストより時間の節約ができるメリットもあるし、初めてコードを見た開発者がTest Codeを通じて、コードの動作を少し簡単に理解できるようにする文書にもなる。
—
#### TDD
1. **定義**
TDDは、開発が完了した後テストを行う方法ではなく、テストをして開発するプログラミング方法。つまり、まずTest Codeを作成し、そこに合格するためのコードを作っていく方法を意味する。
![gg.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2662678/9f4e677d-1208-558c-d14f-0bf049b53c58.png)
![21c.png](https://
## やること
タイトルの通りです。
JavaからKotlinの拡張関数を呼び出し方を書いていきます。
## どうやるか?
JavaからKotlinの拡張関数を呼び出すときは、`ソースファイル+Kt`という名前のクラスのstatic関数としてコンパイルされる。
Javaから呼び出す場合は、`this`となるオブジェクトが第一引数となります。
実際には下記のような感じ。
Kotlinの拡張関数
“`Kotlin:Extension
fun fromJava?.toMapping(): Qiita {
return Qiita(
account = this.account,
username = this.username,
twitter = this.twitter
)
}
“`
Java
“`Java
qiita = ExtensionKt.toMapping(fromJava);
“`
以上です。
https://qiita.com/Q-Lazy/items/9236db59301e058ce086
前回の記事に引き続き[サンプルプログラム][1]作成の際の、SikuliXを利用したコーディングに関する気付きなどを投稿します。
https://github.com/singularity-effect/TextHelper
[SikuliX][2]には開発を支援してくれる、様々な便利機能が用意されています。個人的によく使用するものを解説します。
[1]: https://github.com/singularity-effect/TextHelper
[2]: http://sikulix.com/
## ポップアップダイアログ
よく使われるタイプの定型的なダイアログを利用できます。[Swing][Swing]による実装で、各用途に適したテーマカラーとアイコンでデザインされています。
関数名 | ダイアログの種別
————————|——————
[`popup`][popup
■背景
初歩的なWebアプリの作り方を理解したい。
Java(Servlet+JSP)で学習する。
■基礎知識
【webアプリケーションの基礎技術】
・ルーティング:webブラウザからのリクエストに合わせて、呼び出す処理を切り替える
・テンプレートエンジン:アプリケーションが保持するデータなどをHTMLのひな形と組み合わせてwebページを作成
【Javaでwebアプリケーションを開発するには】
以下の技術やツールを組み合わせる
-Servlet:サーバー上でJavaを実行する技術
-JSP:HTMLの中にJavaのコードを埋め込んで、動的にwebページを生成する技術
-Tomcat:ServletやJSPを実行するためのサーバー用アプリケーション
【参考】
https://web-dev.hatenablog.com/entry/java/servlet/dev-restful-app/table-of-contents
# はじめに
コンストラクタにおけるthisの挙動が頭の中でごっちゃになっていたので学習しました。
アウトプットを兼ねて記事投稿したいと思います。
# いきなり結論
thisの役割:「**自クラスの別のコンストラクタを呼び出す**」
# 実行環境
OS:Windows10 バージョン20H2
言語:Java 8
使用ツール:Spring Tool Suite 4
# 1. コンストラクタのthisの使い方・動作
### ⑴ 使い方
自クラスの別のコンストラクタを呼び出したい場合、このように記述します。
“this(引数);“
もちろん引数なしでも可能です。
### ⑵ 動作
“`Main.java
Public class Main {
public static void main(String[] args) {
new Test(“world!!”);
}
}
class Test{
public Test() {
System.out.println(“Hello”);
}
public Test(String val) {
this()