跨平台的網路雲盤軟體設計實現 一

2021-06-21 13:25:18 字數 876 閱讀 3866

由於ubuntu one 停止服務,由於眾所周知的原因dropbox外掛程式在中國也沒法使用,一直沒有好的linux同步工具,所以自己索性寫了乙個跨平台的工具。自己在設計和實現的過程中學習到了不少知識,下面自己寫成部落格,慢慢分享。

首先是需求分析,自己用用例圖畫了乙個如下。

需求分析:

從上面看,這個軟體主要的功能比較簡單,互動的物件比較少。

作為功能的核心,主要是檢測檔案系統的改變,然後將檔案系統的改變同步到雲伺服器上。其他的功能就是基於這個主要功能而做的配置。

了解了使用者需求(其實主要是我自己的需求),我們就可以開始選擇開發語言和框架了。由於鄙人需要是乙個跨平台軟體,而且最好能敏捷開發。所以自己選擇python跨平台、簡潔而又強大的語言。同時選擇qt的繫結作為ui的介面,因為程式。同時需要乙個能支援分布式的版本管理系統。所以git是我的選擇,同時開始第一次試用github,話說這個在gfw下訪問巨慢(呵呵)。

那麼開始大體的軟體設計了,在設計前需要知道大體的軟體流程,比如使用者新增刪除同步目錄,軟體如何做。

軟體的活**如下:

我們可以看到,當使用者新增目錄時,軟體需要新增到配置資訊中,同時開啟對新增目錄下面檔案、目錄的變動的監控。當有檔案變動時,需要同步雲伺服器的相關改動,同時通知客戶。

而當刪除目錄時,相關檔案系統監控則需要移除。

展示下介面:

軟體設計模式的非軟體例子(一)

摘要 本文michae lduel l著,為wu 譯,出自 非程式設計師 軟體設計模式 於 christopher alexander 的建築學模式和物件運動 根據alexander 的觀點,模式就是乙個 對於特定的系統的通用解決方案本身的重複 物件運動關注於將現實世界模化為軟體內部的關係。基於這 ...

軟體設計模式的非軟體例子(一)

摘要 本文michae lduel l著,為wu 譯,出自 非程式設計師 軟體設計模式 於 christopher alexander 的建築學模式和物件運動。根據 alexander 的觀點,模式就是乙個 對於特定的系統的通用解決方案本身的重複。物件運動關注於將現實世界模化為軟體內部的關係。基於這...

軟體設計的一些思考

軟體設計的一些思考 從事軟體開發工作已經五年了,仔細想想,雖然做了不少專案,但是在軟體技術上,感覺始終還是進步甚微,一方面和公司的情況有關,一方面,我想,也是自己個人總結和思考不夠吧。所以,慢慢的,還是有必要對自己的一些經驗做思考和總結。為什麼只談軟體設計,不談軟體開發呢,軟體開發涉及的不僅僅是設計...