怎么才能成為一名真正的Web程序員
發(fā)表時間:2023-08-18 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]程序員可以分為很多種,像Unix程序員、Windows程序員,或是C++程序員、Delphi程序員,等等。今天我想談的是Web程序員,一名真正的Web程序員應(yīng)該懂得那些方面的知識,應(yīng)該注意學(xué)習(xí)哪些東...
程序員可以分為很多種,像Unix程序員、Windows程序員,或是C++程序員、Delphi程序員,等等。今天我想談的是Web程序員,一名真正的Web程序員應(yīng)該懂得那些方面的知識,應(yīng)該注意學(xué)習(xí)哪些東西。
也許有些朋友會說,我知道Asp、Jsp,會做網(wǎng)站、會做bbs,這應(yīng)該叫Web程序員了吧。確實,我承認,這些技術(shù)是一名Web程序員應(yīng)該具備的;但是,你如果僅懂得這些,卻只能叫做Asp程序員、Jsp程序員,而不是真正意義上的Web程序員。現(xiàn)在的世界是屬于Internet的,大部分的應(yīng)用基于Internet,大家可以想想,像Yahoo、Microsoft、Amazon那樣的網(wǎng)站,其訪問量之大、應(yīng)用之復(fù)雜,需要什么樣的技術(shù)才可以支撐,難道僅僅是硬件的功勞么。
我想在Windows平臺下來談?wù)?/span>Web程序員應(yīng)該掌握的技術(shù)
1. 首先,就是上面提到的各種腳本,asp、jsp、php等等,這些東西大同小異,基本可以舉一反三。
2. 數(shù)據(jù)庫,
相信做Web的人肯定用過,像Access、Sql Server、Oracle。很多人會用各種數(shù)據(jù)庫,但是僅限于寫一些sql,select、update、insert,用ADO來操作,如果這樣,就算會用100種數(shù)據(jù)庫又有什么用呢?
你應(yīng)該考慮用戶量、訪問速度、內(nèi)存消耗,這些東西和你的sql密切相關(guān),我經(jīng)常見到很多分頁程序根本不去考慮數(shù)據(jù)庫中有多少條數(shù)據(jù),統(tǒng)統(tǒng)select出來,很明顯,當(dāng)你從數(shù)據(jù)庫中查出1萬條數(shù)據(jù)和100條數(shù)據(jù),占用的內(nèi)存是不同的。
另外,數(shù)據(jù)庫連接池和事務(wù)機制是非常重要的,應(yīng)該知道數(shù)據(jù)庫用什么來保證事務(wù),連接池如何實現(xiàn),這些都是商務(wù)應(yīng)用的關(guān)鍵。譬如,目前很多的應(yīng)用服務(wù),像weblogic、MTS,都包含事務(wù)處理,可以說好的事務(wù)處理決定了他們的競爭力。
3. 組件技術(shù)
我想是現(xiàn)在的Web應(yīng)用推動了組件技術(shù)的發(fā)展。以前,從老式的靜態(tài)庫、動態(tài)庫(dll),到現(xiàn)在的COM/DCOM,再到正在興起中的Web Service;從單機調(diào)用,到基于內(nèi)部網(wǎng)的分布式調(diào)用,到現(xiàn)在基于Internet的分布式計算。現(xiàn)在的應(yīng)用都是基于組件的n層結(jié)構(gòu),最明顯的就是COM和JavaBean。
這些東西體現(xiàn)了軟件架構(gòu)的發(fā)展,以前是基于單機的應(yīng)用,然后是C/S結(jié)構(gòu),到現(xiàn)在的B/S結(jié)構(gòu)。我記得李維曾經(jīng)說過,程序員一定要注意軟件技術(shù)的發(fā)展趨勢,只有這樣,才不至于被淹沒在技術(shù)的洪流中。我想,作為Web程序員,一定要明白COM的原理,如何實現(xiàn)這種調(diào)用、如何進行分布式調(diào)用。說實話,我覺得COM還是比較復(fù)雜的,否則微軟為什么要提供ATL和VB呢,要搞明白,應(yīng)該學(xué)學(xué)C++,因為VC中提供的ATL庫可以很明顯的說明COM的內(nèi)部運行機制。
4. 網(wǎng)絡(luò)技術(shù)
這可以說是Web程序員最應(yīng)該懂得東西。起碼,應(yīng)該知道Web服務(wù)器的機制,要明白Http協(xié)議。就拿IIS來說,要懂得web應(yīng)用程序運行的進程安全和IIS的關(guān)系,懂得ISApi的作用。
如果有時間,就看看TCP/IP,看看winsock,這些都是底層的網(wǎng)絡(luò)的東西。
我所說的這些都是基于微軟技術(shù)下的東西,其他的像Java方面的東西都可以對照參考,就不多說了,這也是我這幾年來的一些心得。總之,學(xué)海無涯,每當(dāng)接觸一些新的東西,就會發(fā)現(xiàn)自己的不足,同時也就覺得基礎(chǔ)知識的重要。說實話,像我們做應(yīng)用開發(fā),用別人的東西,在現(xiàn)在這種情況下,新的技術(shù)層出不窮,稍不注意就會被甩開,這也是沒有辦法的事情。