本文討論的是在web標準普及的情況下,網站程式設計師的定位以及如何與設計師配合開發符合web標準的網站專案。
本文適合的讀者是傳統TABLE佈局下分工不是非常明確的程式設計師。
1:學習web標準,讓你的工作變得更簡單。
web標準是大勢所趨,所以作為網站程式設計師。你必須洗腦,必須去學習web標準。去重新認識html標籤,去了解如何讓程式輸出頁面需要的程式碼。
Dim oHtml
set rs=server.createobject("adodb.recordset")
Sql = "select top 10 id,Title From tbl_News order by id desc"
rs.open sql,conn,1,1
oHtml="<ul>"
do while not rs.eof
oHtml=oHtml & "<li><a href=""shownews.asp?id=" & rs("id") & """ title=""" & rs("title") & """>" & rs("title") & "</a></li>"
rs.movenext
loop
oHtml=oHtml & "</ul>"
rs.close
set rs=nothing
response.write (oHtml)
而如果是傳統的TABLE佈局下,程式設計師要寫的HTML程式碼就會多很多,要寫出TABLE、要判斷什麼時候輸出TR來換行、要在每條新聞的前邊加個一個IMG來輸出小圖標、要用程式去控制輸出的標題長度。所有的工作都需要先出頁面程式碼,程式設計師才能去寫出這段程式。
對程式設計師而言,你應該把web標準當成是一種福音,你應該把它當聖經一樣去讀,去了解頁面代碼到底需要什麼,明白之後你就會發現。你比以前輕鬆多了。由於web標準注重的是表現與內容相脫離,而程式只負責內容資料。從此你不再需要考慮用程式碼如何控制隔行換色、一行分幾列輸出等等。你需要去做的,就是向頁面輸出最直接的內容,沒有任何裝飾的內容。
當然如果你是用.net開發的話,你就可以更徹底一點了。你可以完全將工作重點放在建立物件、類別庫、資料存取等,向表現層提供方法即可。下邊的例子是我以前做專案的,應該有點參考價值。
2:網站程式設計師,別讓HTML標籤阻擋了你的視線。
如果你覺得你真的非常討厭繁瑣的HTML標籤,而且自己的學習方向也不在網站的表現層,那你就和HTML標籤徹底地說再見吧。
我曾經在傳統桌面軟體開發的公司工作,程式設計師都不會HTML,網站專案緊的時候又得讓他們來幫忙。我們就拿著Visual Studio .Net 2003自帶的幾個例子仔細分析,按照物件導向的結構化分層開發模式,也能非常好的進行配合。以新聞模組的開發為例:
第一步:網站程式設計師可以依需求分析進行資料庫設計,你可以負責建表、編寫預存程序。這類的事情程式設計師都非常的熟悉。
第二步:定義對象。將網站的資訊物件化,例如:
Public Class News
Protected _id As Integer
Protected _typeId As Integer
Protected _title As String
Protected _author As String
Protected _original As String
Protected _updateTime As DateTime
Protected _content As String
Protected _clickCount As Integer
Public Property Id() As Integer
Get
Return _id
End Get
Set(ByVal Value As Integer)
_id = Value
End Set
End Property
Public Property TypeId() As Integer
Get
Return _typeId
End Get
Set(ByVal Value As Integer)
_typeId = Value
End Set
End Property
Public Property Title() As String
End Property
Public Property Author() As String
End Property
Public Property original() As String
End Property
Public Property UpdateTime() As DateTime
End Property
Public Property Content() As String
End Property
Public Property ClickCount() As Integer
End Property
End Class
就像這樣,把網站裡所有的表格都試著物件化。然後再定義與對象相關的記錄集,上邊定義的是單一的新聞對象,再定義一個新聞的記錄集。
Public Class Newss
.....
End Class
第三步:定義一套公共的資料存取方法。
定義一些操縱資料庫、執行預存程序的公共方法。
第四步:編寫基於物件的方法層。如:
Public Function ReadNews(ByVal ID As Integer) As News
End Function
函數回傳的就是一個新聞對象。根據功能的需要,一般也會定義一些相關的函數,如:
'讀取新聞列表
Public Function ReadNewss(ByVal newsType As eNewsType, ByVal nCount As Integer) As News
End Function
'增加一新聞
Public Function InsertNews(ByVal n As News) As Integer
End Function
'更新一則新聞
Public Function UpdateNews(ByVal n As News) As Integer
End Function
刪除一則新聞
Public Function DeleteNews(ByVal ID As Integer) As Integer
End Function
這樣來做,網站開發可以分成物件層、資料存取層、方法層、表現層。而程式設計師只需要提供表現層所需的方法。這樣一來,在表現層需要顯示新聞列表時,頁面設計師只需要用.net中的Repeater控件,如下代碼:
<asp:Repeater ID="topNewsList" runat="server" >
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li><a href="shownews.asp?id=<%#Container.DataItem("id")%>"><%#Container.DataItem("title")%></a></li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
而在表現層的程式碼中我們只需要加上:
topNewsList.DataSource = New facade.newsFacade().ReadNewss(eNewsType, newsCount)
這樣的話,程式設計師基本上可以與HTML完全脫離了。而且這樣的話,整個專案組的成員都可以並行工作了。能非常明顯地提高整個專案的開發效率。況且現在web2.0模式的興起,對後台資料庫開發提出了更高的要求。如豆瓣網、365Kit等網站,後台的資料庫挖掘工作是非常複雜的。所以在分工明晰的今天,除了HTML程式碼,其它有很多更重要的工作等待網站程式設計師去做。
3:以使用者為中心的設計,離不開前端開發工程師。
如果你覺得脫離了熟悉的HTML程式碼,你有點捨不得的話,不要緊。乾脆將自己推到web技術的風口浪尖。做一個成產品設計關係密切的前台開發工程師。