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
0
6
Java歴4ヶ月になりました
Javaを始めて4か月目の記録です。結構調べることができました。
まりも
September 23, 2024
Tweet
Share
More Decks by まりも
See All by まりも
メンタルモデルから見るオブジェクト設計
hrmstrsmgs
0
74
技術的負債
hrmstrsmgs
0
100
よい設計のプログラムを作るには
hrmstrsmgs
0
40
歴史から理解するJavaScript
hrmstrsmgs
0
21
論理的な考え方
hrmstrsmgs
0
25
論理的な話し合いはなぜ必要か
hrmstrsmgs
0
16
腕のある技術者はなぜ
hrmstrsmgs
0
38
疑似乱数の生成
hrmstrsmgs
0
11
構造化プログラミング
hrmstrsmgs
0
19
Featured
See All Featured
Designing for humans not robots
tammielis
250
25k
Optimizing for Happiness
mojombo
376
70k
Art, The Web, and Tiny UX
lynnandtonic
297
20k
Ruby is Unlike a Banana
tanoku
97
11k
Why Our Code Smells
bkeepers
PRO
334
57k
Building Applications with DynamoDB
mza
90
6.1k
Code Reviewing Like a Champion
maltzj
520
39k
Gamification - CAS2011
davidbonilla
80
5k
YesSQL, Process and Tooling at Scale
rocio
169
14k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Rails Girls Zürich Keynote
gr2m
94
13k
What's in a price? How to price your products and services
michaelherold
243
12k
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役に立つ 思ったより時間がかかっている あくまで個人的にだが合格点ぎりぎりくらいのアプリケーション構成はできたと思う