技術走出去看看開闊思維,不要做井底之蛙

王滔發表於2013-08-12

突然寫個感悟:感覺有些公司不能呆久了。呆久了,技術得不到提升。過去的經歷存在大腦資料庫,人做判斷是根據大腦資料庫已經儲存的資訊,所以思維模式容易受到過去的影響。

 

做phper,想提升技術,兩類公司不能呆久了:一類是網站建設公司。二類是接專案單子為盈利的公司。像軟體外包公司就是的。

1,關於網站建設公司。

我以前去一個公司面試的時候,是一個網站建設公司。我當面對老闆說,我說公司可以呆,但是呆久了。技術很難得到提升。浪費了提升技術水平的機會。

我與a同學也勸過一個同學,你以前在這種公司呆過,就不要繼續找這方面工作了,會導致你技術難以得到質的提升。找那種網站運營的公司去。這樣技術提升快。

網站建設公司,公司以幫人建設網站、網站策劃營銷作為盈利來源。建設一個網站,一般1000多塊錢,多的幾千。從技術角度,做這類網站,寫程式碼不需要考慮什麼效能,本來這種網站的都是一些簡單的功能。給顧客以實現功能為主。至於什麼程式碼擴充套件性,程式碼效能。sql優化,完全不需要考慮。一個是因為接的這種網站功能,訪問量都是很小的,更談不上什麼併發訪問。比如,網站建設公司接一個單,幫一家大公司做一個內部辦公方面的系統,既然是內部應用的,一般是員工使用提高效率。訪問量很少。一個公司有幾千個員工(這種公司已經很大規模的了),內部系統對外人一般不開發。預算幾千個去訪問已經很多了。同時一千個員工併發訪問可能性太小了,關於pv,不像社交類的網站,系統的使用者每天都去上網站點選這點選那的,伺服器,資料庫的壓力確實不小。這類系統,因為併發訪問和訪問量很少,在設計系統的時候,談不上考慮伺服器效能,資料庫效能,你可以去考慮,但我覺得至少是不需要去考慮的。沒意義。sql語句按照最簡單的吧。不需要優化。系統裡面的功能該有的都實現了,就ok了。純粹是考慮程式碼的熟練度。

 

網際網路系統,是開放性系統,開發對所有人訪問,訪問數量具有不確定性。暴露在外界。

作為對外提供服務,那麼必須要做到網站提供服務穩定,不間斷。如果使用者在用網站過程中,程式報錯,網站不穩定,使用者會流失掉。

上面兩個因素決定了,所需要涉及到的技術更加複雜。

 

如果是自己公司運營的網站,你要考慮的東西是方方面面的,1、你要考慮伺服器安全吧。2、因為是對所有使用者是開放的(你總希望訪問的使用者越多越好,這樣產生商業價值)。要考慮這個系統承載訪問量大的時候怎麼處理 3、資料庫是否扛得住。伺服器要選擇什麼樣子的。

web應用的特點,針對所有使用者都是開放訪問,意味資料量更多,併發訪問多。

 

 

php語言的優勢和特點,就是用來做web開發。所以作為web開發的高手側重是,高效能網站架構部署、如何提升網站的使用者訪問速度、資料庫大資料量如何處理(資料庫效能優化,sql優化、資料庫架構部署、資料切分等)、如何應對大併發訪問等方面。

做傳統的軟體開發,轉型向web開發後,側重點不同的。比如,以前在某個公司,該技術經理以前是做c++開發的。呆的是那種外資軟體公司,所以他們開發東西流程都是很規範的。一個專案一個專案的開發。但是到了做web應用的公司後,他的技能就顯得捉襟見肘。因為我們的手機網站當時訪問量很大的(有錢可以投廣告),每天的訂單數量維持在3k-4k。訪問量大,資料處理量也大。資料庫時不時的崩潰。尤其是涉及到後臺需要給營銷、市場部門做資料統計。這個經常不小心點選就把後臺給卡死了(資料量太多了,功能沒規劃好,很耗費資料庫效能),所以很多統計功能,確實是只能勉強用用,市場部沒事哪敢去後臺點選。

同時,還遇到前臺訪問資料速度不夠快。當然是老闆覺得競爭對手的怎麼那麼快。但是技術經理折騰一天,還加班,都沒搞清楚效能瓶頸在哪裡(以前我還總結要找瓶頸才能解決速度問題,http://www.cnblogs.com/wangtao_20/archive/2012/05/10/2493899.html),所以試很多東西,都沒解決好。

實際上,web開發,如果想提升網站效能,要懂些磁碟知識,伺服器硬體(比如記憶體,cpu、節點如何擴充套件)知識。與傳統的軟體開發所側重的知識點是不同的。

每種技術都有其自身的特點,做php開發與做asp.net開發,同樣是語言,側重點不同。

做php,我感覺跟asp(或者asp.net)開發也是很大不同,asp.net微軟公司強大,很多效能,好的工具都已經幫你解決了。幫做.net開發的省去很多事情。另外一點,由於windows系列本身微軟公司是避源的,不開發。所以裡面結構只有微軟公司最清楚,封閉的東西總是有瓶頸限制很難進一步擴充套件的。所以假如你的網站訪問量達到很大的時候,靠自己技術解決不了的,必須改動底層或許提升服務效能,因為微軟出於商業考慮使得系統的封閉性,你不可能也沒那個能力去修改底層的東西,此時是已經摸到天花板了,一般是向微軟花錢買服務,那是微軟的要做的,並非.net程式設計師要考慮的。京東商城資料量那麼大,就是這樣子的。它有錢嘛。

linux環境下,整個作業系統不僅是免費開源,而且你覺得效能遇到瓶頸了,你可以自己在上面做定製開發。大家的智慧總是要比微軟公司一家的智慧要多。

所以,以php語言來做web開發,要了解和學習的東西要求更多。一般php+mysql是中小型公司選擇最多的(大公司有錢就去用oracle,比如阿里巴巴主要的資料庫還是oracle,他們用mysql也有,畢竟mysql免費,通過很多的mysql節點叢集產生大資料量儲存效果)。所以,想提升網站的效能,對mysql的資料庫不是侷限於怎麼用。而是怎麼優化提高mysql的效能。比如:主從結構,分散式mysql結構、資料切分等。

 

 

相關文章