2013-07-19 36 views
2

我開始一個新的web應用程序,我有這個非常愚蠢的擔心,我想我會澄清從你們所有人。關於單頁網頁應用程序架構的愚蠢但明智的擔憂

這個應用程序將是一個單頁網頁應用程序,並將在Html,JS/Flex作爲前端和PHP作爲後端開發。所以我有兩種選擇

  1. 保留客戶端的所有應用程序邏輯,即(JS/Flex)和使用PHP僅用於數據輸入和輸出到數據庫。
  2. 僅將JS/Flex用於UI,並將所有應用程序邏輯保留在PHP中,這些邏輯將作爲獨立服務使用。

兩者各有利弊像

  • 如果我和第一個選項去,應用程序的用戶體驗將是順利的。 (因爲這涉及非常少的客戶端服務器交互)
  • 如果如果我去第二個選項,應用程序邏輯將在PHP中,我可以以後公開爲API,以防我希望其他人使用相同的API和構建定製應用程序

但我無法就兩者的利弊進行爭論,並最終確定其中之一。請幫助,希望你在開發事業中一定遇到類似的問題。

在此先感謝!

+0

這取決於應用程序。如果某些數據需要持久化,那麼當然應該將其存儲在服務器端。如果不是,本地數據庫確實更好。 –

+4

與一個適當的單頁應用程序,你會使後端一個API,你從前端調用。這就是所謂的吃自己的狗食。 – abc123

+0

你也可以發佈一個客戶端API。 – Orangepill

回答

2

我建議並寧願去option 2由於以下原因 1.如你所說,你可以在以後公開API。 2.它將更安全,因爲所有的應用程序邏輯都將由PHP處理。

+0

沒有任何東西阻止他使用選項1,並利用他自己的前端代碼API。 – Orangepill

+0

謝謝Runish!是的。你有沒有看到這方面的其他優勢?由於選項2可能會影響用戶體驗,因此我正在尋找抵禦缺點的強大優勢。 – Sameer

+1

我不確定你的應用程序是什麼以及它將如何使用。但固體優勢是API。因爲一旦擁有完整的API,您就可以使用相同的API構建不同的移動應用程序,平板電腦應用程序和課程網絡應用程序。 –

1

有很多design patterns但是既然你有興趣創建API的後最適合你將是你選項2形式的可能性。

僅將JS/Flex用於UI,並將所有應用程序邏輯保存在PHP中,這些邏輯將作爲獨立服務使用。

只需讓使用下列技術之一單頁應用前端UI前端:

Difficulty

然後讓你的所有的業務邏輯到寫在PHPPython或任何其他backend languageRESTful API電話。

如果這些服務允許完全CRUD並不僅僅是Read我建議使用OAuth到您的服務保證只允許授權用戶Create, Update, and Delete。您只能使用OAuth PHP library

其原因是它允許您創建任何其他應用程序,只需重新構建UI,而不必重新編寫每種語言的商業邏輯(C, C++, objective C, C#, Python, PHP, JavaScript, Ruby, etc.)。然後,當您向公衆發佈API時,他們會用有效的用戶名和密碼(由用戶給出)致電OAuth service,並且因爲您現在有eating your own dog food,所以將能夠製作一個豐富的全功能應用程序。這是一個非常重要的概念,雖然它可能需要更長的時間才能開發出來,因此您不需要re-architect,因此re-developre-factor的代碼很多。