我正在考慮一個應用程序,它是一個「自由格式」數據庫。一組筆記和工件。但是,同時在系統內還有一些更高層次的結構。我應該發佈文件格式還是API?
我10秒背的,餐巾紙設計需要在小文件(或許是XML),目錄中的組織存儲個人「項」,然後索引使用類似Lucene的整個集。
其背後的前提是,這將是平凡的人,以「接口」與系統,因爲他們需要僅僅是「把文件到正確的地方。」由於它們是簡單的文本文件,它們可以由任何程序(例如腳本語言)生成,並且如果必要的話甚至可以是文本編輯器。
細節是維護索引和任何其他可能的關係。
理論上,在啓動時,程序可以掃描目錄中已更改的文件並更新索引。它甚至可以在後臺執行此操作。我不認爲這是一個可怕的漫長過程,因爲我不希望有1000個參賽作品。但是如果尺寸變得太大,只有在指示時才能讓系統掃描。
或者我可以要求一些特殊文件與「新文件」或諸如此類的事情,該系統可以檢查開始更新。
另一種方法是使用其他格式而不是單個文件。使用某種數據庫,他們是一打一毛錢。但是通過這樣做,突然間,這些數據對於一個臨時用戶來說是非常「不透明」的。這使得腳本編寫等可能更困難。
現在,我可以使用具有廣泛支持的SQLLite之類的東西,併發布數據庫模式。或者我想我可以在應用程序中創建一個服務層。
如果我把它寫在Java中,我可以發佈一個工具可以使用Java API,但只有當它也被用Java編寫的。
或者我可以暴露API端口,比如,輕量級的Web服務(POX通過HTTP,REST或通過HTTP)。目前HTTP支持的範圍非常廣泛。這將要求應用程序運行以便使用任何實用程序。
與所有一樣,這是一個平衡。我認爲File解決方案更簡單,效率可能更低,但可能會限制內部複雜性。
該API可以更強大,但使用起來更困難,而且對於臨時用戶肯定沒有用處。
您認爲您會如何處理這類問題?