應用程序開發總結(1)--寫作的起點

         工作已經四年了,一直從事三維方面的工作。現在或多或少的完成了基本的功能,還有些高級的和低級的功能不想做。積累了一些編程技巧或者框架或者設計算法方面的經驗。

        在這裏寫系列文章,一則是爲了分享,二則是想總結和提高自己的表述能力。我認爲軟件技術的分享可以分爲5種。第一種是代碼或者算法,第二種是模式和技巧,第三種是框架和技術,第四是架構和系統,第五是應用和征途。我在此打算分享第一和第二類的相關內容。


第一章   CS和BS

    大學畢業,公司就要我做CS系統,當時不清楚CS和BS的差異,也算是我學的知識少。件開發就可以分爲CS和BS。其實這種分法很勉強,因爲我不知道單機版的程序或者平臺算什麼。

     說到這兩點,或許大家應該更多的關注"S",也就是server.Server的存在纔是BS和CS存在的基礎。沒有Server,那麼你的程序就不應該叫BS或者CS系統,頂多算一個單機應用系統或者程序。

     與CS相比,BS更注重內容,BS更多的向用戶展示內容服務,它是一種資源分享。而CS更多的是提供用戶的良好的操作方式和強控制。現在很多的功能都可以通過BS來做了,CS的開發者有時候會犯一個思想的錯誤,認爲BS在他的領域一定沒有CS做的好用。他們不認爲BS能夠完成CS的一些功能,開發效率低和使用不方便等。從開發者的角度來說,這種想法是沒錯的。但是這並沒有表現出該根本的差異。如果你需要展示的是內容服務,那麼BS更適合。比如對象屬性信息查詢。

     同樣的BS開發者也要看到CS或者直接的應用程序的開發的優勢。他們很容易提供一些諸如算法測試等開發。動不動就刷新頁面是一種費事的測試方法。

    另外還是要深刻理解Server的存在必要性,它應該是弱功能還是強功能的。不應該把Server簡單的當做數據發佈服務器。


第二章 登錄窗口

     登錄窗口其實要做的事情很簡單,一是用戶登錄的界面,二是登錄的認證。至於獲得相關用戶的角色信息,那就是後面的事情了。而這點在我們小組的開發前期就沒有理清。導致登錄窗口過於臃腫,而且當後來服務器獲取應用數據的方式發生改變後,登錄窗口很多的代碼變成了異常代碼。

      用戶身份認證裏面的學問其實很多。最簡單的是提交用戶名和密碼,在服務器中判斷是否存在。這種方式很容易出現SQL語句破解。如果你的SQL語句是這樣的

Select count(*) from table where username='a' and password='b'

當用戶名和密碼是'1' or 1=1時,上面的SQL語句就變成

       Select count(*) from table where username='1'  or 1=1  and password='1' or 1=1

       這時候查詢語句就是Select count(*) from table,就達到了破解密碼的目的。所以用戶登錄模塊是一個很嚴肅的問題,最後參考安全方面的標準,並減少登錄時候過早的訪問數據。

       每個人的手頭上或許有很多賬號和密碼了,如果能在所有地方都使用一個強的賬號體系,這是多麼美好的一件事情。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章