java java歴4ヶ月になりました

33
JAVA4ヶ月になりました

Upload: potimarimo

Post on 23-Jan-2018

265 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Java java歴4ヶ月になりました

JAVA歴4ヶ月になりました

Page 2: Java java歴4ヶ月になりました

事前の経験

•本は何冊か読んでいた

•ほかの言語は使えるので、Javaの特徴を論じるとかはできた

•コンパイラを動かしたのは3回くらい

Javaは未経験

• Html5の調査とかはやっていた

• CoffeeScriptの調査とかも

•直前にASP.NET MVCの勉強をしたら割とサクサク使えるようになった

ちゃんとWebアプリを作ったのは8年ぶりくらい

Page 3: Java java歴4ヶ月になりました

求められたこと

Webアプリの開発

フレームワークの選定から

できればJavaで

途中からクライアント側の処理がたんまり必要と分かった

Page 4: Java java歴4ヶ月になりました

とりあえず最初に

Javaは嫌いです

• 言語設計がどうも保守的で実用より理論主導

• 学習コストが.NETの3倍くらいかかったような

• 様々なライブラリが自由に組み合わせられるのはよいが、組み合わせのたびにためして

みないと

• とはいえ言語ってのは好き嫌いはあまり関係ない

• 言語の中でどういう工夫ができるかが醍醐味

Page 5: Java java歴4ヶ月になりました

利用した技術

あと感想とか

Page 6: Java java歴4ヶ月になりました

JAVA

きわめて保守的な言語

•できた時は先進的だったんですけどね

•新しい機能はなかなか入らない

•初期化構文は割と柔軟で気に入った

オブジェクト指向

•オブジェクト指向があれば他は何とかなる

言語が保守的な分、ライブラリは結構先進的

Page 7: Java java歴4ヶ月になりました

STREAM API

ラムダ式が使えるようになったのはよかった

使いづらいと思う

• Zipがないとか

• まだ機能不足?

• eclipseのデバッガでラムダ式の内部変数が見れない?

Page 8: Java java歴4ヶ月になりました

JAVA OPTIONAL

Jsonシリアライズに対応し

ないのでほぼ導入できず

Page 9: Java java歴4ヶ月になりました

JUNIT

基本に忠実なテストライブラリ

次期バージョンがそろそろ出て最先端に返り咲く

予定らしい

Page 10: Java java歴4ヶ月になりました

ASSERTJ

JUNITの記述をDSL的に書くプラグイン

• 十分な表現力

• ドットでつないでいくのはIDEとの相性がとても

いいと思う

Page 11: Java java歴4ヶ月になりました

APPACH POI

Java上でもExcelが編集できる

重い

• Excelマクロの置き換えを目指しているのかどうも

APIが一部低レベル

•そんなに品質も高くない

•どうせxlsファイルとかもう扱わないんだしxml直接いじるのもいいかも

Page 12: Java java歴4ヶ月になりました

EXCEL(方眼紙)

お客さん指定のテンプレートを見てみたら方眼紙だったので仕方ない

重い

• 方眼紙一つ一つのデータを扱う必要がありますからね

保守性がとても悪い

• 高度なExcel技術の見せ所

Page 13: Java java歴4ヶ月になりました

SPRING FRAMEWORK

DIコンテナ

• インスタンスの組み立てというオブジェクト指向の欠

点をうまくおぎなっている

様々なモジュールの集まり

Page 14: Java java歴4ヶ月になりました

SPRING BOOT

All in oneなのでSpringでのWeb開発をすぐに始められる

• インストーラーを使うだけですべて設定済み

• Webサーバーすら付属

• IDEも専用のものを用意(eclipseベースだが)

• 痒い所に手が届く

• まあどれもこれもVisual Studioなら当たり前のレベルですが

• というかVisual Studioに比べると全然足りない

Page 15: Java java歴4ヶ月になりました

SPRING TOOL SUITE

Spring boot専用IDE

• eclipseベース

• eclipseのプラグインでも使える

Page 16: Java java歴4ヶ月になりました

ECLIPSE

IDE

• Visual Studioより機能は多そう

• Visual Studioとの設計思想の違いを感じる

Page 17: Java java歴4ヶ月になりました

SPRING MVC

WebのMVCモデルに対応

DIコンテナとの相性はとてもいい

Page 18: Java java歴4ヶ月になりました

SPRING SECURITY

Spring framework標準の認証

JPAと連携してパスワードの列指定するだけで認証してくれる?

独自認証も可能

Page 19: Java java歴4ヶ月になりました

THYMELEEF

Spring Boot標準のHTMLテンプレートエンジン

機能自体は普通?

XML パーサーを利用しているため文法の制限がきつい

Page 20: Java java歴4ヶ月になりました

SPRING DATA JPA

O/Rマッパー

• O/Rマッパーとしての実力は未調査

• APIがそのままだととても使いづらい

Page 21: Java java歴4ヶ月になりました

QUERYDSL

JPAのサポートAPI

•コードの自動生成を利用

•モデルクラスに合わせたAPIを自動生成

• DSLとして優れたものに仕上がっている

Page 22: Java java歴4ヶ月になりました

GRADLE

ビルドツール

スクリプト言語を使った柔軟な構成

よくわからない

• 体形的に学習したほうがいいと思うのだが1週間はかかりそうで

• とりあえずコピペで動いてはいるのだが

Page 23: Java java歴4ヶ月になりました

HEROKU

公開はHerokuで

少しお金があればかなり便利に使える

• 気軽に開発できるというコンセプト

たまに動かなくなるとかはどんなものだろう

Page 24: Java java歴4ヶ月になりました

HEROKU CONNECT

HerokuとSalesforceを気軽に連携

• Salesforce上で利用したい情報を指摘するだけでHeroku

上のProstgresqlと同期

パスワード、blobデータは連携できません

Page 25: Java java歴4ヶ月になりました

SALESFORCE API

パスワード認証のために利用

画像を得るために利用

Page 26: Java java歴4ヶ月になりました

GMAP API

Google mapの機能を利用

•とりあえずピンを立てた画像を取得

Page 27: Java java歴4ヶ月になりました

TYPESCRIPT

クライアント側での処理が複雑になったので導入

大規模じゃないとそんなに使いでがなさそうな

•静的片付けとコンパイルが最大の利点

ある程度可読性が高くなる

• IE10でアロー演算子が使える

ライブラリの依存性管理までやってくれるの

Page 28: Java java歴4ヶ月になりました

VISUAL STUDIO CODE

EclipseのTypescriptプラグインが遅くて使い物にな

らなかったので導入

軽くて快適

Page 29: Java java歴4ヶ月になりました

JASMINE

JavaScript用テストライブラリ

TypeScriptにも対応

• テストのassertがいまいち動的

Page 30: Java java歴4ヶ月になりました

VUE.JS

JavaScriptの画面フレームワーク

MVVMパターンに特化

• 画面の部品化の機能なども充実

2.0で仮想DOMに対応した

Page 31: Java java歴4ヶ月になりました

JQUERY

便利機能はJQUERYがやっぱり便利

いずれほかの方法に移行していきたいところ

Page 32: Java java歴4ヶ月になりました

まとめ

Page 33: Java java歴4ヶ月になりました

4ヶ月経ってみて

覚えることが多くて楽しかったですね

Google Trends役に立つ

思ったより時間がかかっている

あくまで個人的にだが合格点ぎりぎりくらいのアプリケーション構成はできたと思う