natsu 積分 0

有時是心智模型還是掛在 Servlet Container,經驗上難以脫離

對啊... 開發 Web Application 有時還是會以 Servlet 的方式在做思考 ...

Jersey / Spring 這類抽象層都想或有對應的方案,不過有時麻煩,有時藏在某些地方找不到

多了一層雖然方便,但有時也會因為搞不清楚底層是如何運作的,導致程式執行的結果不如預期 ...

這時候又會懷念 JSP / Servlet 的單純 ...

IngramChen 積分 0 編輯於

state machine 只是個 pattern,實作方式有很多種。像這篇文章寫的方式 (純 OOP) 會很難 trace 嗎?

kaif 的按鈕用的是 event-based 的 state machine,這是特化過的,專門用在即時 event 的服務 (遊戲 or 聊天室)。而 event based 的架構本身就不好 trace,跟 state machine 其實沒什麼關係。

kaif 按鈕其實用不到 event-based 的設計的,只是我寫慣了才直接用。

spring 其實也有出 state machine1 ,可以看看他們的設計

gugod 積分 0

以後還有人說「用 UDP 傳會掉包」 的話就拿這篇文章來回應(呃)

Kros 積分 0

可是我覺得用 state machine 寫,邏輯很分散耶,不好 trace code,還是我寫得不好?

IngramChen 積分 6

會用 state machine 解問題的人真的很少,大概只有遊戲圈的人才會用。而且需要一段時間練習。

一個簡單的判斷法,如果你的 class 出現了三個以上的 boolean flag,然後有一些會衝突相依,那麼差不多可以試試用 state machine 來 refactor 了。

題外話,你知道 kaif web 的 up vote/down vote1 的三角型按鈕是用 state machine 做的嗎?

一對小小的三角型包含了六種 state :

  • WaitVoterState
  • WaitSignUpState
  • EmptyVoteState
  • UpVotedState
  • DownVotedState
  • VotingState

為什麼只是個 up/down vote 要搞到 state machine?沒辦法,一開始也沒用 state machine 解的,不過後來跑出來三、四個 boolean flag 後我就寫到抓狂了,一氣之下就 refactor 成這樣了

IngramChen 積分 0

這一篇還幫大家復習了 compiler/interpreter ,不錯讀。

Dart/Flutter 會變成 AOT 一部份的原因是 iOS 造成的,因為 iOS 不能跑 js 以外的 JIT 語言。(最早的 Flutter 只有 interpreter)

IngramChen 積分 2 編輯於

創業跟轉行到底能不能類比?

會出來創業的人大部份都會有 不想按步就班 的想法吧,無論背後的原因是什麼。這種特質和 磨好幾年後再跳出來 根本是相斥的。

所以創業的人跌個頭破血流是個常態,而且無法改變。

Kros 積分 1

這還蠻直觀的呀,創業家跟工程師本來就是隔行如隔山,工程師當好好的然後某天跳出來創業,就跟你原本是美甲師某天跳出來要當理髮師一樣,當然要經過好幾年的磨練從頭開始學才會懂呀。

想創業就先去新創公司當工程師,然後做中學,很直觀呀。不先到相關產業看看然後說跳就跳,吃一堆虧再出來抱怨說創業很難也是蠻奇怪的。

kaif 積分 0

不懂這類文章為何都要寫是S3被駭xd 明明每次都是從其他地方leak的阿。值入程式更是匪夷所思了,ithome是不是都找工讀生翻譯阿

caterpillar 積分 1 編輯於

不是指純寫 Servlet,而是指 Servlet API,掛一層 Jersey/Spring,還是看到不少人搞不出 HttpSession、ServletContext 等的一些對應功能,然後縮回去直接搞 HttpSession、ServletContext … 基本上 Jersey/Spring 這類抽象層都想或有對應的方案,不過有時麻煩,有時藏在某些地方找不到,有時是心智模型還是掛在 Servlet Container,經驗上難以脫離(新生代若完全沒有或不用接觸 Servlet 容器,大概會比較沒這困擾) …

IngramChen 積分 0

很少人直接寫 servlet 吧? 大部份上面都會掛一層 (Jersey/spring...etc)

那麼 servlet 這個 abstraction 就變成累贅了,去掉後少一層自然變得比較輕,也不需要部署肥肥的 servlet container 了。

(不過 benchmark 的結果都是純 servlet 變態的快… 神奇)

caterpillar 積分 1 編輯於

若可以屏壁 Java EE,就算只是 Servlet API,基本上有很多人會很開心(也許他們並不清楚為什麼開心),雖然 Web Flux 目的並不在為了取代 Servlet(這野心也太小)。

或許多數人也舉不出 JSP/JSF 的問題在哪,大概只是純 Server Page 越來越不重要的投射居多。

IngramChen 積分 0 編輯於

時代已經在前進,除了 servlet 技術外還有別的選擇,像是 spring web flux

web flux 因為沒有依賴 servlet 所以只能和 Freemarker/Thymeleaf 整合。所以跳過 jsp/jsf ,改用這兩個以後切換時會比較有利吧。

是說純 server page 也越來越不重要就是

natsu 積分 0

對JSF來說,JSP被認為是不建議使用(deprecated)的呈現技術。

可是如果要改用 JSF,原本 JSP 的程式可能都要砍掉重練 ...

haocheng 積分 0

一般網站會犯這種錯的都不多吧,更何況是交易所...

natsu 積分 0 編輯於

即使事隔多年還是會遇到中文亂碼的問題 ...

其實主要還是 http header content-type 中的 charset 要設正確,client 端與 server 端統一都用 UTF-8 的話就不會有亂碼問題 ...

Spring Framework 的 CharacterEncodingFilter 也不見得一定要用1

koji 積分 0

所以 Brian Acton 不在 whatsapp 了?

gugod 積分 0

這兩家公司的共生關係真是奇妙

haocheng 積分 0

上班地點如果在市中心的話走河濱好像繞太大圈了...

IngramChen 積分 0

在家工作就不限通勤運動啦

想做什麼就做什麼