面試過程中描述專案一般分為三大點(第一點是參考說辭。後兩點是可補充的說明,個人可根據具體情況介紹)
1、專案的開發背景介紹以及個人在專案中完成的功能點
2、專案的開發過程(開發周期)
3、專案的系統架構
1、專案開發背景以及個人完成的功能點介紹
我們這個專案是為***公司開發的一套辦公自動化系統,簡稱oa。該公司屬於xx行業,業務型別主要是***,該公司為了提高辦公效率與辦公質量,實現無紙化辦公與科學的管理而委託我們公司研發該系統。通過需求調研與設計,我們將該專案劃分為了xx個大的模組。主要包括 ***。。。而本人在該專案中主要負責組織機構與許可權管理兩個大模組的設計,開發,調式以及維護等工作。
組織機構模組主要是對該公司的部門以及人員的管理。所以在此模組中我們又分為機構管理與人員管理兩個子模組。由於該公司的機構屬於職能型機構,父機構下面又存在子機構,就像乙個樹狀結構,所以我們在設計該模組表的時候使用了自關聯的方式,這樣可以減少資料庫設計的允餘,也便於擴充套件。而人員模組設計比較簡單,就是直接在表中加入了乙個機構的外來鍵,因為人員肯定是屬於某個部門的。
至於許可權模組的設計就稍微複雜點。任何乙個專案都會根據需求來設計相應的許可權操作,許可權也是我們保證專案健壯性的一種手段。在此模組中我們分為使用者管理,許可權管理,角色管理三個子模組。因為首先我們考慮到應該為每個人員建立乙個唯一的登陸賬號,我們稱為使用者,我們將許可權不直接授予具體人員,而是授予相應的使用者,這樣就可以降低耦合度。但是如果具有相同許可權的人都需要重複授予一樣的許可權,客戶操作起來會很麻煩,而人員在公司一定有其相應的職位,所以我們決定將許可權打包授予某個角色,讓角色與具體職位關聯,再將角色授予使用者,這樣就能很好的解決問題了。不過一般來說,公司有些人員可能身兼數職,也就是說乙個使用者可能會被分配都多個角色,預設情況下我們是取所有許可權的合集,但也會出現角色之間許可權的衝突問題,因此我們在表中設計了乙個優先順序的字段,讓乙個使用者擁有的多個角色有不同的優先順序,如果許可權產生了衝突,則以優先順序高的角色為準。有點類似我們web程式中載入servlet時候配置的load-on-startup的屬性。
當我們將專案交與客戶試執行後,客戶反映,無論什麼情況都需要通過建立角色來授權感覺很麻煩,而公司的職位變動也會引起角色的增多,造成角色的氾濫。所以通過與客戶的溝通,我們修改了當初的設計,也就是除了可以通過角色來授權,也可以給使用者直接授權。這種方式與oracle資料庫的授權方式是一樣的,客戶也感覺很滿意。當然,既然可以直接授權給使用者,也可以授權給使用者所屬的角色,同樣會發生類似於開始說的兩者之間許可權的衝突問題,我們解決的辦法同樣是多設計了乙個字段,該欄位表示是否使用使用者自身的許可權還是使用其角色的許可權。
我們這個專案的許可權分為**,首先在使用者登入的時候就開始驗證是否有資格進入,(這是第一級)在通過該驗證後,我們會查詢出該使用者擁有的所有具有可讀功能的模組並展示,對於該使用者不可讀的模組是不會展示出來的,這樣能避免使用者的誤操作(這是第二級)。但有些模組該使用者雖然具有可讀許可權,但是沒有更新與刪除等許可權,我們此系統也可以及時遮蔽該誤操作(這是第**)。
2、專案開發周期
本專案總開發周期為1年,具體分為以下幾個階段
1、需求分析階段,由系統分析員對客戶進行需求調研,產生需求分析說明書,經客戶簽字確認。
2、概要設計,由系統分析員根據需求分析書編寫概要設計文件,經客戶簽字確認。
3、詳細設計,由系統分析員和架構師根據概要設計文件編寫詳細設計文件,經客戶簽字確認。
4、使用者手冊,根據以上三個文件編寫使用者使用手冊
5、資料庫設計,由系統分析員做資料庫架構設計,生成資料字典
6、系統架構設計,由系統架構師做整個系統的架構設計,產生架構說明文件
7、分模組編碼,主要由程式設計師進行分模組編碼,並由測試人員對模組進行交叉測試
8、系統整合(也叫產品整合)
9、整合測試(對整個系統的產品結構功能進行整體測試)
10、上線試執行,將整合後的產品交付給客戶進行試執行,對試執行期出現的錯誤進行修改
11、產品交付,試執行完後,如果產品沒有什麼問題之後,對客戶交付產品
12、後期公升級與維護(根據合同規定)
3、系統架構
本系統是基於j2ee平台,採購b/s模式進行開發,資料庫採購oracle,系統框架採用當今主流的ssh整合。分層架構進行開發,主要分為資料層、業務層、介面層。
面試時演算法題的解答思路
面試中純粹考演算法的問題一般是讓很多程式設計師朋友痛恨的,這裡分享下我對於解答演算法題的一些思路和技巧。一般關於演算法的文章,都是從經典演算法講起,一種一種演算法介紹,見得演算法多了,自然就有了感悟,但如此學習花費的時間和精力卻是過於巨大,也不適合在部落格裡面交流。這一篇文,卻是專門講快捷思路的,很...
面試時演算法題的解答思路
面試中純粹考演算法的問題一般是讓很多程式設計師朋友痛恨的,這裡分享下我對於解答演算法題的一些思路和技巧。一般關於演算法的文章,都是從經典演算法講起,一種一種演算法介紹,見得演算法多了,自然就有了感悟,但如此學習花費的時間和精力卻是過於巨大,也不適合在部落格裡面交流。這一篇文,卻是專門講快捷思路的,很...
面試時如何優雅地自我介紹
1.題記 有讀者提問 如何在面試當中做乙個最好的自我介紹 結合了一下自己面試以及面試別人 模擬面試 的一些經驗,簡單總結了幾點,供大家參考。2.為什麼要自我介紹 在面試官要求自我介紹後,有些同學會覺得資訊都在簡歷上,於是就簡單粗暴地說 面試官好,我叫阿客,我的信心簡歷上都有,我就不贅述了.了.了.咳...