Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Java歴4ヶ月になりました
Search
まりも
September 23, 2024
16
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Java歴4ヶ月になりました
Javaを始めて4か月目の記録です。結構調べることができました。
まりも
September 23, 2024
More Decks by まりも
See All by まりも
オブジェクトモデルと関係モデルの設計
hrmstrsmgs
0
43
メンタルモデルから見るオブジェクト設計
hrmstrsmgs
0
350
技術的負債
hrmstrsmgs
1
370
よい設計のプログラムを作るには
hrmstrsmgs
0
120
歴史から理解するJavaScript
hrmstrsmgs
0
96
論理的な考え方
hrmstrsmgs
0
100
論理的な話し合いはなぜ必要か
hrmstrsmgs
0
69
腕のある技術者はなぜ
hrmstrsmgs
0
140
疑似乱数の生成
hrmstrsmgs
0
68
Featured
See All Featured
Crafting Experiences
bethany
1
200
Building Adaptive Systems
keathley
44
3.1k
So, you think you're a good person
axbom
PRO
2
2.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
HDC tutorial
michielstock
2
730
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
600
A Modern Web Designer's Workflow
chriscoyier
698
190k
Tell your own story through comics
letsgokoyo
1
980
Practical Orchestrator
shlominoach
191
11k
Automating Front-end Workflow
addyosmani
1370
210k
Building AI with AI
inesmontani
PRO
1
1.1k
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役に立つ 思ったより時間がかかっている あくまで個人的にだが合格点ぎりぎりくらいのアプリケーション構成はできたと思う