2009-08-23 46 views
1

我正在尋找一個指南,或者簡單地瞭解設計網站的方法。PHP Web-App Design

我對如何做各種事情在PHP反正,OOP的基本知識是一個好主意,和功能並沒有什麼...

但我需要一些結構,以保持跟蹤我,讓我知道我應該做什麼。

有沒有可以幫助我的網站,指南或方法?或者,也許一個應用程序,客戶端或web應用程序...

回答

5

首先,您需要確定您的應用將要執行的操作以及將要使用它的人員。

接下來,您可以創建use cases開始籌劃正是用戶會做。你甚至可以用棒圖和箭頭來製作花哨的小圖。

Sequence diagrams和屏幕實體模型將幫助您規劃出系統如何工作,你需要哪些頁面。

您也可以創建一個基於UML的class diagram,它可以真正幫助您規劃出需要創建的類,包括他們需要的方法和變量,以及讓您掌握設計數據庫的軌道適合你的網站。

與跳躍編寫代碼相比,做這些事情看起來有點無聊或跛腳,但因爲它會迫使你提前思考,所以即使只做了一半的事情,也可以避免大量的陷阱。

從那裏,你實際上可以使一個嚴重的TODO列表,並通過依賴性和優先順序的任務。我使用文本文件。這不是最好的解決方案,但它對我很有用。

編輯:

擴大我自己的過程。請注意,這是我自己在自己的項目上工作時所做的。

一旦我有了上述排序完成後,接下來的事情我會做實際上是寫出來的數據庫表中,這樣的事情:

USERS TABLE 
=========== 
user_id (PK) unsigned int (10) 
username varchar(30) 
email_address varchar(30) 
is_active bool 
password varchar(41) 
registration_date datatime 
registration_ip varchar(20) 
last_login_ip varchar(20) 
last_login_date datetime 

...等。所有的桌子。然後坐下來看看這些表是如何相互關聯的,想想可能會丟失什麼,並規範化/反規範化,直到它對於構建的應用程序有意義,尤其是需要編寫的查詢。是的,我在文本文件中這樣做。

我強烈建議,像其他人一樣,MVC設計模式。它可能不適合你想要做的事情,但它通常適用於大多數Web應用程序,並使它們更容易實現和維護。你想要的最後一件事是意大利麪代碼。

所以如果你打算使用MVC,應該很清楚你需要寫什麼模型(最重要的部分)以及控制器和視圖文件。

所以我這是怎麼安排什麼我需要做的:

TODO 
- create database tables 
- user registration 
- authentication 
... 

SECURITY 
- sessions in db table 
- xss cleaning in form x 
... 

等!

每次我想到我需要做的事情都會成爲一個觀點。顯然這些點可以很容易地進一步擴大。我試圖通過來訂購他們,我覺得下一個(因爲這是最簡單的方法)和重要性,或從其他任務的依賴。

這對某些人來說可能看起來很愚蠢,但這是我如何跟蹤事物的方式。 希望它給你一些想法。

+0

你有任何文本文件的例子嗎? 我想我可能會走下這條使用文本文件的路線...... – Aran 2009-08-23 17:53:40

1

如果你的意思是網站結構,代碼佈局等則this答案可能有幫助。

+0

不完全代碼佈局,但更多的項目管理,有助於說話的方式來設計應用程序... 例如我的應用程序的某些位將不首先做其他工作,強調...例如工作數據庫工作,以便代碼工作可以做... – Aran 2009-08-23 17:13:20

2

老實說,什麼工作最適合我一直是一個簡單的「把它寫下來,你這樣做之前」的做法。如果您只是花時間計劃您的服務將如何運作,那麼您可以節省大量時間,而無需重寫任何東西!

聽起來好像只是寫下你想要做什麼,以及如何做到這一點會幫助你很多。

+0

是的,它會幫助,但也想知道如果有一個系統,我可以使用的地方,我可以設置它的東西作爲任務,所以當我完成了第一步可能只是簡單地勾選它,它會表明我不得不/現在可以開始某個部分已經完成... 我知道這可以在紙上完成,但系統似乎是一種好方法來管理這樣的事情。 – Aran 2009-08-23 17:17:42

0

我同意Gavin:您應該瞭解Model-View-Controller,如the article Gavin中所述。

它會爲您提供文件的基本佈局,它會讓您考慮數據庫(當您計劃模型時)。

讓自己更多地瞭解您的項目的一種方法是找到合作伙伴program together

+0

我一直在使用CodeIgniter和Kohana一段時間,他們是一個很好的節省時間。 (後者是前者的一個分支,它們都是PHP中的MVC框架) 雖然他們不會爲你組織網站,但仍然是一個很好的幫助。 – Petruza 2009-08-23 18:02:31

1

首先,我同意別人在開始之前寫下幾件事的看法 - 即使它只是非正式的。這總能幫助你解決問題和你需要的東西。

如果您對某些您正在使用的技術有些陌生,那麼我的一招就是先從幾個不那麼雄心勃勃的樣本開始。不要害怕先寫一些可怕的東西,因爲這樣做很糟糕,曾經會教你如何做第二次。無論你在做什麼,Hello World都是你的朋友。

+0

我已經這樣做了..通常會做出一些愚蠢的事情。所以我可以回過頭來看看它做些什麼......讓它變得更有趣,再次重溫時更有趣... – Aran 2009-08-23 18:46:44