2009-02-04 48 views
16

重要提示:接受的答案被接受後的賞金,不一定是因爲我覺得這是最好的答案。網絡開發人員項目模板目錄


我發現自己在開始新項目時反覆做事。我創建一個文件夾,子文件夾,然後複製像CSS復位文件,famfamfam圖標,jquery等一些標準項目。

這讓我想到了什麼樣的理想起始模板。我問的原因是我再次經歷了一次,並且想知道我應該在我的模板中包含什麼,以便我不必在未來再回來,並且每次開始新站點時都要重新執行此操作。

我目前有如下:

項目模板文件夾
  • 的index.html - XHTML 1.0嚴格的DOCTYPE。元標記。 CSS/js文件引用。
  • CSS/
    • default.css - 空。保留用於用戶樣式。
    • 960/- 960用於CSS佈局的網格系統。
      • 960.css
      • reset.css
      • text.css
  • JS/
    • default.js - 空。保留用於用戶腳本。
    • jQuery/- 輕量級的JavaScript框架
      • jQuery的1.3.1.min.js
  • IMG/
    • famfamfam/- 優秀的png圖標集合
      • 圖標/
        • accept.png
        • add.png
        • ...等

回答

8

我有一個類似的結構和命名約定,但對CSS,我使用BluePrint我覺得這是更具擴展性。還比較喜歡最近從原型切換到jQuery。另外,我有一個common.js文件,它是jQuery自定義函數的擴展。包含模式定義的.sql文件的A/db /文件夾。用於公共中間層庫的A/lib /文件夾。

我也將有一個/ src目錄/文件夾,有時會有原始文件如Photoshop模板,自述的,待辦事項列表等

+0

關於Photoshop文件極好的主意。我在PS上工作很多,並且通常會有.PSD亂丟我的桌面,或者亂丟我的項目文件夾。 – Sampson 2009-02-04 13:40:03

1

我認爲,結構好等。添加其他幾個文件夾取決於您正在完成的工作類型。

對於自由職業者之類的,添加PSD文件夾,客戶端評論將是一個很好的補充。

1

一個非常MS扭曲的觀點,但我SOP現在是沿着線:

  • 文檔/
    • 架構/(可以稱之爲代碼文檔)
    • 通訊/(重要的客戶文檔)
    • 規格/
    • 白皮書/
  • 圖形/
    • * .PSD
  • 源/

    • com.mycompany.projectname.solutionA/
    • com.mycompany.projectname.solutionB/
    • com.mycompany.projectname.solutionC/
    • com.mycompany.projectname.solutionX/(在這裏經營意識項目)

      • businesslogic/
        • *的.cs (或其他)
      • (進一步項目 - 在視覺工作室的意義上)
      • 網站/

        • 處理程序/ (很少用實際的。HTML這些天)
        • 模塊/
        • 資源/

          • IMG/(PNG格式的JPEG,GIF文件等等)

            • 皮膚/
              • 圖標/
              • 點的背景/
          • JS/(壓縮時公佈)

            • 庫/ (標準碼)
            • 公共/ (應用特定代碼)
            • * .js (應用特定代碼,希望爲零)
          • CSS/
            • skinX/(即使僅僅是 「默認」)
              • extension.css
            • base.css
          • 變換/ (al從公衆隱藏的方式通過配置或構建過程)
            • * .xslt
      • 單元測試/
        • 嘲笑/
        • testmain.cs(或其他)
  • 第三方/
    • 依賴
3

如果你有很多的項目有很多的共同點靜態內容(例如jQuery的,CSS框架等)使自己的媒體服務器來服務所有這些。然後,您不需要從「模板」創建一堆文件夾結構,只需將正確的文件包含在項目的html中。如果你真的想要一個模板,你的模板將變成一個html文件而不是目錄結構。

這也爲您提供了一種更新站點靜態媒體的簡單方法(例如,移動到960的下一個版本)。你只需要在一個地方完成。當然,您仍然需要確保您的更新不會破壞現有網站! :)

如果某些項目有重疊需求但與其他項目不同,則可以使該方案稍微複雜一點。每個設置只需在服務器頂層有一個目錄,每個設置對應一個html「模板」。主要想法是不得不處理所有常見問題的一個副本。

您當然可以在小型虛擬機(例如linode)上以$ 20 /月或您當前Web服務器上的虛擬Web服務器的方式執行此操作。你並不需要一臺服務器,對此,你只需要一個文件夾。不過,我認爲通過擁有專用的媒體服務器,您可以獲得顯着的性能提升。我建議使用微調的apache或nginx來達到這個目的。

至於特定於站點的靜態文件,它們駐留在介質服務器上,目錄結構可能與您擁有的完全相同,但它們應該是/應該是空目錄。

1

我絕對喜歡這樣的骨架模板文件夾的想法,但如果你使用一些不同的技術,一定要密切關注結構。與PHP相比,我的VB.net文件夾結構具有完全不同的設置。這聽起來像常識,但我看到人們都以同樣的方式接近。

3

我的web開發框架位於git倉庫中。通用代碼(例如通用PHP類)在主分支中得到開發。所有針對特定網站的工作都會在分支上完成,然後進行更改,這將有助於將來的工作合併回主。

這種方法對我來說很好,因爲我對所有網站都進行了完整的版本控制,如果我在分支上工作時修復了一個bug或實現了一個新功能,我可以進行合併,然後一切都會受益。

這裏是我的模板是什麼樣子:

/ 
|-.htaccess   //mod_rewrite skeleton 
|-admin/    //custom admin frontend to the CMS 
|-classes/    //common PHP classes 
|-dwoo/    //template system 
|-config/    //configuration files (database, etc) 
|-controllers/   //PHP scripts that handle particular URLs 
|-javascript/ 
     |-tinyMCE/ 
     |-jquery/ 
|-modules    //these are modules for our custom CMS 
     |-news/ 
     |-mailing_list/ 
     |-others 
|-private/    //this contains files that won't be uploaded (.fla, .psd, etc) 
     |-.htaccess  //just in case it gets uploaded, deny all 
|-templates/   //template source files for dwoo 
+0

我認爲這是一個重量級的解決方案。擁有我在一個git樹中開發的所有網站,以及不同的分支......我想如果你的項目有這麼多共同點,它會在一個實用程序錯誤修正中更新它們。 – Thelema 2009-02-13 17:20:10

1

在工作中我們使用代碼點火器,其爲我們的web應用的PHP框架,並創建了一個新的項目模板,正是這麼做的:簡單的目錄結構,藍圖CSS ,jQuery和Code Igniter應用程序文件夾,裏面充滿了幾個常用庫(認證,常用數據庫的一些Speciales模型......)。

這裏的主要格言是:刪除組件總比添加組件容易。所以填寫你的模板。

(當我開始一個新項目,在我的業餘時間我非常想念那個模板...)

1

我覺得你在這裏是偉大的,你已經列出....是什麼當然,所有關於您的應用程序的公共前端。我唯一的補充是,如果可能的話,將所有後端代碼和源代碼保留在公共Web空間中,因爲公共空間中的東西越少,應用程序就越安全。

所以我建議你把你的整個樹,並把它放在:

httpdocs/(all you had in your project template folder) 

然後把你的所有後端代碼(如PHP庫,SQL文件等)相鄰子目錄:

httpdocs/(all you had in your project template folder) 
phplibs/ 
sql/ 

而且,即使你前端的東西,請確保您不要在可能會與您的前端庫中的任何示例文件複印件,自己可能有實例安全問題可能會導致人們進入XSS或以其他方式危害您的網站。

1

我一直在使用了一段時間如下設置,現在很大的成績:

  • /網站:這是我的實際工作網站將生活。在創建模板後,我將在此目錄中安裝CMS或平臺。
    • 的.htaccess (基本扭動我經常發現自己無論如何使)
    • 的robots.txt (所以我不會忘記,以禁止像/管理員後項目)
  • /來源:包含任何補充,備註,文件,規格等。

  • /templates:從這裏開始!創建最終需要移植到CMS或/ site的框架中的所有靜態模板。

    • /行爲
      • global.js (位點特異性的代碼;可根據需要細分爲多個文件)
    • /媒體:圖像,可下載的文件等。必要時組織

    • /風格:我更喜歡模塊化的CSS開發,所以我通常最終爲每個獨特的部分 網站。用Blender大大地清理了這個 - 我強烈推薦這個工具!

      • behavior.css
      • print.css (需要啓用JS-瀏覽器的任何造型)(這最終被混合,所以使用@media打印)
      • reset.css Eric Meyer's
      • screen.css (對於@media屏幕,手持式)
    • /vendor:所有第三方代碼(jQuery,shadowbox等))

    • Blendfile.yaml (對於攪拌機;見上文)

    • template.html (基本出發模板;可複製和重命名爲每個獨特模板)
2

我使用類似的佈局,但有一個主要例外:所有這些目錄都位於頂級媒體/目錄下。這是由於幾個原因:

  1. 此目錄是rsync'd rsync'd處理所有的靜態媒體請求。
  2. 擁有多個主機允許一些瀏覽器對支持文件進行更多的並行請求。
  3. media /目錄有它自己的.htaccess文件,它從圖像(或其他)的日期 - 時間最後修改的路徑剝離出psuedo目錄。

自定義模板標籤(我已經使用了2個Django項目,但您可以在PHP等中使用此標籤)生成的網址a)半隨機選擇其中一個媒體服務器,b)添加基於時間的僞目錄到路徑,以及c)爲該對象提供現在+10年的過期時間。

1

我喜歡OP作爲默認開始點。標準模板應該簡單易行,只有在需要時才能增加複雜性。

一個加法:

/robots.txt的

相關問題