看板Soft_Job
: : → andymai:AJAX興起~JSP結束使命?確定有搞懂client和server跑的東西? 07/15 05:34
: : → andymai:再回頭看這篇~都提到框架了~相信原PO應該知道才對~換成我 07/15 05:37
: : → andymai:完全不懂這句話的意思了~而且為何算"前端技術"呢??? 07/15 05:38
: : 直接面對user的不就是前端嗎...JSP在server端把一切都計算好了頁面也生成好了, 呈現
: : 給用戶, 而AJAX是client端去server端取來數據然後用javascript計算好了, 再呈現之.
: : 推 pl132:好吧~看起來PHP應該是通用那我後端會先選PHP+SQL 07/15 09:03
: : → pl132:至於學完之後再看看要繼續學C或是JAVA 07/15 09:04
: : → andymai:@@ 都一樣是client去跟Server要資料處理的啊~如果client沒 07/15 18:30
: : → andymai:送要求~Server哪裡會回?JSP和AJAX都一樣~而且AJAX只不過是 07/15 18:31
: : → andymai:透過JavaScript的方式去跟Server索取"想要的資料"~如果Ser 07/15 18:33
: : → andymai:ver不支援~那一樣是整頁傳回去!而且JSP和AJAX是共存的~可 07/15 18:35
: : → andymai:以沒有AJAX~但是不能沒有後端的JSP、asp.net或php等等... 07/15 18:35
: : → andymai:前面說JSP和AJAX都一樣的意思是:都一樣是client去要資料 07/15 18:37
: : 推 iceonly:JSP和AJAX是並用而沒有哪者結束哪者的問題吧 07/15 19:33
: : → andymai:??? 不好意思~我實作過Server和Client了~實在是不懂~能否 07/15 21:36
: : → andymai:直接點出問題點? 07/15 21:36
: : → andymai:如果說只是產生Client要的資料就算是前端~那還有什麼後端 07/15 21:38
: : → andymai:可言?所有的Server都是為了因應Client的需求而存在啊... 07/15 21:38
: : 其實不管是JSP, 還是JAVASCRIPT, 都是在操縱HTML, 而HTML決定了USER最終將會看見什
: : 麼. 所以, 有HTML的地方, 就是前端, 不知道這樣你能不能瞭解. 前端並不一定就是
: : SERVER.
: : 而AJAX的奧義在於, SERVER只是輸出數據, 只不過這些數據的格式是XML. 實際上, 換成
: : JSON或其他什麼格式也沒關係, 只要你的AJAX頁面能處理就行.
: : 現在就算是拿PHP來寫程式, 也一般會寫成RESTFUL的風格, 只輸出JSON或XML, 而不再管頁
: : 面是什麼樣子.
: : → andymai:...有HTML就是前端???我傻了...請問如果用AJAX的話~Server 07/15 23:14
: : → andymai:輸出數據的處理程式能否用JSP寫? 07/15 23:14
: : 如果你完全用他來做JSON/XML輸出, 那就算他後端好了. 但是只要涉及到HTML, 還是算作
: : 前端為好.
: 這...到底是誰說的???
: : 前後端的分離, 主要就是為了讓程序員從自己並不擅長的美工/UI領域解脫出來, 從而專注
: : 於業務邏輯.
: : 前端工程師在以前, 是必須熟悉PHP/JSP這類語言, 但AJAX興起以後, 前端工程師很少再被
: : 要求熟悉這些, 而代之以JAVASCRIPT.
: 這只是老闆專不專業的問題吧?
: 叫員工從頭包到尾的老闆並不會因為有AJAX的出現就有所改變...
: 用了AJAX ~ Server端就不用跑邏輯程式了?
前端工程師這個職位裡面有一派分工是設計 or UED 跟 JS 結合,
比較不用甚至不會寫 server side language 沒錯。
當然,像過去一樣前後端全包的職位當然還是有,只是有新型態的職位出現,
他可能只需要寫 javascript 跟設計 UED 就行了。
不過台灣目前一般常見的還是有機會包含套版跟寫部份 server side 程式,
或者這麼說吧,台灣後端能切割到 server 只剩純 service 的應用還不夠多。
我覺得這是你們討論沒有交集的理由。XD
: : 但前端工程師永遠不變的核心, 就是HTML. 這是一以貫之的.
: : 推 typepeter:JSP會被動態產生為.class檔,其實它是動態語言 07/15 23:22
: : → typepeter:大多數所指的前端是指在client端browser執行的 07/15 23:24
: : → typepeter:嚴格說起來JSP和PHP及ASP比較像,並沒有死亡這回事吧 07/15 23:25
: JSP 通常拿來寫商業邏輯和資料存取~然後再用 HTML 的型式傳回給 browser
: 一般來說~有人會把商業邏輯和資料如何存取用 HTML 的型式傳回給 browser
: 秀給 user 看? 應該不會吧...
: (debug 用的頁面麻煩不要拿出來講)
廣義來說頁面動線本身就是商業邏輯跟資料取用的一種形式,
不過如果要嚴格來說,應該說 client & server 都會暴露一點,
client 會有邏輯跟驗證,伺服器也會有邏輯跟驗證。
: 既然不會~為何要說它是前端? 它明明只能在後端 Server 上面跑...
: 這就像某公司有 server 和 client 兩個 team
: server 裡面又分為 底層架構研發 和 商業邏輯、資料存取
: 現在嘗試要告訴我的是:
: 因為寫商業邏輯的傢伙要跟 client team 的人達成協議
: 處理並準備好他們要的資料
: 雖然他寫的商業邏輯、資料存取只能在 Server 上面跑
: 但是因為最後輸出的資料要因為 client 而定
: 所以他其實是 client team 的人?
: client 和 server 是這樣定義的嗎???
: 用了 json 並不代表 client 和 server 可以脫離彼此的糾纏
: 兩邊還是達成了 "傳輸的資料是 json" 這個協議啊...
: 彈性是有大了點~但也沒大到毫無瓜葛的程度...
其實是看問題角度的問題, server side 的角度在有設定前端職位的 team,
是被切成呈現(html+css+js) 跟資料提供(service) 兩個部位。
就以寫 JSP 這件事情好了,
他其實同時隱含 server side 跟 template 兩個角色。
在比較常見的 MVC 模型裡面,ex. struts 。
他會先在 action 裡面做好 DAO (資料存取)該做的動作,這時候歸在後端,
之後去做設計 template 頁面跟進到 template 頁面(JSP) 去套版。
一般來講,寫 DAO / Business Object(manager) 這些是被歸類在 service ,
寫 template (jsp/php/aspx...etc ) 則是被歸類在 front-end。
將 template 帶入變數(俗稱套版)的部份,
到底該歸在 server side 還是 fonr-end 目前尚無定論,
只是一般我個人會建議是 front-end 該 take the job,
然後 server side 在套版之前應該準備好 view model 。
也就是不應該邊 rendering template 邊撈 service,
而是事先準備好資料之後才 rendering template 。
當然,沒有設定前端角色的地方,
你還是可以用過去那一套前後貫穿的角度來看。
職位是根據職責內容被畫出來的,
如果你的工作就是沒有這個職位,去劃分前後端就沒有意義。
只是前後貫穿的人以後有面試到前端工作時,
就可以說自己有一點前端經驗這樣。
: ※ 編輯: andymai 來自: 111.254.49.101 (07/16 07:50)
: → realmeat:把畫面layout出來的是前端, 處理後面資料的是後端 07/16 09:17
: → realmeat:中間會透過協議傳輸特定的資料, 傳送的方式太多不列舉了 07/16 09:19
: → realmeat:誠以為語言不是重點, 而是處理的方式 07/16 09:20
之所以會有剛剛那組模型(DAO/Service/Business Object) for backend,
HTML/CSS/JS for front-end 。
主要還是為了因應新的開發型態,
也就是諸如 fb api 或 firebase 這類後端服務,讓前端跟後端區隔很遠,
client 頁面大多是 html ,server 只回傳一堆 json object ,
並提供一些 api ,來讓 JS 純粹調用跟套上畫面。
在過去我們會認為讓一個人只寫 js/css/html 跟設計畫面 navigation ,
是不太可能的事情,這是一種人力的浪費。
但是在某些新型態的網站 ex. plurk 等,他們主要的網站模型,
就是以 JS 當頁面主導,包括 rendering、action、navigation 都由 JS控制,
所以就會有專職前端的存在。
事實上從我角度來看,我覺得大家說得都對,
不管有沒有前端這個職位,大家要做的事情其實是一樣多的,
前端這個職位事實上是從原本的網站系統中,
將有關前端的部份獨立出來,作成一個新的專業分工的型態而已。
理想上的分工應該是後端專心去管資料流,
前端專心處理 html/css/js 、跨瀏覽器問題跟頁面轉換。
一般來講我們也會建議讓設計進入前端或跟前端一起合作。
當然,如果有些人的認知是以前那種前後貫穿,
後端就是也要幫忙寫 template、套版的狀況,我覺得是也沒什麼問題。
畢竟職責跟職位是依照公司的需要跟認知劃出來的,
不同的需求、不同的環境,甚至不同的人,都可能影響公司需求。
----------------------------------------------
另外,在有設置前端職位的 team ,
我認為前端的主力應該要是面向 client 的,
事實上所謂的 client 就是 browser。
(現在又多了 mobile ,有些地方把 mobile 也歸類在前端,
目前看起來跟"顯示" 有關的基本上都有可能被列入前端。)
或者更直接點說,前端就是負責得搞定所有需要跟 browser 協調的大小事,
但這跟他寫得 code 到底在 client (JS) 或 server (JavaEE) 沒有關係,
有時候為了搞定 browser 還得送特定 header 去處理某些問題咧。:P
而後端的主力則是面向資料的,包含資料邏輯驗證,
包含 DB 存取,包含第三方的資料轉送,從這角度去看應該就非常清楚。
所以資料庫炸掉不關前端屁事,後端該自己把資料驗證寫好,
而前端因為瀏覽器不支援而顯示有問題,這也不關後端屁事。
(當然,如果因為後端送錯資料而死掉的還是得找後端算帳。XD)
--
Life's a struggle but beautiful.
--
◆ From: 118.166.150.230
※ 批踢踢實業坊(ptt.cc)※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1373943848.A.6A9.html
推 cwlin0416:其實前端就是使用者導向,後端是系統架構導向,照理是各 07/16 13:29
→ cwlin0416:自顧好各自的部份,但相對開發成本較高,想像以前只要在 07/16 13:29
→ cwlin0416:後端做的防呆現在前後都要,所以才會出現那些新型態的開 07/16 13:29
→ cwlin0416:發方式,為的都是加速開發降低成本 07/16 13:29
推 cwlin0416:理想化的後端是可以把每個功能做成 API , Web service, 07/16 13:36
→ cwlin0416: 讓人自由介接,好比 FB 一樣但成本相對高昂,還是要看 07/16 13:36
→ cwlin0416:最終應用去取捨才是可行的,有的應用強調使用者導向, 07/16 13:36
→ cwlin0416:後端就什麼都不留,有些應用強調整合,就會象 FB 極力開 07/16 13:36
→ cwlin0416:發 API 給不同程式使用 07/16 13:36
推 cwlin0416:無法達到理想境界的情況,就是得看前後端如何溝通,讓 07/16 13:43
→ cwlin0416:事做最少效益最大,甚至前後端同一人 07/16 13:43
推 abola921:『不應該邊 rendering template 邊撈 service』 07/16 15:37
→ abola921:我覺得這句就是把view切乾淨的扼要之處 07/16 15:38
→ TonyQ:@swlin0416 防呆一般而言本來就是前後都要的,切成 service 07/17 04:08
→ TonyQ:增加的負擔,反而是原本後端以為藏在系統上面不會暴露出來, 07/17 04:09
→ TonyQ:卻因為 api 而暴露出來,導致的新成本。 07/17 04:09
→ TonyQ:這年頭前端不作 validation 跟 handling 的狀況越來越少了。 07/17 04:09
→ TonyQ:*cwlin0416 07/17 04:10
→ TonyQ:後端與其說是系統架構導向,倒不如說是資料導向,前端有前端 07/17 04:10
→ TonyQ:的系統架構要做。 07/17 04:10
推 abadcafe:是的, 後端主要關注資料的事情, 比如資料如何得來, 資料 07/17 10:36
→ abadcafe:如何存儲, 資料如何檢索, 這些. 07/17 10:37