- 0.0.1. CRUDのWebApi開発は不要!JsonでWebApiを作れるシステムを作った話
- 0.0.2. 全部 public じゃなんでダメなの?
- 0.0.3. 知恵袋で面白そうな、並べ替えクイズを見つけたので、Javaで作ってみた。
- 0.0.4. エンジニア・プログラマにしか使えないSNSを作ってみた話
- 0.0.5. 【Java発展学習13日目】UMLとアジャイル開発について
- 0.0.6. 最高のWeb開発プログラミング言語は何ですか?
- 0.0.7. Eclipseで学ぶモジュールシステム
- 0.0.8. Couchbase Java SDK解説:分散トランザクション〜エラー処理を理解する
- 0.0.9. ApachePOIを導入する話
- 0.0.10. docker+opcua+griddbで簡単なシステムを考えてみる
- 0.0.11. 【Java発展学習12日目】テストの分類とその品質保証、リファクタリングについて
- 0.0.12. Couchbase Java SDK解説:分散トランザクションプログラミング入門
- 0.0.13. JEP 400: UTF-8 by Default
- 0.0.14. Java Stream API を無頓着に使うのはやめよう
- 0.0.15. [Processing] 筒を描く
- 0.0.16. デザインパターン勉強会⑤Singleton
- 1. はじめに
- 2. Singleton
- 3. java基礎のおさらい
CRUDのWebApi開発は不要!JsonでWebApiを作れるシステムを作った話
# はじめに
タイトルの通りです
定義を設定すだけで、CRUDのRESTWebapiを作れるシステムです似たようなもので、FirebaseのRealtimeDatabaseやFireStoreがありますが
色々と制限が多く、バリデーションが難しいようだったので作ってみましたJava(Spring Boot)とMongoDBで作りました
ここで使ったシステムです
[エンジニア・プログラマにしか使えないSNSを作ってみた話](https://qiita.com/HawkClaws/items/599d7666f55e79ef7f56)# フロー図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/911989/c9d9c3f3-5f05-30bc-cb2f-9c8204f82df6.png)# フロー詳細
## WebApi定義を登録
管理者用WebApiを使用し、API定義を登録します
登録例
`apiUrl:APIのURL`
`apiSecret:認証に使用す
全部 public じゃなんでダメなの?
## はじめに
Java など、オブジェクト指向言語に触れたとき困惑するものの一つが **アクセス修飾子** だと思います。
**なんでこんなもん必要なんだ** って気持ちのせいで、一向に身につかない…
全部 public でいいじゃん。無駄にアクセスできないエラーが出てくるだけじゃん。
そんな方(過去の自分を含む)へ贈る記事です。## アクセス修飾子ってそもそも何?
とりあえず Java で話をすすめていきます。
アクセス修飾子とは以下みたいなやつですね。““java
class MyAccess {
public String public_str = “public access OK!”; // 変数に public をつけるとどこからでもアクセスできる
private String private_str = “private access OK!”; // 変数に private をつけるとクラス内でしかアクセスできない
}public class Main {
public static void main(String[]
知恵袋で面白そうな、並べ替えクイズを見つけたので、Javaで作ってみた。
※Qiita記事初投稿です。色々至らない点などありましたら、コメントでお教え頂ければ修正します。
##質問:「ち・お・ん・ま・こ・さ・ら」を並べかえてたべるものにする
質問の知恵袋リンク:
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13244749653##条件と使うメソッド
条件として7つのひらがなを必ず1つ以上使うことになります。
Javaの乱数にはRandomクラスがありますが、この場合では重複厳禁なので使えません。
今回は、Collectionsクラスのshuffleメソッドを使います。まずは、質問文通りのひらがなが入った配列と正解例の配列を用意します。
“`Java:Sorting.java
String array[] = {“ち”,”お”,”ん”,”ま”,”こ”,”さ”,”ら”}; //質問文
String correct[] = {“お”,”こ”,”さ”,”ま”,”ら”,”ん”,”ち”}; //正解例
“`shuffleメソッドは、Collectionsクラスのメソッドな
エンジニア・プログラマにしか使えないSNSを作ってみた話
# はじめに
通常のSNSで胡散臭い人が多いと感じてしまいました
プログラミングスクールが流行り、エンジニアになって億稼いでます!みたいな・・・そこで、本当のエンジニア・プログラマしか使えないSNSを作ってみました!
つまり、WebApi提供のみのSNSです
一般ピープルが使うようなフロントエンドなんてありません!!
Postmanなり、なんなりを使って叩いてくださいエンジニア・プログラマしかWebApiが叩けないであろうという考えなので、
エンジニア・プログラマにしか使えないSNS!ということですこの記事を見ている、プログラマ・エンジニアの方であれば使えますよね??
実際、WebApiが叩くことが出来れば誰でも使えてしまうわけですが・・・。
`2021/07/17 更新`
このWebApiを作ったシステムについて書きました
[CRUDのWebApi開発は不要!Json登録でWebApiを作れるシステムを作った話](https://qiita.com/HawkClaws/items/6f5a6938318fb7d7983d)# 目次
####エンドポイント
`ht
【Java発展学習13日目】UMLとアジャイル開発について
# 技術者間で利用される3つの言語
技術者間でコミュニケーションを行う場合、主に以下の3言語が利用される。| 言語 | 内容 |
|:–|:–|
| 自然言語(natural language) | 一般に人々が利用する言語 |
| プログラミング言語(programming language) | プログラムのソースコードとなる言語 |
| モデリング言語(modeling language) | プログラム構造を端的に表現する言語(図) |# UML(Unified Modeling Language)
[参考1: UML入門](https://www.itsenka.com/contents/development/uml/)
[参考2: UML](https://qiita.com/devopsCoordinator/items/7d460008177b318129ea)
**統一モデリング言語**とも呼ばれるUMLは、オブジェクト指向言語の設計図となるモデリング言語の「標準規格」となっており、以下の13種類に分類される。| 分類 | 名称 | 描画内容 |
|
最高のWeb開発プログラミング言語は何ですか?
さまざまなプログラミング言語がさまざまなプログラミング技術をサポートしており、それぞれに複雑さがあります。 さらに、新しいプログラミング言語がどんどん出現しており、それはまばゆいばかりです。
以下は、Web開発に最適な厳選されたプログラミング言語の一部です。各言語を選択する理由を詳しく紹介します。
![1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482909/5672757b-2a0b-6777-d6cd-b2bbb875b00d.jpeg)##1.JavaScript
JavaScriptがWeb開発者によって最も人気があり言語の1つであることは間違いありません。さらに、Webアプリケーション、フロントエンドとバックエンド、およびモバイルアプリケーション(React Native)を同時に構築できる唯一のプログラミング言語です。
クライアント側のJavaScriptは非常に安全で高速であり、クライアントブラウザですばやく実行できます。 さらに、JavaScriptは比較的簡単に習得できます。
Eclipseで学ぶモジュールシステム
#概要
モジュールを理解するのに苦戦したので、実戦形式でまとめました。
細かな仕様や、概念については別の記事にて作成中ですのでしばらくお待ちください。IDE:「Eclipse」 Java SE9 以降対応
OS:Windows
コマンドラインとIDEを交えながら説明しますので、他のOSでも応用できるかと思います。
##準備
準備で作成したプロジェクトを何度も改変して解説していきます。
簡単に作る物を説明します。+ ライブラリ
+ TaxCalculator(税金計算機) 貰ったお金から税金を計算し表示するクラス。
+ WorldTaxRate(世界の税率) 各国の税率と国名を列挙型で保持しているクラス。
+ アプリケーション
+ App(実行クラス) ライブラリを使用して実行するクラス。###ライブラリの作成(mylib)
1. まずは「mylib」プロジェクトを新規作成します。
2. 次にパッケージとクラスを下記の画像と同じ名前、ディレクトリで作成します。
1. 新規パッケージ⇒「math.assets.api」と「math.assets.
Couchbase Java SDK解説:分散トランザクション〜エラー処理を理解する
## はじめに
本稿は、Couchbase Java SDKでの分散トランザクションにおけるエラー処理を理解するための情報を提供することを目的としています。
そのために、まずCouchbaseの分散トランザクションにおける中心となるコンセプトについての解説から始めます。
本記事の先行テキストとして以下をご参照ください。
[Couchbase Java SDK解説:分散トランザクションプログラミング入門](https://qiita.com/yoshiyuki_kono/items/4efb2f1f5a03051e28c5)## コミットとロールバック
### コミット
まず、Couchbaseの分散トランザクションでは、`ctx.commit()`により、トランザクションのコミットを明示的にプログラミングすることができます。
また、Couchbaseの分散トランザクションでは、コミットは自動的に行われます。トランザクションロジックコールバック(ラムダブロック)の最後に`ctx.commit()`の明示的な呼び出しがなくても、例外がスローされない限り、コミットが実行され
ApachePOIを導入する話
ApachePOIにかなり躓いたので備忘録的に
導入の手順を残しておくことにするまず、ApachePOI通称ぽい
(海外の方がYoutubeで説明している動画を閲覧すると
「ぽぉぉい」と何度もいうのでだんだんじわじわ来る)使用している開発環境に導入することで
Excelとの連携が取れ
【Xlsx】や【Xls】といったエクセルファイルの
操作が行えるというものである今回の使用環境
===================================
Eclipse
ApachePOI5.0.0
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーまずは
ApachPOIをDL(https://poi.apache.org/)
よりdownloadのリンクをクリック
binaryとsourceの両方があるが
迷ったらsourceをDLしろというのは個人的鉄則(開発者用などの機能がふんだんにある可能性もあるが
必要なファイルの漏れなどはなくなる可能性が高くなる)その後解凍すると
poi-*.*
docker+opcua+griddbで簡単なシステムを考えてみる
## はじめに
docker環境で設備から取得した値をopcuaに集約し、定周期でGridDBに蓄積する超簡単なシステムを考えてみます。
(設備はないので適当な値をopcタグに書き込みます)
イメージは↓の感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/168779/b945c7ac-1a6f-0d64-b654-1ceb2f267b8d.png)
[GridDB プログラミングチュートリアル](https://www.toshiba-sol.co.jp/pro/griddb/docs-jp/v4/GridDB_ProgrammingTutorial.html)を自分なりにアレンジ加えた感じです。
家でお勉強用にちゃちゃっとやったやつなので全体的に適当です。
またもや自分の備忘録ですね。## sample
[mototoke/opc-ua-griddb-docker](https://github.com/mototoke/opc-ua-griddb-docker)にソース
【Java発展学習12日目】テストの分類とその品質保証、リファクタリングについて
# 品質段階
プログラムの開発品質を判定する段階は、以下の通り。| 段階 | 状態 | 内容 | 判定方法 |
|:-:|:–|:–|:–|
| 1 | コンパイルエラー | 文法上の誤り | コンパイル |
| 2 | ランタイムエラー・異常終了 | プログラム実行中に異常終了が発生 | テスト |
| 3 | 仕様非準拠 | 正常終了するものの仕様通りでない | テスト |
| 4 | 完成 | 全機能が仕様通りに正常終了 | テスト |# 4段階のテスト
`テスト`を**段階別**に分類すると、以下のようになる。| テスト | テスト対象 |
|:–|:–|
| `単体テスト(UT; Unit Test)` | ある一つの「クラス」または「機能」 |
| `結合テスト(IT; Integration Test)` | 単体テストが完了した複数の「クラス」・「機能」 |
| `総合テスト(ST; System Test)` | 結合テストが完了した全ての「クラス」・「機能」 |
| `受け入れテスト(UAT; User Acceptance Test)` |
Couchbase Java SDK解説:分散トランザクションプログラミング入門
## 概要
分散トランザクションによって、複数のドキュメントにまたがるドキュメントの変更(ミューテーション )、つまりインサート、リプレース、およびデリートに対して、一つトランザクションスコープ内で実行することができるようになります。トランザクションがコミットされるまで、これらのミューテーションは、他のトランザクション(Couchbaseデータプラットフォームの他の部分のどこにも)に反映されません。
Couchbaseの分散トランザクションは、次のような特徴を持ちます。
– 開発者がトランザクションをロジックのブロックとして表現できる、高レベルで使いやすいAPI。
– 高いパフォーマンスとスケーラビリティをサポートするための、リードコミットの分離レベル。
– エラー処理(他のトランザクションとの競合に関するものを含む)## 要件
### 製品バージョン
– Couchbase Server6.6.1以降
– Couchbase Javaクライアント3.1.5以降### 前提
– Couchbaseクラスターの全てのノードが同期するようにNTPが構成されている
– アプ
JEP 400: UTF-8 by Default
動きがあったので備忘。
https://openjdk.java.net/jeps/400
* file.encodingやnative.encoding(SE 17以降)で
Java SE API default文字セットに一律:UTF-8が指定される仕様変更。
従来はplatform defaultでした。
* JEPで提唱の通り、主にアジアロケール設定のWindowsユーザに影響あり。
つまり日本っすね。。。>In other environments, the risk of changing the default charset to UTF-8 after more than twenty years may be significant.
We expect the main impact will be to users of Windows in Asian locales, and possibly some server environments in Asian and other locales.
Possible scen
Java Stream API を無頓着に使うのはやめよう
# はじめに
Java 8で導入されたStream APIはとても便利なので、筆者もふだんから開発で活用しています。
ところが、Stream APIを使うことで逆に可読性が落ちたり、見通しが悪くなっているコードというのもしばしば目にします。
本稿では、可読性が高く見通しの良いコード(クリーンコード)を書くためのテクニックを紹介します。なお、本稿のソースコードはAdoptOpenJDK 16で動作確認をしました。
# こんなコード書いてませんか?
簡単なサンプルとして、以下のレシピ検索サービスの実装を題材にします。“`java:RecipeService.java
// レシピ検索サービス
public class RecipeService {private Recipes recipes;
public RecipeService(Recipes recipes) {
this.recipes = recipes;
}// 指定した材料を含み、指定した時間(分)内に作れるレシピを、評価の高い順に3つ推薦する
[Processing] 筒を描く
#こんな
![Tubeクラス.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554244/6fc97e26-2d8d-806d-d7e0-7c341c76bee2.gif)#プログラム
コンストラクタの引数はとりあえず2種類
`Tube(半径,淵の厚さ,長さ,角度)`
`Tube(半径,淵の厚さ,角度)`使う時は
`tube.draw(角度);`
`tube.draw();`難点はインスタンス生成時にstrokeとfillが決まること
“`Tube.java
Tube t;void setup() {
size(800, 800, P3D);
frameRate(30);
t = new Tube(200, 50, 500, 360);
}void draw() {
background(50);
translate(width/2, height/2);
rotateY(frameCount * 0.016f);
t.draw(frameCount
デザインパターン勉強会⑤Singleton
はじめに
ZOOM勉強会の議事録です。
「増補改訂版Java言語で学ぶデザインパターン入門」を読んで、プログラム作成・パターンの理解を行います。
第5回はSingletonです。Singleton
インスタンスが1つしか無いことを保証するパターンです。
Singletonクラスの役割は以下です。
- Singleton
唯一のインスタンスを提供するクラス
また、コードは以下です
【Java】【Kotlin/JVM】整数へのキャストでの丸め
https://qiita.com/neonemo/items/0e27cccd845630e02edc
↑この記事を見て、そういえばよく忘れるなぁと思ったのでまとめておく。
—
Java と Kotlin/JVM で浮動小数点数を整数にキャストすると
端数は `0` に近づける方向に切り捨てられる。“`Java:Java
System.out.println((int) -0.75); // > 0
System.out.println((int) -0.25); // > 0
System.out.println((int) +0.25); // > 0
System.out.println((int) +0.75); // > 0
“`“`Kotlin:Kotlin/JVM
println((-0.75).toInt()) // > 0
println((-0.25).toInt()) // > 0
println((+0.25).toInt()) // > 0
println((+0.75).toInt()) // > 0
“`—
The J
【Java発展学習11日目】標準的な開発ツール
# Javadoc
`ソースコード → プログラム仕様書`の自動生成を行う開発ツール。## Javadocコマンド・オプション
[参考: javadocコマンド](https://java-code.jp/49)
`ターミナル`等のコマンドラインツールで`Javadoc`を出力するコマンド・オプションは、以下の通り。“`zsh:Javadocの出力
% javadoc <オプション> <.javaファイル>
“`| オプション | 内容 |
|:–|:–|
| `-d <出力先パス>` | `Javadoc`ドキュメントの出力先を指定 |
| `-private` | `private`メンバを出力対象に加える |
| `-encoding` | `ソースコード`の文字コード |
| `-docencoding` | `Javadoc`ドキュメントの文字コード |
| `-charset` | `Javadoc`ドキュメント閲覧時の文字コード |
| `-author` | `@author`タグが付与されるクラスの**実装者**を出力 |
| `-version`
Javaの環境構築(EclipseとSQLServer)
# はじめに
# 目次
– Eclipse
– SQLServer# Eclipseの環境構築
下記からEclipseをインストールします。
https://mergedoc.osdn.jp/
ダウンロードしたdmgファイルを開いてドラッグ&ドロップします。
![スクリーンショット 2021-07-14 16.35.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663458/3c808a88-c39f-6579-9d56-11d1cad449eb.png)
アプリケーションフォルダ内のEclipseを右クリックして起動
ワークスペースのためのディレクトリ選択はそのまま起動![スクリーンショット 2021-07-14 16.38.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663458/ac593834-7538-bbe0-2447-9e63fcd035e8.png)
# Eclips
【備忘録】java基礎のおさらい① 形式編
java基礎のおさらい
はじめに
何かの間違いで、この記事を見つけてしまった初学者の方へ
これは私が私のためにわかりやすくまとめたものであって,
当方、生後1か月未満のエンジニアのため、もしかしたら違う解釈をしている可能性があるので、あまり本気で参考にするのは控えたほうがよろしいかと思いますっていう忠告です。
あと大体理解したつもりだったのですが、どうやらまだまだ全然くそったれだったのでシリーズ化とします。java 基本的なルール
命名のルール
- 変数名:例) sampleApple
最初は小文字、二単語の組み合わせなら単語の初めから大文字
- クラス:例)SampleApple
最初とつなぎ目だけ大文字
- 定数:例)SAMPLE_APPLE
全部大文字
修飾子のルール
- public:どこから