2010年9月28日 星期二

遊戲公司的網頁比較難作得好的原因

作者: OrangeDream (orange) 站內: Jobs
標題: Re: 我們公司在找一個會PHP,ASP,SQL DB等網路程式的人
時間: Sat Oct  2 11:17:02 2004

※ 引述《scbhung (慕凡)》之銘言:
> ※ 引述《OrangeDream (orange)》之銘言:
> > 寫只給10個人同時在線的網頁, 確實如此, ASP + DAO 當作單機版使用
> > 付二萬五, 夠了
> > 寫給 100 人同時在線的, 只要再仔細的去 release DB 的 connection 即可,
> > 還有 response time 跟 memory 也要小心, 這裡是學幾天的人無法寫出來的
> > 我懷疑付二萬五的人是否可以作好這個程度
> > 若是寫給 1000個人以上同時上線的網頁, 對不起, 程式完全不一樣
> > 那些只學了幾天甚至幾個月的"程式設計師"們, 只會幫倒忙
> > 外表看起來一樣, 但是裡面的架構是完全的不同的.
> > 要作 share loading, DB connection pooling, session sharing ...
> > 付二萬五? 省省吧, 你找不到二萬五的人可以為你作這個的.
> > 最好是付個五六萬以上請有經驗的人, 不然等著看你的網站垮掉.
> 五六萬?在遊戲業界?
> 唔....不予置評....
> 沒錯,這聽起來很糟糕

是的, 這也是遊戲公司的網頁比較難作得好的原因.

一個具有大型入口網站開發經驗二年以上的工程師, 在軟體業界至少值五萬以上.

而且若是 lead programmer 價碼是更高的. 但是在遊戲業界, 不願付這樣的薪水,

那, 為什麼這些人要來遊戲公司的網站工作呢?

許多軟體工程師, 包括我, 是因為想作遊戲才能夠接受遊戲界較低的薪資,

然而, 這些人並不是來作遊戲, 工作內容是相同的, 而所要面對的卻是上頭認為

網站技術性低, 不需要什麼人力, 隨便找學幾天就可以學得會的人就可以寫的這

種心態. 說真的, 以一個參與過許多企業網站開發的我來說, 真的覺得這些不被公司

重視的網站工程師們很不值.

> 但是現實是業界內的…唔…應該說是行情嗎?
> 一個常態上線人數達數千人的註冊/儲值網頁的程式人員

註冊人數不是問題, 而是同時連接量(concurrent connection)跟回應時間(response

time)才是問題, 儲值網頁的同時連接量跟入口網站是完全不能相比的

據說 Yahoo 平均每秒有400個連接進來, 這是一個很可怕的數字, 而且這還不是

最高上限

> 我沒問過他們薪水多少(依公司規定我也不能問)
> 雖然一定比我多(orz),但他們薪水應該也不到五、六萬吧…了不起三萬多左右…
> 別把程式神話了啊…雖然我沒寫過網頁,但也學過其它程式語言
> 你說只學幾天的就算了,學過幾個月的絕對有可能有這個能力去做到
> 差別只是在應用上的經驗而已
> 除非很急著需要,不然他們遲早寫得出來能做到同樣程度的東西
> 雖然可能會多花上一、兩個月,但是絕不會像你說的一樣"幫倒忙"

我這樣說好了

寫程式很像蓋房子

蓋一個狗屋, 用幾塊木版釘一釘, 一個門外漢不用學都會

蓋一個車庫, 那就需要一點技術了, 可能要看些說明書, 看是要用鐵架作棚子還是用

磚瓦來搭, 不過勉強在自學的能力範圍內

蓋一個二層樓的鋼筋混泥土房子, 自學... 不太可能了吧?

蓋一個三十層以上的鋼骨建築的房子, 自學? 想太多了

最好是台北101也可以用二萬五的工程師慢慢蓋起來, 那世界真的太簡單了,

然而結果是不僅蓋不起來, 而且蓋到第二層就會垮下來


好吧, 以下轉為網站

寫一個靜態網頁, 用 frontpage 還是 dreamweaver 拉一拉, 買本html的入門書

邊看邊寫, 放進 IIS 裡, 好, 完成了, 大家都嘛會, 網頁程式真簡單~~ 阿母啊,

哇行功啊~~  (狗屋搭建完成, 等級0, 經驗值 3)


寫一個動態網頁, 用 frontpage 使用 asp , 裡面直接開DB connection 連

SQL server, 看, 真高級, 資料庫也用上了, 照著書打打 SQL query, 嗯嗯,

一個簡單的留言版作好了, 放上 IIS, 嗯, 上課的錢沒白費, 唉, 程式真簡單,

幹嘛唸什麼大學學老半天(鐵架棚搭建完畢, 等級1, 經驗值 25)


留言版技術性太低了, 我這下要來挑戰一個討論區, 規劃每個留言過程, 一頁一頁

寫完, 只是比較煩而已, 終於作好一個討論區了, 嗯, 真好, 看起來跟巴哈的也

沒差多少嘛 ^^  (磚瓦車庫搭建完畢, 等級2, 經驗值 80)


接下來, 好, 很多人進來看網站了, 咦, 怎麼回事? 怎麼一堆人連不上? 啊, 伺

服器記憶體用完了, 資料庫連不上了, 討論區不能使用了, 天啊... 才不過十幾個

人同時在線而已, 看書, 書上也沒教... 網站就爛在那邊(仆街, 重生回城裡...)


所以接著首要要解決的, 是資料庫連接的問題, 資料庫同時只能有不到一百個連線,

如果每秒有10個連線, 也就是每分鍾有 600個連線, 每小時有36000個連線, 每天有

864000個連線, 那每個連線就不能使用資料庫資源超過10秒. 否則之後的人

就用不到資料庫造成 service out. 而為了達成這個目標, 還有記憶體的使用也不能

無限的浪費, 所以研讀何謂演算法, 何謂最佳化程式, 還有 SQL 的最佳化等等

很遺憾的, 民間開的課往往都是那種速成型的, 什麼50小時學會 SQL server

誰想學這麼無聊的課程? 所以, 自學的人想要在這裡突破, 大概也是在程式邊當的

時候邊摸索... 好吧, 東修西修終於讓一個網站可以同時10人上線, 一個二樓的

平房蓋出來了 (等級 10)


如果很不幸的, 由於公司網站頗受好評, 所以同時在線人數大幅上昇,

好了, 現在平均每秒有20人登入, 但是服務又不可能壓到5秒以下, 怎麼辦??

怎麼樣修, 由於每個網頁都連接資料庫的前題之下, 根本無法達成需求

可是又不可能所有的網頁都翻過, 老板不會給這時間了, 這個網站就爛在這裡了

(又仆街, 回家... )


然後, 才知道為什麼要有 connection pool, 因為要達成 connection pool,

若是自己寫, 則要很懂 multithread programming, 然後網頁必需要拉成二個以上

的 service, 然後為了要讓記憶體跟運算速度加速, 於是要有 AP server,

要作分散式計算, 自己開發, 只要從後面的程式到前面的程式

之中有任何一行寫錯, 出來的結果就是錯的. 相對來說, 前面的 html 編排的難度

跟路邊的小石頭一樣, 當然美感要作得好, 以及使用者使用的順暢又是另一回事,

這裡是就純程式的技術難度來說.


我不知道一個自學的工程師能夠學多久才能完成這一階段的挑戰, 當然鬼才也是存

在的, 然而我在大學與研究所學習程式設計六年, 而面對這樣的挑戰時,

還是要把書拿來 K 了一二星期才了解其中的複雜度. 我也負責過維護那些只學

了幾個月的人寫的爛程式, 只是覺得很生氣, 這些程式的撰寫者, 根本就不懂,

連大一新生的程度都比不上, 竟然 update 一個 30 個欄位的一筆資料,

寫了 30行 SQL 是怎樣!!? 看到這麼離譜的程式只好重寫, 這不是幫倒忙不然是

什麼? 一個人作的事, 需要另一個人每行去看有沒有問題, 必要時還要重寫,

那請這個人幹嘛?



以 Yahoo 這種百層的房子, 需要有很建全的架構, 也可以說如同遊戲界的 3D 引擎

一樣, 沒錯, 它需要一個好的引擎, 所有的服務是像 script 一樣鑲上去的,

而不是每個都從頭開發. DB pooling, AP server, share loading, distributed

computing, exception handling, service lock... 所有的底層服務都要準備好,

然後, 網頁就可以一一個建置. 不會因為多加了一個網頁而導至其它網頁出問題...


這樣的工作, 二萬五的薪水? 太看不起人了吧? 國內軟體業起不來,

我覺得就是不尊重專業, 只是一味的尋找更便宜的人, 所以有技術的人不願意留下

來作. 導致產品品質也不好, 然後老板也認為, 反正看起來就差不多, 何必多花

錢請人. 是啊, 隨便找人, 寫出來的東西就是隨便啊, 那消費者也隨便看待你的產品

那公司的營收也很隨便. 股票也就隨便囉.


對不起了, 之前工作的怨氣, 不是針對個人. 只是認為應該讓大家了解,

並且多給網頁工程師們一些鼓勵跟掌聲.
※ 修改: 2004/10/2 11:20:57 [211-23-199-105.HINET-IP.hinet.n]

沒有留言:

張貼留言

您好.本資料庫並非第一手資料.如果你有對文章作者的詢問,意見與需求,請自行找尋文章作者並提供意見,謝謝.