Re: [請益] 想請各位前輩指正一下學習方向(改)

看板 Soft_Job
作者 TonyQ (自立而後立人)
時間 2013-07-16 11:04:06
留言 22則留言 (5推 0噓 17→)

: : → 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

您可能感興趣