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