java java歴4ヶ月になりました
TRANSCRIPT
![Page 1: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/1.jpg)
JAVA歴4ヶ月になりました
![Page 2: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/2.jpg)
事前の経験
•本は何冊か読んでいた
•ほかの言語は使えるので、Javaの特徴を論じるとかはできた
•コンパイラを動かしたのは3回くらい
Javaは未経験
• Html5の調査とかはやっていた
• CoffeeScriptの調査とかも
•直前にASP.NET MVCの勉強をしたら割とサクサク使えるようになった
ちゃんとWebアプリを作ったのは8年ぶりくらい
![Page 3: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/3.jpg)
求められたこと
Webアプリの開発
フレームワークの選定から
できればJavaで
途中からクライアント側の処理がたんまり必要と分かった
![Page 4: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/4.jpg)
とりあえず最初に
Javaは嫌いです
• 言語設計がどうも保守的で実用より理論主導
• 学習コストが.NETの3倍くらいかかったような
• 様々なライブラリが自由に組み合わせられるのはよいが、組み合わせのたびにためして
みないと
• とはいえ言語ってのは好き嫌いはあまり関係ない
• 言語の中でどういう工夫ができるかが醍醐味
![Page 5: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/5.jpg)
利用した技術
あと感想とか
![Page 6: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/6.jpg)
JAVA
きわめて保守的な言語
•できた時は先進的だったんですけどね
•新しい機能はなかなか入らない
•初期化構文は割と柔軟で気に入った
オブジェクト指向
•オブジェクト指向があれば他は何とかなる
言語が保守的な分、ライブラリは結構先進的
![Page 7: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/7.jpg)
STREAM API
ラムダ式が使えるようになったのはよかった
使いづらいと思う
• Zipがないとか
• まだ機能不足?
• eclipseのデバッガでラムダ式の内部変数が見れない?
![Page 8: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/8.jpg)
JAVA OPTIONAL
Jsonシリアライズに対応し
ないのでほぼ導入できず
![Page 9: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/9.jpg)
JUNIT
基本に忠実なテストライブラリ
次期バージョンがそろそろ出て最先端に返り咲く
予定らしい
![Page 10: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/10.jpg)
ASSERTJ
JUNITの記述をDSL的に書くプラグイン
• 十分な表現力
• ドットでつないでいくのはIDEとの相性がとても
いいと思う
![Page 11: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/11.jpg)
APPACH POI
Java上でもExcelが編集できる
重い
• Excelマクロの置き換えを目指しているのかどうも
APIが一部低レベル
•そんなに品質も高くない
•どうせxlsファイルとかもう扱わないんだしxml直接いじるのもいいかも
![Page 12: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/12.jpg)
EXCEL(方眼紙)
お客さん指定のテンプレートを見てみたら方眼紙だったので仕方ない
重い
• 方眼紙一つ一つのデータを扱う必要がありますからね
保守性がとても悪い
• 高度なExcel技術の見せ所
![Page 13: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/13.jpg)
SPRING FRAMEWORK
DIコンテナ
• インスタンスの組み立てというオブジェクト指向の欠
点をうまくおぎなっている
様々なモジュールの集まり
![Page 14: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/14.jpg)
SPRING BOOT
All in oneなのでSpringでのWeb開発をすぐに始められる
• インストーラーを使うだけですべて設定済み
• Webサーバーすら付属
• IDEも専用のものを用意(eclipseベースだが)
• 痒い所に手が届く
• まあどれもこれもVisual Studioなら当たり前のレベルですが
• というかVisual Studioに比べると全然足りない
![Page 15: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/15.jpg)
SPRING TOOL SUITE
Spring boot専用IDE
• eclipseベース
• eclipseのプラグインでも使える
![Page 16: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/16.jpg)
ECLIPSE
IDE
• Visual Studioより機能は多そう
• Visual Studioとの設計思想の違いを感じる
![Page 17: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/17.jpg)
SPRING MVC
WebのMVCモデルに対応
DIコンテナとの相性はとてもいい
![Page 18: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/18.jpg)
SPRING SECURITY
Spring framework標準の認証
JPAと連携してパスワードの列指定するだけで認証してくれる?
独自認証も可能
![Page 19: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/19.jpg)
THYMELEEF
Spring Boot標準のHTMLテンプレートエンジン
機能自体は普通?
XML パーサーを利用しているため文法の制限がきつい
![Page 20: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/20.jpg)
SPRING DATA JPA
O/Rマッパー
• O/Rマッパーとしての実力は未調査
• APIがそのままだととても使いづらい
![Page 21: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/21.jpg)
QUERYDSL
JPAのサポートAPI
•コードの自動生成を利用
•モデルクラスに合わせたAPIを自動生成
• DSLとして優れたものに仕上がっている
![Page 22: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/22.jpg)
GRADLE
ビルドツール
スクリプト言語を使った柔軟な構成
よくわからない
• 体形的に学習したほうがいいと思うのだが1週間はかかりそうで
• とりあえずコピペで動いてはいるのだが
![Page 23: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/23.jpg)
HEROKU
公開はHerokuで
少しお金があればかなり便利に使える
• 気軽に開発できるというコンセプト
たまに動かなくなるとかはどんなものだろう
![Page 24: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/24.jpg)
HEROKU CONNECT
HerokuとSalesforceを気軽に連携
• Salesforce上で利用したい情報を指摘するだけでHeroku
上のProstgresqlと同期
パスワード、blobデータは連携できません
![Page 25: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/25.jpg)
SALESFORCE API
パスワード認証のために利用
画像を得るために利用
![Page 26: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/26.jpg)
GMAP API
Google mapの機能を利用
•とりあえずピンを立てた画像を取得
![Page 27: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/27.jpg)
TYPESCRIPT
クライアント側での処理が複雑になったので導入
大規模じゃないとそんなに使いでがなさそうな
•静的片付けとコンパイルが最大の利点
ある程度可読性が高くなる
• IE10でアロー演算子が使える
ライブラリの依存性管理までやってくれるの
![Page 28: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/28.jpg)
VISUAL STUDIO CODE
EclipseのTypescriptプラグインが遅くて使い物にな
らなかったので導入
軽くて快適
![Page 29: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/29.jpg)
JASMINE
JavaScript用テストライブラリ
TypeScriptにも対応
• テストのassertがいまいち動的
![Page 30: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/30.jpg)
VUE.JS
JavaScriptの画面フレームワーク
MVVMパターンに特化
• 画面の部品化の機能なども充実
2.0で仮想DOMに対応した
![Page 31: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/31.jpg)
JQUERY
便利機能はJQUERYがやっぱり便利
いずれほかの方法に移行していきたいところ
![Page 32: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/32.jpg)
まとめ
![Page 33: Java java歴4ヶ月になりました](https://reader033.vdocuments.net/reader033/viewer/2022042504/587083301a28ab57368b6dc9/html5/thumbnails/33.jpg)
4ヶ月経ってみて
覚えることが多くて楽しかったですね
Google Trends役に立つ
思ったより時間がかかっている
あくまで個人的にだが合格点ぎりぎりくらいのアプリケーション構成はできたと思う