作者zanyking (遙遠的旅人)
看板Soft_Job
標題Re: 請問網頁設計師的前輩
時間Sat Nov 7 03:07:24 2009
※ 引述《gname ((′口‵)↗︴<><...<><)》之銘言:
: ※ 引述《zanyking (遙遠的旅人)》之銘言:
: 光是看到第1點就很有感觸了...
: 打著快速開發的口號,讓很多人誤以為會用點AJAX,JQuery,ExtJs 之類
: 的API,就能在WEB上吃透透,結果反而忽略了很多基本的東西...
: 經常就是看到拿牛刀來殺雞...
: 舉個使用記憶體的例子...
: 蠻多半途出家的工程師根本就不懂得什麼叫作演算法,資料結構之類的東西...
: 要做一些資料運算時,就通通一次拉到記憶體裡面就對了...
: 反正記憶體很大用免驚的啦~
: 一個陣列裡面拉了幾十萬筆資料,在運作時會稍微有點LAG...
: 但是當一個陣列裡面拉了百萬筆資料時,會發生什麼事?
: 是的,運氣差一點就當掉而已嘛,沒什麼啊...
: 然後花了大把的時間在DEBUG為什麼會當掉? 明明程式就沒錯啊...
: 我很想講, 老兄~ 你要不要考慮把整個DB通通倒進來記憶體會不會方便一點?
: 一個select 就 left join 6張表, 資料量大到一整個誇張...
在LV4 還有很多東西算是我個人主觀的東西所以我沒有提,例如:
『百步法則(hundred step role)』還有『如何吝嗇的管理Java記憶體』
Java PG在編寫程式的時候常常只從OO抽象的角度去看如何實做,而不能從整個系統
(VM, OS, network)的角度去看『該怎麼選擇solution』。
如果你是Java developer,你的工作包括全局的程式架構設計,那你可不是只有
Spring + Hibernate 看個幾下會用就可以乒乒乓乓寫程式了。
光只是開JPA 的 EntityBean 而已,你就應該得要去思考:
Entity的讀跟寫。只讀物件需要每次用還重新跟資料庫拿嗎?
EntityManager的生命週期大小。EntityManager該活多久?每次Transaction完就重抓
還是一個Request內都用同一個?
ORM one to many時該lazy還是Eager?話說回來one-to-many真的該用嗎?你是不是
常常做出『弱水三千只取一瓢飲』的傻事,只因為map.get(pk);程式碼很短?
Query發生的多頻繁?有多少地方因為架構所以你會做出:
Foreach detail in A(while A = select * from orderdetail last year)
Sum += detail.getPrice();
這種令人髮指的事情?
光這個小題目能夠繼續列下去就還有很多,包括Session Serialization 如何對Bean
做didActivate, doPassivate、Transaction Critical Section的確保、
JPA Provider的選擇、second cache 的設定與優化等種種議題...
寫程式考慮太多可能會寫不下去,不過,如果你想做重要的東西、錢想領的不錯,
這些事情就要訓練自己去考慮。
: 之前公司有位愛用AJAX的同事,對於AJAX已經是到完全濫用的境界...
: 資料量少時還OK,等程式到了客戶那裡所有的資料都import進來時,
: 每次執行就是必當機,後來又得麻煩其它同事去改寫架構...
: 要建萬丈高樓,地基就要挖的深,打的好...
: 只是現在很多人都是地面上疊了磚塊就在蓋樓...
一個系統依據使用者的原始需求、預算、新技術產生的新門檻、Production環境
硬體規格,設計上就會有所不同。
AJAX從2005年到現在也快5個年頭了。
Ajax要不要使用、用哪一種Framework、用在哪裡是得要先評估的,例如:
這是個CPU Bound的系統,還是IO Bound的系統?
這個系統會對外開放、還是單純對內?
使用人數是什麼等級?
系統本質是Content Base 的還是Application Base的?
要不要SEO?
屆時per Session會佔多少記憶體?
UI要快還是要滿?
(以下10項略)...
有的人跟我說,做網頁很簡單,大家都去做賺不了幾個錢。
我說『觀念清楚確實也沒什麼,只不過你所謂的網頁很有可能跟我所想的東西
差很遠就是了。』
--
我所信仰的科學是一種謙卑的理性,承認自身的無知與渺小才能觀察到世界在我們貧
弱的知覺上留下來的痕跡。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.193.177.110
推 achii:這些都是很基本的東西吧 .... 11/07 03:46
推 Ting1024:好強阿!!考慮到這麼多。看來你真的經驗很豐富! 11/07 04:21
→ Ting1024:超級佩服的啦............. 11/07 04:21
推 bondalin:好強,好強...但遇到不懂技術的老闆你一樣只值22K 11/07 08:27
→ TonyQ:這些基本上都是一個正常的jsp工程師在工作上最多兩年的時間 11/07 08:45
→ TonyQ:就會學到的 , 至於bondalin 說得 , 基本上啊 當老闆發現這些 11/07 08:45
→ TonyQ:問題一般人來做個報表要跑四個小時還會當掉 , 你來修正之後 11/07 08:46
→ TonyQ:只要80秒 , 他就會願意付你錢了......:p 11/07 08:46
→ TonyQ:很多時候品質是要碰到 bound 的時候才能夠顯現出來的... 11/07 08:46
→ TonyQ:素質參差也就是為什麼到處都需要救火隊的原因......-_-;;; 11/07 08:47
→ TonyQ:話說回來 , ORM 的 relation 管理真的是門學問 :( 11/07 08:48
推 qrtt1:上別太灰心啊, "那本書" 有講, Conversation 在 part III 11/07 09:14
→ qrtt1:最佳化與資料讀取策略(含 n+1 Problem)也是在 part III 11/07 09:15
→ qrtt1:讀書可以輔助很多經驗上的不足 :D 11/07 09:15
→ qrtt1:唔, 本來要打樓上,少了樓orz。那就給五樓好了 :D 11/07 09:16
推 gname:推... 11/07 10:09
推 polo16860:利害~~~我需要多加努力了! 11/07 13:09
推 ottokang:跟JSP真是非常不熟啊XD 11/08 21:32