Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
twjug-lite-17 結束了幾個月的 Java Web 培訓 站在人蔘迷途的我
Ching Yi Chan
July 20, 2021
Education
0
42
twjug-lite-17 結束了幾個月的 Java Web 培訓 站在人蔘迷途的我
Ching Yi Chan
July 20, 2021
Tweet
Share
More Decks by Ching Yi Chan
See All by Ching Yi Chan
[twjug-lite] 迷你研發部 [1]
qrtt1
0
1k
寫個好懂的程式
qrtt1
1
400
OAuth 2.0 Authorization Code Flow
qrtt1
0
140
types of knowledge
qrtt1
1
940
twjug 小活動
qrtt1
0
220
TWJUG 2019
qrtt1
0
130
Learning Concepts
qrtt1
0
110
軟體工作日常:成為工具人吧!
qrtt1
1
110
Learning How To Learn Gradle
qrtt1
0
410
Other Decks in Education
See All in Education
炎上を疑似体験!?ゲームを通して炎上の仕組みを考えてみよう
engineercafe
0
150
再帰呼び出し / Python Recursion
kaityo256
PRO
0
830
AWS認定、オンラインで受けるか?オフラインで受けるか?
amarelo_n24
0
160
28-30 Oftalmo Completa
doctorre
PRO
0
18k
LightSail 2022-2023
cbtlibrary
0
130
神社でのマナーとおすすめスポット:2720 Japan O.K. ロータリーEクラブ 公共イメージIT推進委員・イデア総研税理士法人 南 理央 会員
2720japanoke
0
560
FBCのご紹介
komagata
0
120
Statistical Rethinking 2023 - Lecture 03
rmcelreath
1
510
単元「情報通信ネットワークとデータの活用」の授業アイデア
asial_edu
0
110
Web 2.0 Patterns and Technologies - Lecture 8 - Web Technologies (1019888BNR)
signer
PRO
0
1.3k
Notionで学生生活を充実させる方法3選
shogotahara
0
300
JaSSTReview2022_ReviewWorkshop.pdf
kitanosirokuma
3
880
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
270
12k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
120
29k
Building a Modern Day E-commerce SEO Strategy
aleyda
6
4.5k
The Cult of Friendly URLs
andyhume
69
5.1k
How STYLIGHT went responsive
nonsquared
89
4.2k
A better future with KSS
kneath
230
16k
Large-scale JavaScript Application Architecture
addyosmani
499
110k
Adopting Sorbet at Scale
ufuk
65
7.8k
The Web Native Designer (August 2011)
paulrobertlloyd
76
2.2k
Art, The Web, and Tiny UX
lynnandtonic
284
18k
Faster Mobile Websites
deanohume
295
29k
Building Adaptive Systems
keathley
27
1.3k
Transcript
結 束 了 幾 個 ⽉ 的 Java Web 培
訓 站 在 ⼈ 蔘 迷 途 的 我 TWJUG LITE JA V A 1 補充部分的 Notion URL
我 ⼈ 物 背 景 ⼯ 作 了 幾 年
因 疫 情 的 關 係 ⽽ 失 業 靈 機 ⼀ 動 來 轉 職 當 ⼯ 程 師 吧 你 問 我 為 什 麼 選 Java? 其 實 我 從 來 沒 寫 過 程 式 選 什 麼 都 差 不 多 不 是 嗎 先 前 聽 完 說 明 會 就 報 名 了 費 ⽤ 挺 貴 的 但 是 有 就 業 媒 合 就 衝 ⼀ 波 吧 你 問 上 課 都 上 些 什 麼 嗎 來 這 是 課 程 架 構 Java 框架技術 Hibernate / Spring MVC / Spring / 專案建構工具 Web 後端開發 JSP / Servlet / Java / MVC Web 前端開發 JavaScript / 網頁程式設計 / AJAX / jQuery 雲端開發實務 在 AWS 部署 Java 應用程式 專案開發方法 敏捷軟體開發 軟 體測試 版本控制 程式語言 Java 物件導向程式 (基 礎 / 實務/ 應用) / JDBC 資料庫 Web 前端設計 資料庫設計 (RDB /NoSQL) / MySQL 網頁設計入門 / HTML5 / RWD 小組合作專題開發 Java 雲端服務系統實作 / 專題指導/ 專題成果發表 實作 課程 進階 與 實務 課程 基礎 課程 2 ⼤概 600 ⼩時
課 課 程 內 容 課 程 內 容 看
起 來 挺 豐 富 的 這 些 內 容 將 近 六 百 ⼩ 時 真 的 上 得 完 嗎 課 程 的 架 構 會 隨 著 整 個 班 級 的 學 習 進 度 調 整 但 除 了 進 度 還 有 臨 時 的 事 件 要 處 理 像 是 今 年 五 ⽉ 中 疫 情 升 溫 所 有 教 育 機 構 都 要 改 成 線 上 教 學 了 但 線 上 教 學 的 效 果 與 是 否 好 吸 收 知 識 差 異 挺 ⼤ 的 ⾄ 少 我 挺 喜 歡 ⼀ 堆 ⼈ 擠 在 ⼀ 起 討 論 的 感 覺 線 上 課 程 有 錄 影 的 也 有 即 使 視 訊 的 型 式 錄 影 的 好 處 是 能 ⼀ 直 重 複 觀 看 沒 有 聽 仔 細 的 部 分 但 我 也 很 懷 念 線 下 ⼀ 起 討 論 實 作 的 時 光 程 3
課 課 程 內 容 你 覺 得 上 這
樣 的 就 業 班 優 缺 點 是 什 麼 呢 嗯 這 是 個 好 問 題 我 覺 得 他 的 優 點 即 是 他 的 缺 點 缺 點 即 是 他 的 優 點 以 我 這 般 的 轉 職 素 ⼈ 來 說 我 根 本 無 法 知 道 要 進 入 業 界 的 ⾨ 檻 是 什 麼 ⾄ 少 他 幫 我 搭 配 好 的 ⼀ 整 組 的 套 餐 讓 我 不 ⽤ 像 ⾃ 學 習 ⼀ 樣 ⾯ 臨 選 擇 障 礙 也 無 法 知 道 飲 食 是 否 均 衡 缺 點 則 是 要 在 時 間 內 完 食 但 每 個 ⼈ 的 吸 收 速 度 其 實 不 同 的 有 些 跟 不 上 了 就 先 咬 個 幾 ⼝ 嚐 過 味 道 求 個 不 浪 費 食 物 的 ⼼ 態 現 在 回 憶 起 來 實 際 上 真 的 能 充 份 吸 收 的 是 ⋯⋯ 專 題 開 發 程 4
實 專 題 開 發 戰 你 是 說 整
個 課 程 架 構 裡 ⾯ 最 實 ⽤ 的 部 分 是 專 題 開 發 這 是 當 然 的 我 們 最 後 的 ⼆ 個 ⽉ 都 忙 著 弄 專 題 雖 然 主 要 的 規 劃 依 賴 訓 練 中 ⼼ 的 老 師 幫 忙 但 是 實 作 的 部 分 我 可 以 很 有 ⾃ 信 地 說 出 來 哪 ⼀ 個 部 分 是 我 寫 的 喔 那 除 了 專 題 開 發 之 外 有 哪 些 是 你 覺 得 吸 收 較 好 的 呢 覺 得 應 該 是 Web 前 端 設 計 的 部 分 吧 因 為 寫 前 端 的 時 候 可 以 立 即 看 到 結 果 可 以 ⼀ 邊 調 ⼀ 邊 看 畫 ⾯ 最 後 使 ⽤ 網 站 的 ⼈ 也 是 看 到 網 ⾴ 畫 ⾯ 上 的 東 ⻄ 操 作 的 5
來 談 談 後 端 部 分 唄 畢 竟
Java Web 實 作 的 部 分 主 要 是 後 端 的 領 域 後 端 的 話 就 寫 Servlet 還 有 JSP 再 結 合 jQuery 發 送 AJAX 操 作 更 新 前 端 ⾴ ⾯ 那 主 要 是 實 作 什 麼 功 能 呢 就 看 是 要 做 哪 個 模 組 了 在 ⼩ 組 的 實 作 中 我 們 有 分 配 負 責 的 模 組 寫 Servlet 收 參 數 然 後 呼 叫 DAO 對 資 料 庫 讀 寫 再 來 ⽤ JSP 產 ⽣ 要 顯 ⽰ 的 畫 ⾯ 有 些 功 能 是 要 登 入 會 員 才 能 使 ⽤ 的 就 會 再 ⽤ Session 判 斷 有 沒 有 登 入 還 有 什 麼 覺 得 比 較 進 階 的 功 能 嗎 像 是 實 作 照 片 上 傳 然 後 存 入 資 料 庫 中 跟 把 資 料 庫 中 的 照 片 顯 ⽰ 在 網 ⾴ 上 還 有 的 話 像 取 出 同 ⼀ 個 參 數 名 稱 但 有 多 筆 值 的 ⽤ 法 我 們 還 有 在 AWS 上 開 MySQL 存 資 料 寫 JDBC 跟 SQL 語 法 實 專 題 開 發 戰 6
課 程 的 內 容 幾 乎 完 結 專
題 實 作 也 在 收 尾 中 那 麼 接 下 來 應 該 就 是 進 ⾏ 求 職 準 備 囉 訓 練 中 ⼼ 有 提 供 ⾯ 試 準 備 的 諮 詢 像 是 履 歷 修 改 專 題 報 告 的 素 材 製 作 成 果 展 ⽰ 影 片 專 題 說 明 ⽂ 件 與 展 ⽰ ⽤ 的 投 影 片 還 能 互 通 有 無 分 享 近 期 媒 合 廠 商 常 考 的 問 題 集 在 ⾯ 試 上 的 準 備 可 以 ⼤ 概 抓 個 ⽅ 向 像 是 圖 片 上 傳 與 顯 ⽰ 的 實 作 ⽅ 法 或 是 有 沒 有 使 ⽤ 過 ⼀ 些 Framework 的 經 驗 最 常 被 提 到 的 ⼤ 致 就 是 Spring 與 Hibernate 了 吧 但 他 們 有 什 麼 不 同 呢 由 於 最 後 預 留 給 專 題 實 作 的 時 間 不 多 在 實 戰 中 沒 ⽤ 上 他 們 單 純 看 上 課 資 料 只 知 道 ⽤ 上 Framework 可 以 省 ⼒ 可 是 我 還 沒 有 真 實 的 經 驗 說 不 上 來 他 們 可 以 做 到 什 麼 ⾯ 求 職 準 備 試 7
先 前 看 過 了 你 做 的 模 擬
⾯ 試 錄 影 介 紹 的 挺 流 暢 的 不 過 我 覺 得 你 ⼤ 概 在 進 ⾏ 到 3 分 鐘 時 就 會 被 停 下 問 各 種 問 題 囉 那 是 我 介 紹 的 內 容 不 好 嗎 我 覺 得 內 容 可 以 但 ⼤ 致 上 會 膩 因 為 都 是 在 重 複 CRUD 的 結 構 ⾯ 試 是 講 求 互 動 的 作 為 新 ⼈ ⾯ 試 者 的 ⾯ 試 官 會 找 機 會 跟 你 互 動 例 如 當 你 提 到 有 些 功 能 是 需 要 會 員 登 入 的 會 ⽤ Session 判 斷 就 是 個 很 好 的 互 動 時 機 所 以 我 遇 到 了 這 個 問 題 就 答 request.getSession().getAttribute(...) 來 判 斷 使 ⽤ 者 有 沒 有 登 入 囉 這 樣 的 回 答 有 ⼀ 點 微 妙 通 常 當 ⾯ 試 官 問 怎 麼 實 作 是 問 ⼀ 個 概 念 想 知 道 你 有 沒 有 概 念 ⽽ 不 是 程 式 具 體 長 什 麼 樣 ⼦ 這 只 是 ⼀ 個 簡 單 的 開 頭 後 續 還 有 ⼀ 連 串 的 Session 相 關 的 提 問 像 Session 是 什 麼 樣 的 概 念 Servlet Container 使 ⽤ 哪 些 機 制 進 ⾏ Session Tracking Cookie 與 Session 的 關 係 是 什 麼 呢 或 是 再 回 到 Servlet 中 的 Session 它 是 ⼀ 種 Scope Object 那 麼 順 便 問 ⼀ 下 所 有 的 Scope Object 很 合 理 互 ⾯ 試 攻 防 動 8
所 以 我 應 該 以 回 答 概 念
為 主 這 聽 起 來 真 的 很 抽 象 啊 現 在 想 想 我 幾 乎 被 問 到 東 ⻄ ⼤ 多 是 回 ⼀ 些 具 體 的 程 式 碼 怎 麼 寫 或 是 我 先 前 準 備 的 問 答 筆 記 中 的 內 容 那 份 問 答 筆 記 借 我 看 ⼀ 下 ⋯⋯ 內 容 保 密 中 ⋯⋯ ⼤ 致 看 了 筆 記 的 內 容 多 是 ⼀ 問 ⼀ 答 的 簡 答 型 式 這 看 起 來 不 像 是 ⼀ 個 有 組 織 的 知 識 體 系 我 猜 也 許 你 ⽬ 前 腦 中 擁 有 的 知 識 可 能 也 跟 這 份 筆 記 的 型 式 相 似 所 以 你 的 思 考 與 回 應 ⽅ 式 總 是 很 片 段 那 我 該 怎 麼 把 它 整 理 好 呢 待 續 ⋯⋯ 互 ⾯ 試 攻 防 動 9
就 業 活 動 10 我 完成了訓練所需要的課程 參與專題實作製作網站應⽤程式 ⾯試 ⼯作
⾯試準備 ⾯試⾺拉松 投履歷⾺拉松 開⼯啦! ⼈蔘不是只有這條路
⼯ 具 箱 11 完成了訓練所需要的課程 參與專題實作製作網站應⽤程式 技能盤點 Java 框架技術 Hibernate
/ Spring MVC / Spring / 專案建構工具 Web 後端開發 JSP / Servlet / Java / MVC Web 前端開發 JavaScript / 網頁程式設計 / AJAX / jQuery 雲端開發實務 在 AWS 部署 Java 應用程式 專案開發方法 敏捷軟體開發 軟 體測試 版本控制 程式語言 Java 物件導向程式 (基 礎 / 實務/ 應用) / JDBC 資料庫 Web 前端設計 資料庫設計 (RDB /NoSQL) / MySQL 網頁設計入門 / HTML5 / RWD 小組合作專題開發 Java 雲端服務系統實作 / 專題指導/ 專題成果發表 實作 課程 進階 與 實務 課程 基礎 課程 ⼤概 600 ⼩時 微懂 微懂到略懂之間, 總之我能實作出來就好了唄!? 略懂 略懂 比較熟 在懂跟不懂之間 ⽤過 部分⽤過 花了最多時間,最⼤⼼⼒的部分,我超努⼒的!
技 術 ⾯ 試 12 小組合作專題開發 Java 雲端服務系統實作 / 專題指導/
專題成果發表 實作 課程 花了最多時間,最⼤⼼⼒的部分,我超努⼒的!
技 術 ⾯ 試 13 Web 後端開發 JSP / Servlet
/ Java / MVC Web 前端開發 JavaScript / 網頁程式設計 / AJAX / jQuery 進階 與 實務 課程 略懂 比較熟
技 術 ⾯ 試 14 程式語言 Java 物件導向程式 (基 礎
/ 實務/ 應用) / JDBC 資料庫 Web 前端設計 資料庫設計 (RDB /NoSQL) / MySQL 網頁設計入門 / HTML5 / RWD 基礎 課程 微懂 微懂到略懂之間, 總之我能實作出來就好了唄!? 略懂
技 術 ⾯ 試 15 Java 框架技術 Hibernate / Spring
MVC / Spring / 專案建構工具 在懂跟不懂之間
⾝ 為 ⼀ 個 Web 應 ⽤ 程 式 開
發 者 你 能 說 出 使 ⽤ 者 打 開 瀏 覽 器 後 到 他 看 到 完 整 的 畫 ⾯ 之 前 發 ⽣ 了 哪 些 事 嗎 使 ⽤ 者 打 開 瀏 覽 器 輸 了 服 務 的 網 址 他 會 連 到 某 隻 Servlet 這 個 Servlet 會 依 URL 的 參 數 去 決 定 要 顯 ⽰ 什 麼 最 後 由 JSP 去 顯 ⽰ ⾴ ⾯ 聽 起 來 是 個 不 錯 的 開 始 了 但 我 希 望 聽 到 更 多 技 術 性 的 描 述 想 知 道 ⽬ 前 你 所 學 到 的 東 ⻄ 深 度 與 廣 度 到 哪 裡 接 著 來 我 試 著 引 導 你 ⼀ 起 優 化 這 ⼀ 版 的 回 答 唄 我 們 先 暫 時 忘 記 Java Web 開 發 者 的 ⾝ 份 先 ⽤ Web 應 ⽤ 程 式 相 關 的 規 格 或 協 定 來 描 述 可 能 會 出 現 的 是 HTTP Client Server HTML 之 類 的 東 ⻄ 應 技 術 ⾯ 試 ⽤ 16 瀏覽器 Servlet JSP 使用者輸入了服務的網址
那 我 知 道 了 如 果 是 以 Web
應 ⽤ 程 式 的 話 它 最 的 傳 輸 是 HTTP 協 定 ⽽ 瀏 覽 器 是 扮 演 Client 端 的 ⾓ ⾊ 接 著 就 這 麼 改 吧 如 改 是 改 成 這 樣 如 何 有 比 較 好 些 嗎 乍 看 之 下 還 不 錯 但 總 覺 得 少 了 點 什 麼 ⾸ 先 Servlet 只 是 ⼀ 組 規 範 與 API 不 能 直 接 把 它 寫 成 HTTP Server 另 外 你 覺 得 在 哪 個 部 分 會 回 應 HTML 呢 最 初 的 版 本 我 們 漏 了 回 應 給 瀏 覽 器 囉 應 技 術 ⾯ 試 ⽤ 17 瀏覽器 Servlet JSP 使用者輸入了服務的網址 HTTP Client (瀏覽器) HTTP Server (Servlet) HTML (JSP) 使用者輸入了服務的網址
開 始 回 想 起 上 課 學 過 的
Servlet 是 跑 在 Servlet Container 之 中 的 ⽽ Servlet Container 同 時 也 有 HTTP Server 的 功 能 所 以 我 決 定 把 Response 畫 在 Servlet Container 上 但 這 畫 上 了 Response 後 就 讓 下 ⽅ 的 HTML 處 境 尷 尬 了 記 得 JSP 是 在 第 1 次 執 ⾏ 時 被 編 譯 成 Servlet 的 你 的 觀 察 正 確 確 實 不 會 有 再 往 下 指 到 HTML 因 為 它 在 HTTP Response 中 可 以 是 各 種 資 料 應 技 術 ⾯ 試 ⽤ 18 HTTP Client (瀏覽器) HTTP Server HTML (JSP) 使用者輸入了服務的網址 HTTP Response Servlet Container HTTP Client (瀏覽器) HTTP Server HTML / JavaScript / CSS / Binary Data 使用者輸入了服務的網址 HTTP Response Servlet Container
HTTP Client HTTP Server HTML / JavaScript / CSS /
Binary Data HTTP Response Servlet Container DNS Lookup SSL Certification Verification Load balancer Reverse proxy Servlet URL Pattern Database JDBC Browser Render by content-type Content Renderer JavaScript Engine dispatch event: document loaded CDN
⋯⋯ 進 持 續 改 善 步 20