團隊名稱: 雲打印
做業要求: 團隊做業第一次—團隊展現
做業目標:團隊配合,開發項目,加強動手實踐能力javascript
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鴻鍵 | https://www.cnblogs.com/jichiwoyaochi/ |
團隊名稱: 雲打印
團隊項目描述:打印資料就上雲打印。
php
隊員姓名 | 隊員介紹 |
---|---|
陳宇 | 性格:開朗樂觀,擅長的技術:擅長javaee後端開發,編程興趣:對編程有較大的興趣,但願擔任開發,PM等,宣言:不作代碼的搬運工 |
陳迎仁 | 性格:內向;擅長的技術:會一點微信小程序,有點菜;編程興趣:通常;但願的軟工角色:開發;少熬夜,堅定不掉髮。 |
蔡森林 | 性格:隨和 技術:後端python開發 興趣:跑步 角色:開發 一句話:人生苦短,好好學習 |
陳詩嫺 | 個人性格比較內向,在努力變得開朗,擅長前端web的設計,對編程的興趣其實不大,但願擔任測試的角色。一句話宣言:學得越多就越能成功 |
蔡鴻鍵 | 性格:內向 技術:測試 前端html 興趣:喜歡解bug曾被邀請參加ioccc比賽 角色:開發和測試 一句話:不作碼農 |
團隊的首次合照
css
團隊的特點描述:
擁有妹子的團隊,男生敲代碼積極性很高,團隊成員大部分有獲獎經歷,代碼實踐能力較強,有較強的責任心。html
團隊名稱: 雲打印
做業要求: 團隊做業第二次—項目選題報告
做業目標:團隊配合,開發項目,加強動手實踐能力
選題報告下載
評審表下載
演示PPT下載前端
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鴻鍵 | https://www.cnblogs.com/jichiwoyaochi/ |
雲打印是一款以微信小程序爲基礎的在線打印服務,經過和實體打印店合做,用戶能夠經過微信小程序上傳word,ppt,pdf等文檔,後臺能夠經過代碼計算頁數而後返回給前端計算出價格,經過微信下單,付款。商家經過網頁界面接單和下載文檔,並進行打印和配送。java
現代生活是快節奏的生活方式,低效率的服務已經逐漸被淘汰,便利快捷的服務方式逐漸被人們所認同,而在線打印就是解決了傳統的打印方式用人工打印算錢的低效率方式,利用在線支付下單,線下實體打印店打印,配送,用戶只需利用微信小程序操做,無需到實體打印店排隊,提升了打印店的打印效率,合理利用打印資源,提升盈業額。python
一、文檔打印:用以打印用戶須要打印的文檔文件
二、圖片打印:用以打印用戶須要打印的圖片
三、歷史訂單:用以查詢用戶歷史打印文檔或圖片等消費記錄
四、掃一掃:待開發mysql
一、註冊登陸:微信受權登陸
二、用戶信息管理:用戶管理本身的帳戶和我的信息linux
進入雲打印的首頁,有4個功能按鈕,分別爲文檔打印,圖片打印,歷史訂單以及掃一掃。選擇文檔打印或圖片打印功能,進入訂單填寫頁面,填寫我的信息,上傳須要打印的文檔或圖片以後,設置打印屬性,可選單雙面和黑白或者彩色打印,以後提交訂單,覈對訂單信息,而後進入支付頁面,支付成功後就提交訂單到服務器,服務器會將訂單實時反饋到商檢的web端,商家能夠在訂單列表中選擇訂單,而後打印訂單中的文檔,而且根據須要安排配送人員進行資料的配送。git
一、增長圖像文字識別功能,讓用戶隨時拍照想要的文字內容,隨時生成對應的文檔,隨時打印相應的文檔,達到即拍即印的效果。
二、增長路徑規劃功能,用戶可經過在線輸入當前所在地址,系統自動匹配距離最近的打印店供用戶選擇,提升用戶獲取資料的時效。
三、增長年度帳單功能,讓用戶知道本年度所打印文檔或圖片的相關消費記錄。
四、增長資源共享功能,讓用戶不用經過其餘途徑,直接經過本程序達到資源共享的效果。
本項目將傳統的線下打印流程所有移植到線上,經過小程序一步完成,省去了本身去打印店打印的過程,並且線上上傳要打印的文件,可選單面(雙面)、黑白(彩色)打印,高度還原了打印店應有的全部服務,免去了在電腦拷貝的過程,並且不用排隊,既方便了本身,商家也更加省事。還有效地避免了一些沒必要要的麻煩,例如咱們常常在打印店打印資料時,可能會遇到下列問題:U盤會感染一些病毒,忘記帶U盤,資料缺損。。。
在技術實現上,本項目的客戶端採用了時下最流行的微信小程序,這無疑極大地方便了廣大師生的打印流程,免去了安裝app的麻煩,隨時隨地就能夠下單。商家端,本項目採用了html+css+javascript語言,展示的形式爲web,商家只需打開瀏覽器就能接單,訂單列表一目瞭然,操做方便。
D(Delivery,推廣)
隊員學號 | 隊員姓名 | 這次做業任務 | 貢獻比例 |
---|---|---|---|
221600412 | 陳宇 | 安排任務,文檔撰寫,博客撰寫,PPT製做,整理報告,演講答辯,回答問題,提問 | 27% |
221600411 | 陳迎仁 | 文檔撰寫,問卷調查,PPT製做 | 24% |
221600401 | 陳詩嫺 | 評審表撰寫,文檔撰寫 | 19% |
221600409 | 蔡森林 | 文檔撰寫 | 15% |
221600408 | 蔡鴻鍵 | 文檔撰寫 | 15% |
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鴻鍵 | https://www.cnblogs.com/jichiwoyaochi/ |
雲打印是一款以微信小程序爲基礎的在線打印服務,經過和實體打印店合做,用戶能夠經過微信小程序上傳word,ppt,pdf等文檔,後臺能夠經過代碼計算頁數而後返回給前端計算出價格,經過微信下單,付款。商家經過網頁界面接單和下載文檔,並進行打印和配送。
現代生活是快節奏的生活方式,低效率的服務已經逐漸被淘汰,便利快捷的服務方式逐漸被人們所認同,而在線打印就是解決了傳統的打印方式用人工打印算錢的低效率方式,利用在線支付下單,線下實體打印店打印,配送,用戶只需利用微信小程序操做,無需到實體打印店排隊,提升了打印店的打印效率,合理利用打印資源,提升盈業額。
爲了更好的瞭解用戶需求,咱們採用了發放問卷的方式。問卷主要涵蓋三個方面:我的狀況調查、打印資料習慣調查和平臺滿意度調查以及功能需求調查。其中我的狀況題1題,打印資料習慣調查4題,平臺滿意度調查1題,功能需求調查2題,意見反饋1題。
本着自願的原則,咱們共邀請了142名被試者。爲了使數據層次更加豐富,咱們向不一樣年級的人發放了問卷,覆蓋大一到大四學生。
2019年3月18日開展調查,並於3月20日完成數據的統計分析工做。
受訪的142名參與者中常常去打印店打印資料的佔42.96%,較多人仍是有去打印店打印資料的需求。在這142名參與者,較多人選擇打印試卷、練習,比例達到86.62%,論文報告以及課件等也分別佔到了60.56%、53.52%。這些打印者對於他們資料的私密性,總的來看仍是可被分享的佔絕大多數。對於資料私密性要求較高的僅有25.35%。緊接着對於打印店碰到的問題,也是咱們這個平臺想解決的用戶痛點,大部分被調查的人都遇到了打印店人多擁擠的狀況,比例佔到90.85%;還有其餘好比錯印、多印的狀況也佔到52.82%;因此去打印店打印碰到的問題仍是較多的。
是否常常去打印店打印資料?
去打印店主要打印什麼類型的材料?
資料的保密性如何
在打印店遇到的問題?
對於開發一個平臺來解決打印者在打印店碰到的一些問題的這個想法仍是比較受到你們的歡迎以及支持;有55.63%的被調查者很是但願有這樣一個平臺來解決問題,也僅僅只有4.23%的人較爲不須要這個平臺提供幫助。
針對平臺的載體咱們進行了調查,81.69%的人更但願經過簡單的微信小程序來使用這個平臺,更加便捷和方便。針對功能上除了提供在線打印和上傳資料,他們還對配送提出了一些但願的要求,好比配送費以及時效性等。固然也提到了文件的保密問題。
D(Delivery,推廣)
功能部分:
一、文檔打印:用以打印用戶須要打印的文檔文件
二、圖片打印:用以打印用戶須要打印的圖片
三、歷史訂單:用以查詢用戶歷史打印文檔或圖片等消費記錄
四、掃一掃:待開發
一、註冊登陸:微信受權登陸
二、用戶信息管理:用戶管理本身的帳戶和我的信息
3.2 微信小程序的製做
使用微信web開發者工具進行開發小程序
3.3微信小程序所能提供的服務
進入雲打印的首頁,有4個功能按鈕,分別爲文檔打印,圖片打印,歷史訂單以及掃一掃。選擇文檔打印或圖片打印功能,進入訂單填寫頁面,填寫我的信息,上傳須要打印的文檔或圖片以後,設置打印屬性,可選單雙面和黑白或者彩色打印,以後提交訂單,覈對訂單信息,而後進入支付頁面,支付成功後就提交訂單到服務器,服務器會將訂單實時反饋到商檢的web端,商家能夠在訂單列表中選擇訂單,而後打印訂單中的文檔,而且根據須要安排配送人員進行資料的配送。
一、增長圖像文字識別功能,讓用戶隨時拍照想要的文字內容,隨時生成對應的文檔,隨時打印相應的文檔,達到即拍即印的效果。
二、增長路徑規劃功能,用戶可經過在線輸入當前所在地址,系統自動匹配距離最近的打印店供用戶選擇,提升用戶獲取資料的時效。
三、增長年度帳單功能,讓用戶知道本年度所打印文檔或圖片的相關消費記錄。
項目原型設計--微信小程序 (點擊左邊進入墨刀預覽)
項目原型設計--商家端 (點擊左邊進入墨刀預覽)
PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 0 | 0 |
• Estimate | • 估計這個任務須要多少時間 | 800 | 1000 |
Development | 開發 | 0 | 0 |
• Analysis | • 需求分析 (包括學習新技術) | 60 | 90 |
• Design Spec | • 生成設計文檔 | 50 | 60 |
• Design Review | • 設計複審 | 50 | 50 |
• Coding Standard | • 代碼規範 (爲目前的開發制定合適的規範) | 40 | 45 |
• Design | • 具體設計 | 500 | 600 |
• Coding | • 具體編碼 | 0 | 0 |
• Code Review | • 代碼複審 | 0 | 0 |
• Test | • 測試(自我測試,修改代碼,提交修改) | 30 | 35 |
Reporting | 報告 | 30 | 30 |
• Test Report | • 測試報告 | 30 | 30 |
• Size Measurement | • 計算工做量 | 30 | 35 |
• Postmortem & Process Improvement Plan | • 過後總結, 並提出過程改進計劃 | 30 | 30 |
合計 | 850 | 1005 |
首先咱們先介紹咱們的項目是一個以微信小程序爲基礎的在線打印服務,能在線下單並配送至宿舍,接着向它演示如何使用在線打印,其次在說明傳統的打印店模式,人多,U盤容易中毒,U盤容易丟失等問題,最後推薦它註冊並使用一下小程序。
咱們程序分爲小程序端和商家端 咱們小組分別對原型進行了討論並進行了設計。
首先咱們討論小程序的登陸註冊和上傳文件,接着進行了用戶界面的原型設計
其次咱們討論了商家網頁端的原型設計過程。
針對調查發現 25%的資料是隱私的 75%的資料是能夠公開的
能夠具體實現保密配送和非保密配送。
保密配送對於客戶的隱私保護是有一套規範和嚴格的流程的:
1. 首先用戶使用小程序前要贊成用戶隱私協議
二、保密文件由咱們專門的配送員派送,並會事先與您約好收貨地點,這樣就避免了貿然上門派件時遇到的尷尬狀況;
三、在外包裝上,咱們會使用統一的文件帶包裹打印的文件,不會留下任何標示及產品說明。
四、使用中繼號來聯繫配送和顧客。
安全: 將配送過程分紅三方責任人
1.商家
2.配送
3.顧客
經過app進行網上登記來肯定安全責任的劃分。
非隱私文件:
支持到店自取 和 打印店配送員配送至宿舍
首先完善基礎功能,其次針對用戶打印文件可能格式出錯,和隱私問題進行鍼對性解決。對於打印文件的格式的問題,預期解決方案提供一個在線編輯的word文檔,並在用戶提交訂單後後臺自動把word轉成pdf保持文件格式不變,或者就是用戶本身上傳pdf文件格式,這兩種文件都能保持文件不變,針對用戶隱私問題,咱們會在用戶上傳的文件的時候進行提醒,並獨立出一個用戶隱私文件打印模塊,由咱們指定的商家進行打印配送。
隊員學號 | 隊員姓名 | 這次做業任務 | 貢獻比例 |
---|---|---|---|
221600412 | 陳宇 | 安排任務,博客撰寫,原型設計,問題的回答,整理問題 | 20% |
221600411 | 陳迎仁 | 小程序原型設計,問題的回答 | 19% |
221600401 | 陳詩嫺 | 網頁原型設計,問題的回答 | 21% |
221600409 | 蔡森林 | 小程序原型設計,問題的回答 | 22% |
221600408 | 蔡鴻鍵 | 網頁原型設計,問題的回答 | 18% |
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鴻鍵 | https://www.cnblogs.com/jichiwoyaochi/ |
1.首先咱們組員先進行了對需求規格說明書的內容進行討論
2.接着對這個項目的類和用況進行了分析,並進行分工
3.增改原型設計,畫出類圖、用例圖、活動圖,提交新增頁面的功能設計
4.整合文檔,製做PPT
隊員學號 | 隊員姓名 | 這次做業任務 | 貢獻比例 |
---|---|---|---|
221600412 | 陳宇 | 安排任務,需求規格說明書第一部分,博客撰寫,修改評審表,整理文檔 | 22% |
221600411 | 陳迎仁 | 畫用況圖,ppt製做,答辯 | 22% |
221600401 | 陳詩嫺 | 需求規格說明書第五部分,用例文本 | 19% |
221600409 | 蔡森林 | 需求規格說明書第三部分,類圖 | 19% |
221600408 | 蔡鴻鍵 | 需求規格說明書第二部分 | 18% |
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鴻鍵 | https://www.cnblogs.com/jichiwoyaochi/ |
1.先針對上次答辯的問題進行了修改很整理
2.開始對系統設計和數據庫設計的分析
3.改進類圖
4.查找資料
5.組員分工
5.整理文檔
6.撰寫PPT
隊員學號 | 隊員姓名 | 這次做業任務 | 貢獻比例 |
---|---|---|---|
221600412 | 陳宇 | 安排任務,系統設計說明書,數據庫設計說明書,博客,PPT | 25% |
221600411 | 陳迎仁 | 數據庫設計說明書,數據庫設計說明書 | 23% |
221600401 | 陳詩嫺 | 數據庫設計說明書本 | 17% |
221600409 | 蔡森林 | 數據庫設計說明書數據庫設計說明書 | 20% |
221600408 | 蔡鴻鍵 | 數據庫設計說明書 | 15% |
團隊名稱: 雲打印
做業要求: 團隊做業第六次—團隊Github實戰訓練
做業目標:搭建一個相對公平公正的抽獎系統,根據QQ聊天記錄,完成從統計參與抽獎人員頒佈抽獎結果的基本流程。
Github地址:Github地址
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鴻鍵 | https://www.cnblogs.com/jichiwoyaochi/ |
隊員學號 | 隊員姓名 | 這次做業任務 | 貢獻比例 |
---|---|---|---|
221600412 | 陳宇 | 項目管理、後端代碼的編寫,服務器的部署 | 23% |
221600411 | 陳迎仁 | 後端邏輯模塊的編寫,聊天記錄過濾的處理,博客文檔的編寫 | 21% |
221600401 | 陳詩嫺 | 編寫博客文檔結構,前端美工設計 | 15% |
221600409 | 蔡森林 | 附加功能的實現,數據處理與挖掘、編寫附加功能部分的博客文檔 | 21% |
221600408 | 蔡鴻鍵 | 前端代碼的編寫與設計 | 20% |
本項目爲web項目,搭載在阿里雲服務器上,web訪問連接爲: 項目運行地址
前端:
開發工具爲PhpStorm,開發語言爲Ajax、js、css、HTML,框架爲boostrap;運行環境爲各種瀏覽器(谷歌瀏覽器、火狐瀏覽器、IE6以上的IE瀏覽器等)
後端
開發工具爲IntelliJ IDEA Ultimate,開發語言爲java,框架爲boostrap;運行環境爲java環境
***
@RequestMapping("/draw") public ResponseData draw(String email,String name, String document, Integer winnerNum, String startTime, String endTime, String resultTime, String keyWord, Integer filterType, String award, HttpServletRequest request) throws ClientException, IOException, MessagingException { ResponseData responseData = new ResponseData(); LotteryDrawRule lotteryDrawRule=new LotteryDrawRule(LotteryDrawFilter.getFilterTypeString(filterType),keyWord,startTime, endTime,resultTime, winnerNum); //LotteryDrawFilter lotteryDrawFilter=new LotteryDrawFilter(lotteryDrawRule,"/home/QQrecord-2022.txt"); LotteryDrawFilter lotteryDrawFilter=new LotteryDrawFilter(lotteryDrawRule,"G:\\MyJavaWeb\\Luckydraw\\src\\main\\resources\\QQrecord-2022.txt"); Map<String, Integer> users = lotteryDrawFilter.doFilter(); List<User> awardUsers = LcgRandom.getResult(users,winnerNum); String str[] = award.split("\\,"); int j = 0; for(String s : str){ String awardName = s.split(":")[0]; Integer awardNum = Integer.valueOf(s.split(":")[1]); for (int i = 0; i<awardNum;i++){ if(j<awardUsers.size()){ awardUsers.get(j).setAward(awardName); j++; } } } StringBuilder awardString = new StringBuilder(); for (User u: awardUsers) { awardString.append(u.toString()+"\r\n"); } awardString.append(" "); DrawLuckResult dr = new DrawLuckResult(name,document,keyWord,startTime,endTime,resultTime,winnerNum,award, LotteryDrawFilter.getFilterTypeString(filterType),awardString.toString()); drawLuckResultDao.insert(dr); responseData.setData(dr); Thread t = new Thread(new Runnable() { @Override public void run() { try { StringBuilder sb = new StringBuilder(); for (User u: awardUsers) { sb.append(u.toString()+"</br>"); } sb.append(" "); EmailUtil.send465("中獎結果","<h1>中獎結果通知</h1></br>" + sb.toString(),email); } catch (MessagingException e) { e.printStackTrace(); } for (User u: awardUsers) { try { String name = u.getName(); String email = null; if(name.contains("(")){ email = name.substring(name.indexOf("(") +1 ,name.lastIndexOf(")")); if (!email.contains("@qq.com")){ email += "@qq.com"; } }else if(name.contains("<")){ email = name.substring(name.indexOf("<") +1 ,name.lastIndexOf(">")); } // System.out.println(email); // 爲了避免打擾其餘人只通知本身 if (email.contains("947205926")){ EmailUtil.send465("中獎通知","恭喜" + u.getName() + "得到" + u.getAward(),"947205926@qq.com"); } } catch (Exception e) { e.printStackTrace(); } } } }); t.start(); return responseData; }
public static List<User> getResult(Map<String, Integer> users, Integer awardNum) { Iterator it = users.entrySet().iterator(); List<User> listUser = new ArrayList<>(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); String name = (String) entry.getKey(); Integer weight = (Integer) entry.getValue(); // System.out.println(name + " " + weight); listUser.add(new User(name, weight)); } Random random = new Random(); // 對全部參與的用戶進行隨機排序 Collections.sort(listUser, new Comparator<User>() { @Override public int compare(User o1, User o2) { return random.nextInt(2) - 1; } }); int i = 0; int size = listUser.size(); LcgRandom lcg = new LcgRandom(); List<User> awardList = new ArrayList<>(); if (size > 0) { while (i < awardNum) { int ran = lcg.nextInt(size); // 對水羣的用戶下降獲獎權重 if (listUser.get(ran).getWeight() > 0) { listUser.get(ran).setWeight(listUser.get(ran).getWeight() - 1); } else { awardList.add(listUser.get(ran)); listUser.remove(ran); size = listUser.size(); i++; } } } return awardList; }
LCG(linear congruential generator)線性同餘算法,是一個古老的產生隨機數的算法。由如下參數組成:
| 參數 | m|a | c|X|
|:---- |:---|:----- |----- |----- |
|性質 |模數 |乘數 |加數 |隨機數 |
|做用 |取模 |移位 |偏移 |做爲結果 |
LCG算法是以下的一個遞推公式,每下一個隨機數是當前隨機數向左移動 log2 a 位,加上一個 c,最後對 m 取餘,使隨機數限制在 0 ~ m-1 內
2、僞隨機數算法
僞隨機數產生的方法有個逼格挺高的名字---僞隨機數發生器。僞隨機數產生器中最最最基礎的思想是均勻分佈(固然這不是惟一的思路)。通常來講,只敢說"通常來講",由於我也不敢百分百確定,現在主流的編程語言中使用的隨機數函數基本採用這種均勻分佈思想,而其中最經常使用的算法就是"線性同餘法"。
1. 什麼是線性同餘法?
線性同餘法基於以下線性同餘方程組
用於產生均勻型僞隨機數的線性同餘產生器(與上面的方程符號沒有對應關係)
其中,a爲"乘數",b爲"增量",m爲"模數",x0爲"種子數"。
若是產生的是區間實在(0,1)之間的,則只須要每一個數都除以m便可,即取
2. 線性同餘法產生均勻型僞隨機數須要注意什麼?
2.1)種子數是在計算時隨機給出的。好比C語言中用srand(time(NULL))函數進行隨機數種子初始化。
2.2)決定僞隨機數質量的是其他的三個參數,即a,b,m決定生成僞隨機數的質量(質量指的是僞隨機數序列的週期性)
2.3)通常b不爲0。若是b爲零,線性同餘法變成了乘同餘法,也是最經常使用的均勻型僞隨機數發生器。
3. 高性能線性同餘法參數取值要求?
3.1)通常選取方法:乘數a知足a=4p+1;增量b知足b=2q+1。其中p,q爲正整數。 PS:不要問我爲何,我只是搬運工,沒有深刻研究過這個問題。
3.2)m值得話最好是選擇大的,由於m值直接影響僞隨機數序列的週期長短。記得Java中是取得32位2進制數吧。
3.3)a和b的值越大,產生的僞隨機數越均勻
3.4)a和m若是互質,產生隨機數效果比不互質好。
反正這圖我沒有發現明顯的規律。所以這種僞隨機數在必定條件下是能夠知足隨機性性質的。
基本過濾:
首先經過正則表達式進行聊天記錄的切割,分爲用戶信息和用戶聊天內容;經過用戶信息獲取用戶的ID(暱稱+帳號);根據用戶ID的開頭進行判斷是不是系統消息、助教、教師,對這三類的對象進行過濾,不參與後續的抽獎活動,實現基本過濾。
if (Pattern.matches("系統消息\\([0-9]+\\)", userID) || Pattern.matches("教師_.*\\(.*\\)", userID)|| Pattern.matches("助教_.*\\(.*\\)", userID)) { userID = null; }
不過濾
針對抽獎名單的過濾,只實現基本過濾,並不對名單進一步的進行篩選,即只去除系統消息、教師、助教這三類對象。
普經過濾
針對抽獎名單的過濾,首先實現基本過濾,去除系統消息、教師、助教這三類用戶;其次針對只發表抽獎關鍵字的對象,也進行過濾。主要經過去除聊天記錄中的關鍵字後,若是爲空,則這條消息對應的說話人則不加入待抽獎名單。
深度過濾
針對抽獎名單的過濾,首先實現基本過濾,去除系統消息、教師、助教這三類用戶;其次針對只發表抽獎關鍵字的對象,也進行過濾;而且對於聊天內容只有圖片和抽獎關鍵字的對象也進行必定抽獎機率的下降,但不進行過濾。
BufferedReader bufferedReader = openFile(); //讀取文件 String talkContent = null; String temp = null; while ((temp = bufferedReader.readLine()) != null) { if (textType.equals("USER_TALK_CONTENT")) { if (!(isUserInfo(temp))) { talkContent += temp; } else{ //判斷髮言是否有抽獎關鍵字 if (hasKeyWord(lotteryDrawRule.getKeyWord(), talkContent) && userID != null) { talkContentFilter(talkContent); } talkContent = null; userID = null; textType = "USER_INFO"; } } if (textType.equals("USER_INFO")) { userID = getUser(temp); if (userID != null) { //去除系統消息、教師、助教 if (Pattern.matches("系統消息\\([0-9]+\\)", userID) || Pattern.matches("教師_.*\\(.*\\)", userID) || Pattern.matches("助教_.*\\(.*\\)", userID)) { userID = null; } } textType = "USER_TALK_CONTENT"; } } //測試 for (String key : users.keySet()) { System.out.println(key + ":" + users.get(key)); } read.close(); return users;
* 過濾函數 filterType=NO_FILTER:表示不過濾;全部人蔘與抽獎 filterType=NORMAL_FILTER:表示普經過濾;過濾只有抽獎關鍵字的用戶 filterType=DEEP_FILTER:表示深度過濾;過濾只有抽獎關鍵字的用戶或下降只有圖片+抽獎關鍵字的用戶的獲獎機率 */ public void talkContentFilter(String talkContent) { boolean flag = true; //判斷其需不須要被過濾 int deepNum = 0; //知足深度過濾的次數 //若是爲NO_FILTER;不執行任何過濾 if ((lotteryDrawRule.getFilterType().equals("NO_FILTER"))) { } else if((lotteryDrawRule.getFilterType().equals("NORMAL_FILTER"))){ //去除抽獎關鍵關鍵字 talkContent = talkContent.substring(talkContent.lastIndexOf('#')+1); //符合NORMAL_FILTER if (talkContent == null || talkContent.equals("")) { flag = false; } } else{ //去除抽獎關鍵關鍵字 talkContent = talkContent.substring(talkContent.lastIndexOf('#')+1); //符合NORMAL_FILTER if (talkContent == null || talkContent.equals("")) { flag = false; } //符合DEEP_FILTER if (talkContent.equals("[圖片]") && lotteryDrawRule.getFilterType().equals("DEEP_FILTER")) { deepNum = 1; } } if (!users.containsKey(userID) && flag) { // 若是該用戶id未出現過且不須要過濾 users.put(userID, deepNum); // 存入map } else if (deepNum > 0) { //若是該用戶知足深度過濾的要求,就保存他的言論次數,用於計算機率時下降它的獲獎權值 deepNum = (int) users.get(userID) + 1; users.put(userID, deepNum); } }
用戶各時間段發言統計
總體分析用戶各時間段的發言狀況,統計每一個用戶各個時間段的發言次數,而後以柱形圖形式展示,經過柱狀圖咱們很容易得出用戶在哪些時間段發言頻率較高。
def get_time(self): times = re.findall(r'\d{2}:\d{2}:\d{2}', self.data)#提取用戶發言時間哪小時 Xi = [time.split(":")[0] for time in times] sns.countplot(Xi, order=[str(i) for i in range(0, 24)]) plt.plot() plt.rcParams['font.sans-serif'] = ['SimHei'] plt.title("各時間段發言統計") plt.xlabel("時間00:00—24:00") plt.ylabel("發言次數/次") plt.savefig(r"img\hour.png", format='png') plt.close()
活躍用戶的發言狀況
局部分析前五名活躍用戶的發言狀況,統計每一個用戶的發言次數,而後進行排序提取前五個活躍用戶的發言狀況,而後以折線圖的形式展示,經過折線圖咱們很容易發現這五個用戶在哪些時間段發言頻率較高。
def get_active(self): str_list = re.findall(r'\d{2}:\d{2}:\d{2} .*?\n', self.data) chat = {} i = 0 for string in str_list:#提取用戶暱稱及其發言的時間段分佈 size = len(string) - 1 dict2 = {} if string[9:size] != "系統消息(10000)": if not chat.__contains__(string[9:size]): i = i + 1 dict2[string[0:2]] = 1 chat[string[9:size]] = dict2 else: if not chat[string[9:size]].__contains__(string[0:2]): chat[string[9:size]][string[0:2]] = 1 else: chat[string[9:size]][string[0:2]] = chat[string[9:size]][string[0:2]] + 1 dict3 = {} for key, dic in chat.items():#降序排序統計用戶活躍狀況 count = 0 for val in dic.values(): count += val dict3[key] = count result = dict(sorted(dict3.items(), key=operator.itemgetter(1), reverse=True)) colors = ['red', 'green', 'blue', 'orange', 'black'] Xi = [str(k) for k in range(0, 24)] i = 0 for key in result.keys():#遍歷前五名活躍用戶的發言狀況 if i >= 5: break Yi = [] for j in range(0, 24): Yi.append(0) for key2 in chat[key].keys(): Yi[int(key2)] = chat[key][key2] plt.plot(Xi, Yi, color=colors[i], label=key) i = i + 1 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.xticks(range(len(Xi))) plt.legend() plt.title("活躍用戶統計") plt.xlabel("時間00:00—24:00") plt.ylabel("發言次數/次") plt.savefig(r"img\active.png", format='png') plt.close()
分析聊天記錄有效關鍵詞
對用戶聊天記錄進行有效關鍵詞提取與分析,而後對這些關鍵詞進行整合分析,繪出詞雲圖,經過詞雲圖咱們很容易得出,聊天記錄中哪些關鍵詞使用頻率較高。
def get_wordcloud(self): pattern = re.compile(r'\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} .*?\(\d+\)\n(.*?)\n', re.DOTALL) contents = re.findall(pattern, self.data) word_list = [] for sentence in contents: sentence = sentence.replace("[表情]", "").replace("[圖片]", "").replace("@全體成員", "") if sentence != "" and not sentence.__contains__("撤回了一條消息") and not sentence.__contains__("加入本羣。") and \ not sentence.__contains__('長按複製此消息,打開最新版支付寶就能領取!') and not sentence.__contains__('請使用新版手機QQ查收紅.'): word_list.append(" ".join(jieba.cut(sentence.strip()))) new_text = " ".join(word_list) wordcloud = WordCloud(background_color="white", width=1200, height=1000, min_font_size=50, font_path="simhei.ttf", random_state=50, ) my_wordcloud = wordcloud.generate(new_text) plt.imshow(my_wordcloud) plt.axis("off") wordcloud.to_file(r'img\wordcloud.png')
實驗結果以下
PlusA.txt聊天記錄數據分析
PlusB.txt聊天記錄數據分析
一、思路分析
經過接受服務器傳來的獲獎名單json數據,而後對json字符串進行相應的處理,提取出獲獎者的暱稱,QQ號或郵箱和獎品名稱,而後對相應的模塊進行繪畫,生成海報圖。
header = '[雲打印抽獎] QQ互動' title = '2019年4月QQ互動獲獎名單' chapter = ['暱稱', 'QQ號', '獎品'] string = '恭喜以上獲獎的同窗,咱們將在近期發出本次活動的獎勵,請有獲獎的同窗注意關注本平臺抽獎動態,感謝您的參與,謝謝!' n = 19 foot = [string[i:i + n] for i in range(0, len(string), n)] # 設置字體和顏色 font_type = r'font\my_font.ttc' header_font = ImageFont.truetype(font_type, 40) title_font = ImageFont.truetype(font_type, 23) chapter_font = ImageFont.truetype(font_type, 25) email_font = ImageFont.truetype(font_type, 18) list_font = ImageFont.truetype(font_type, 24) foot_font = ImageFont.truetype(font_type, 20) header_color = '#FFFFFF' title_color = '#EE0000' chapter_color = '#CD3333' list_color = '#EE2C2C' foot_color = '#EE3B3B' # 設置圖片 img = 'img/mode.png' new_img = 'img/scholarship.png' image = Image.open(img) draw = ImageDraw.Draw(image) width, height = image.size # header header_x = 38 header_y = 880 draw.text((header_x, height - header_y), u'%s' % header, header_color, header_font) # title title_x = header_x + 30 title_y = header_y - 140 draw.text((title_x, height - title_y), u'%s' % title, title_color, title_font) # chapter chapter_x = title_x - 20 chapter_y = title_y - 40 draw.text((chapter_x, height - chapter_y), u'%s' % chapter[0], chapter_color, chapter_font) draw.text((chapter_x + 140, height - chapter_y), u'%s' % chapter[1], chapter_color, chapter_font) draw.text((chapter_x + 270, height - chapter_y), u'%s' % chapter[2], chapter_color, chapter_font) # 獲取student_list data = sys.argv[1] contents = data.split('\\r\\n') student_list = [] size = len(contents) - 1 for i in range(0, size): item = [] if contents[i].__contains__('):'): nick_name = re.findall(r'(.*?)\(', contents[i]) elif contents[i].__contains__('>:'): nick_name = re.findall(r'(.*?)<', contents[i]) if contents[i].__contains__('):'): qq = re.findall(r'\((.*?)\)', contents[i]) elif contents[i].__contains__('>:'): qq = re.findall(r'<(.*?)>', contents[i]) reward = re.findall(r':(.*?),', contents[i]) item.append(nick_name[0]) item.append(qq[0]) item.append(reward[0]) student_list.append(item) list_x = chapter_x - 20 list_y = chapter_y - 40 for student in student_list: for i in range(0, len(student)): if student[i].__contains__('@'): draw.text((list_x + i * 140, height - list_y), u'%s' % student[i], list_color, email_font) else: draw.text((list_x + i * 140, height - list_y), u'%s' % student[i], list_color, list_font) list_y = list_y - 40 #footer foot_x = chapter_x - 30 foot_y = list_y - 40 for i in range(0, len(foot)): foot_y = foot_y - 40 draw.text((foot_x, height - foot_y), u'%s' % foot[i], foot_color, foot_font) draw.text((chapter_x + 30, height - (foot_y - 40)), u'%s(雲打印)' % time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), foot_color, foot_font) image.save(new_img, 'png')
二、實驗結果以下
增長了對中獎學生的郵件提醒,經過處理聊天記錄中的用戶信息,獲取用戶的郵箱信息好比qq郵箱,實現對中獎用戶的郵件提醒,提升用戶的體驗。
public class EmailUtil { // 發件人 帳號和密碼 public static final String MY_EMAIL_ACCOUNT = "cy947205926@163.com"; public static final String MY_EMAIL_PASSWORD = "**********";// 密碼,是你本身的設置的受權碼 public static void send465(String subject,String content,String receiveEmail) throws AddressException, MessagingException { Properties p = new Properties(); p.put("mail.smtp.ssl.enable", true); p.setProperty("mail.smtp.host", MEAIL_163_SMTP_HOST); p.setProperty("mail.smtp.port", "465"); p.setProperty("mail.smtp.socketFactory.port", SMTP_163_PORT); p.setProperty("mail.smtp.auth", "true"); p.setProperty("mail.smtp.socketFactory.class", "SSL_FACTORY"); Session session = Session.getInstance(p, new Authenticator() { // 設置認證帳戶信息 @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(MY_EMAIL_ACCOUNT, MY_EMAIL_PASSWORD); } }); session.setDebug(true); MimeMessage message = new MimeMessage(session); // 發件人 message.setFrom(new InternetAddress(MY_EMAIL_ACCOUNT)); // 收件人和抄送人 message.setRecipients(Message.RecipientType.TO, receiveEmail); // 內容(這個內容還不能亂寫,有可能會被SMTP拒絕掉;多試幾回吧) message.setSubject(subject); message.setContent("<h1>"+ content +"</h1>", "text/html;charset=UTF-8"); message.setSentDate(new Date()); message.saveChanges(); Transport.send(message); } }
PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 20 | 20 |
Estimate | 估計這個任務須要多少時間 | 10 | 10 |
Development | 開發 | 200 | 320 |
Analysis | 需求分析 (包括學習新技術) | 60 | 120 |
Design Spec | 生成設計文檔 | 0 | 0 |
Design Review | 設計複審 | 0 | 0 |
Coding Standard | 代碼規範(爲目前的開發制定合適的規範) | 20 | 30 |
Design | 具體設計 | 0 | 0 |
Coding | 具體編碼 | 160 | 210 |
Code Review | 代碼複審 | 20 | 60 |
Test | 測試(自我測試,修改代碼,提交修改) | 30 | 120 |
Reporting | 報告 | 30 | 40 |
Test Repor | 測試報告 | 0 | 0 |
Size Measurement | 計算工做量 | 10 | 10 |
Postmortem & Process Improvement Plan | 過後總結, 並提出過程改進計劃 | 15 | 20 |
合計 | 575 | 960 |
PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 10 | 10 |
Estimate | 估計這個任務須要多少時間 | 10 | 10 |
Development | 開發 | 160 | 220 |
Analysis | 需求分析 (包括學習新技術) | 60 | 150 |
Design Spec | 生成設計文檔 | 0 | 0 |
Design Review | 設計複審 | 0 | 0 |
Coding Standard | 代碼規範(爲目前的開發制定合適的規範) | 5 | 5 |
Design | 具體設計 | 0 | 0 |
Coding | 具體編碼 | 120 | 160 |
Code Review | 代碼複審 | 30 | 80 |
Test | 測試(自我測試,修改代碼,提交修改) | 40 | 140 |
Reporting | 報告 | 40 | 120 |
Test Repor | 測試報告 | 0 | 0 |
Size Measurement | 計算工做量 | 10 | 10 |
Postmortem & Process Improvement Plan | 過後總結, 並提出過程改進計劃 | 15 | 20 |
合計 | 500 | 925 |
PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 5 | 10 |
Estimate | 估計這個任務須要多少時間 | 0 | 0 |
Development | 開發 | 60 | 60 |
Analysis | 需求分析 (包括學習新技術) | 20 | 40 |
Design Spec | 生成設計文檔 | 0 | 0 |
Design Review | 設計複審 | 0 | 0 |
Coding Standard | 代碼規範(爲目前的開發制定合適的規範) | 0 | 0 |
Design | 具體設計 | 60 | 60 |
Coding | 具體編碼 | 60 | 60 |
Code Review | 代碼複審 | 10 | 10 |
Test | 測試(自我測試,修改代碼,提交修改) | 10 | 15 |
Reporting | 報告 | 10 | 15 |
Test Repor | 測試報告 | 0 | 0 |
Size Measurement | 計算工做量 | 0 | 0 |
Postmortem & Process Improvement Plan | 過後總結, 並提出過程改進計劃 | 10 | 10 |
合計 | 245 | 280 |
PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 30 | 60 |
Estimate | 估計這個任務須要多少時間 | 150 | 300 |
Development | 開發 | 120 | 300 |
Analysis | 需求分析 (包括學習新技術) | 40 | 100 |
Design Spec | 生成設計文檔 | 20 | 40 |
Design Review | 設計複審 | 30 | 100 |
Coding Standard | 代碼規範(爲目前的開發制定合適的規範) | 10 | 20 |
Design | 具體設計 | 40 | 80 |
Coding | 具體編碼 | 120 | 300 |
Code Review | 代碼複審 | 30 | 150 |
Test | 測試(自我測試,修改代碼,提交修改) | 30 | 90 |
Reporting | 報告 | 20 | 20 |
Test Repor | 測試報告 | 20 | 10 |
Size Measurement | 計算工做量 | 15 | 30 |
Postmortem & Process Improvement Plan | 過後總結, 並提出過程改進計 | 775 | 1640 |
PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 30 | 30 |
Estimate | 估計這個任務須要多少時間 | 120 | 300 |
Development | 開發 | 120 | 300 |
Analysis | 需求分析 (包括學習新技術) | 40 | 80 |
Design Spec | 生成設計文檔 | 20 | 20 |
Design Review | 設計複審 | 20 | 120 |
Coding Standard | 代碼規範(爲目前的開發制定合適的規範) | 10 | 20 |
Design | 具體設計 | 30 | 60 |
Coding | 具體編碼 | 120 | 300 |
Code Review | 代碼複審 | 30 | 120 |
Test | 測試(自我測試,修改代碼,提交修改) | 30 | 60 |
Reporting | 報告 | 20 | 20 |
Test Repor | 測試報告 | 20 | 10 |
Size Measurement | 計算工做量 | 15 | 30 |
Postmortem & Process Improvement Plan | 過後總結, 並提出過程改進計劃 | 20 | 40 |
合計 | 645 | 1510 |
團隊名稱: 雲打印
做業要求: Alpha代碼規範、衝刺任務與計劃
做業目標:代碼規範、衝刺任務與計劃。
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鴻鍵 | https://www.cnblogs.com/jichiwoyaochi/ |
後端採用Springboot編寫 java代碼規範我一直是用阿里雲java開發手冊上的要求。(有些瀏覽器可能不支持pdf在線預覽,那就只能直接下載,我正常使用的都是Google瀏覽器)
阿里巴巴Java開發手冊記念版.pdf在線預覽
代碼規範參考阿里巴巴Java開發手冊記念版:
【強制】代碼中的命名均不能如下劃線或美圓符號開始,也不能如下劃線或美圓符號結束。
反例:_name / name / $name / name_ / name$ / name
【強制】代碼中的命名嚴禁使用拼音與英文混合的方式,更不容許直接使用中文的方式。
說明:正確的英文拼寫和語法可讓閱讀者易於理解,避免歧義。注意,即便純拼音命名方式也要避免採用。國際通用的名稱,可視同英文。
反例:DaZhePromotion [打折] / getPingfenByName() [評分] / int 某變量 = 3
【強制】類名使用 UpperCamelCase 風格,但如下情形例外:DO / BO / DTO / VO / AO / PO / UID 等。
正例:MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion
反例:macroPolo / UserDo / XMLService / TCPUDPDeal / TAPromotion
【強制】方法名、參數名、成員變量、局部變量都統一使用 lowerCamelCase 風格,必須聽從駝峯形式。
正例: localValue / getHttpMessage() / inputUserId
【強制】常量命名所有大寫,單詞間用下劃線隔開,力求語義表達完整清楚,不要嫌名字長。
正例:MAX_STOCK_COUNT
反例:MAX_COUNT
【強制】抽象類命名使用 Abstract 或 Base 開頭;異常類命名使用 Exception 結尾;測試類 命名以它要測試的類的名稱開始,以 Test 結尾。
【強制】包名統一使用小寫,點分隔符之間有且僅有一個天然語義的英語單詞。包名統一使用單數形式,可是類名若是有複數含義,類名能夠使用複數形式。
正例:應用工具類包名爲 com.alibaba.ai.core.util、類名爲 MessageUtils(此規則參考 spring 的框架結構)
【強制】杜絕徹底不規範的縮寫,避免望文不知義。
反例:AbstractClass「縮寫」命名成AbsClass;condition「縮寫」命名成 condi,此類隨 意縮寫嚴重下降了代碼的可閱讀性。
【推薦】爲了達到代碼自解釋的目標,任何自定義編程元素在命名時,使用盡可能完整的單詞組合來表達其意。
正例:在 JDK 中,表達原子更新的類名爲:AtomicReferenceFieldUpdater。
反例:變量 int a 的隨意命名方式。
【強制】大括號的使用約定。若是是大括號內爲空,則簡潔地寫成{}便可,不須要換行;若是是非空代碼塊則:
左大括號前不換行。
左大括號後換行。
右大括號前換行。
右大括號後還有 else 等代碼則不換行;表示終止的右大括號後必須換行。
【強制】if/for/while/switch/do 等保留字與括號之間都必須加空格。
【強制】採用 4 個空格縮進,禁止使用 tab 字符。
【強制】類、類屬性、類方法的註釋必須使用 Javadoc 規範,使用/**內容/格式,不得使用 // xxx 方式。
說明:在 IDE 編輯窗口中,Javadoc 方式會提示相關注釋,生成 Javadoc 能夠正確輸出相應註釋;在 IDE 中,工程調用方法時,不進入方法便可懸浮提示方法、參數、返回值的意義,提升閱讀效率。
【強制】全部的抽象方法(包括接口中的方法)必需要用 Javadoc 註釋、除了返回值、參數、異常說明外,還必須指出該方法作什麼事情,實現什麼功能。
說明:對子類的實現要求,或者調用注意事項,請一併說明。
【強制】全部的類都必須添加建立者和建立日期。
【強制】方法內部單行註釋,在被註釋語句上方另起一行,使用//註釋。方法內部多行註釋 使用/ */註釋,注意與代碼對齊。
【強制】全部的枚舉類型字段必需要有註釋,說明每一個數據項的用途。
【推薦】與其「半吊子」英文來註釋,不如用中文註釋把問題說清楚。專有名詞與關鍵字保持英文原文便可。
反例:「TCP鏈接超時」解釋成「傳輸控制協議鏈接超時」,理解反而費腦筋。
【推薦】代碼修改的同時,註釋也要進行相應的修改,尤爲是參數、返回值、異常、核心邏輯等的修改。
說明:代碼與註釋更新不一樣步,就像路網與導航軟件更新不一樣步同樣,若是導航軟件嚴重滯後,就失去了導航的意義。
一、變量名稱用先小寫後大寫命名,如:maxStudy
二、前後端數據變量一導致用後端命名方式
三、若在小範圍的命名變量中使用三個字母的命名,如:msg
四、避免使用不易理解的數字,用有意義的標識來替代。涉及物理狀態或者含有物理意義的常量,不該直接使用數字,必須用有意義的靜態變量來代替。
五、不要使用難懂的技巧性很高的語句,除非頗有必要時。說明:高技巧語句不等於高效率的程序,實際上程序的效率關鍵在於算法。
六、css、js語句代碼後加「 ; 」斷句
七、使用空行來分割邏輯
任務 | 內容 | 時間 |
---|---|---|
第一天 | 閱讀代碼規範,安裝相應的環境 | 4.24 |
次日 | 完成微信小程序登陸受權 | 4.25 |
第三天 | 完成微信小程序上傳文件 | 4.26 |
第四天 | 完成後臺計算頁數 | 4.27 |
第五天 | 學習微信支付接口 | 4.28 |
第六天 | 完成小程序微信支付接口 | 4.29 |
第七天 | 後端和小程序和微信支付對接 | 4.30 |
第八天 | 完成商家端接單和查看訂單 | 5.1 |
第九天 | 整合代碼,測試程序 | 5.2 |
第十天 | 發佈Alpha版本程序 | 5.3 |
第十一天 | 發佈一篇衝刺總結隨筆,描述項目預期計劃、現實進展、過程體會、組員分工及在Alpha階段的工做量比例、下階段展望。 | 5.4 |
團隊名稱: 雲打印
做業要求: 項目Alpha衝刺(團隊)
做業目標: 完成項目Alpha版本
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鴻鍵 | https://www.cnblogs.com/jichiwoyaochi/ |
閱讀代碼規範,你們一塊兒安裝好相應的環境,規劃好每一個人的任務
第一次安裝環境遇到了好多問題,你們對敏捷開發的規劃、設計方式也都不太熟悉
已經安裝好環境,能夠準備着手開發了,但願不要常常熬夜
團隊名稱: 雲打印
做業要求: 項目Alpha衝刺(團隊)
做業目標: 完成項目Alpha版本
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鴻鍵 | https://www.cnblogs.com/jichiwoyaochi/ |
完成微信小程序登陸受權、微信小程序登陸受權後臺的相應開發和部分GUI界面
調試,運行網頁代碼操做不流暢
剛開始還沒遇到很難的問題,查找資料把問題都解決了,但願後續任務也能這樣
團隊名稱: 雲打印
做業要求: 項目Alpha衝刺(團隊)
做業目標: 完成項目Alpha版本
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鴻鍵 | https://www.cnblogs.com/jichiwoyaochi/ |
完成微信小程序上傳文件、後端上傳文件的接口和相應的小程序界面
搭建測試環境的時候出現bug、上傳文件字符編碼有些問題、按原型設計編寫CSS比較困難
你們都專一於各自的部分,按時完成了當天的任務,在這種氛圍下敲代碼也頗有動力
團隊名稱: 雲打印
做業要求: 項目Alpha衝刺(團隊)
做業目標: 完成項目Alpha版本
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鴻鍵 | https://www.cnblogs.com/jichiwoyaochi/ |
完成後臺計算頁數,後端計算word頁數,調用第三方庫進行轉pdf和相應的小程序界面
在linux上轉pdf很困難,計算word頁數出現不許確
一邊自學一邊完成任務,你們都好棒啊!
團隊名稱: 雲打印
做業要求: 項目Alpha衝刺(團隊)
做業目標: 完成項目Alpha版本
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鴻鍵 | https://www.cnblogs.com/jichiwoyaochi/ |
完成後端微信支付接口、相應的小程序界面,並實現成功的調用
微信支付須要企業認證、須要押金,不瞭解微信支付接口
認真的組長開始協調任務進度,看進度根據時間穩步增加,頗有繼續作下去的動力
團隊名稱: 雲打印
做業要求: 項目Alpha衝刺(團隊)
做業目標: 完成項目Alpha版本
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鴻鍵 | https://www.cnblogs.com/jichiwoyaochi/ |
完成小程序微信支付接口、後端微信支付回調接口和加密算法的實現
微信支付驗證流程比較麻煩,請求支付的接口加密算法不熟悉,回調接口須要解密
你們各部分的進度都達到預期,感受很快就能夠對接了
團隊名稱: 雲打印
做業要求: 項目Alpha衝刺(團隊)
做業目標: 完成項目Alpha版本
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鴻鍵 | https://www.cnblogs.com/jichiwoyaochi/ |
完成後端和小程序和微信支付對接、填寫訂單信息頁面以及交互
將各部分對接遇到了不少問題
熬夜一時爽,一直熬夜一直爽。。。
團隊名稱: 雲打印
做業要求: 項目Alpha衝刺(團隊)
做業目標: 完成項目Alpha版本
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ |
| 221600408 |蔡鴻鍵 |https://www.cnblogs.com/jichiwoyaochi/||
完成商家端接單和查看訂單、後端商家端接口、打印屬性選擇的頁面,訂單確認頁面以及數據交互
Web和後端跨域有些問題,拒絕訪問
快結束了,再肝一下
團隊名稱: 雲打印
做業要求: 項目Alpha衝刺(團隊)
做業目標: 完成項目Alpha版本
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鴻鍵 | https://www.cnblogs.com/jichiwoyaochi/ |
整合代碼,優化代碼,測試程序
整合代碼時出現問題,導入bootstrap框架比較麻煩
快結束了,你們最後肝一次
團隊名稱: 雲打印
做業要求: 項目Alpha衝刺(團隊)
做業目標: 完成項目Alpha版本
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鴻鍵 | https://www.cnblogs.com/jichiwoyaochi/ |
發佈Alpha版本程序
服務器和windows環境不同,部署時容易出問題,有些代碼整合在一塊兒報錯
終於完成了alpha衝刺,感恩!
團隊名稱: 雲打印
做業要求: 項目Alpha衝刺(團隊)
測試用例文檔下載
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鴻鍵 | https://www.cnblogs.com/jichiwoyaochi/ |
模塊 | 測試人 | 測試內容 |
---|---|---|
單元測試 | 陳宇、陳迎仁、陳詩嫺、蔡森林、蔡鴻鍵 | 各自編寫的代碼的覆蓋率 |
界面測試 | 陳迎仁、蔡鴻鍵 | 測試界面的佈局和易用性 |
功能測試 | 陳宇、蔡森林 | 測試功能的正確性 |
數據庫測試 | 陳迎仁 | 測試數據庫接口和性能 |
總體測試 | 陳宇、陳詩嫺 | 測試系統總體的使用是否正常 |
模塊 | 測試工具 |
---|---|
單元測試 | Junit |
界面測試 | Instrumentation |
功能測試 | Jprofile |
數據庫測試 | mysqlslap |
課程名稱:軟件工程1916|W(福州大學)
團隊名稱: 雲打印
做業要求: 項目Alpha衝刺(團隊)
做業目標:Alpha衝刺總結隨筆
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鴻鍵 | https://www.cnblogs.com/jichiwoyaochi/ |
小程序端代碼Github地址
商家端代碼Github地址
後端代碼Github地址
項目預期計劃 | 現實進展 |
---|---|
閱讀代碼規範,安裝相應的環境和開發者工具 | 100% |
微信小程序登陸受權,後端相應的開發 | 100% |
後端上傳文件的接口,進行相應的測試 | 99% |
後端計算word頁數,調用第三方庫進行轉pdf和進行計算頁數 | 100% |
學習微信支付接口 ,後端微信支付接口,督促隊友 | 97% |
微信支付接口,後端微信支付回調接口,協調任務進度 | 98% |
後端和小程序和微信支付對接,督促隊友完成相應的開發 | 98% |
商家端接單和查看訂單,後端商家端接口,商家端的部分GUI | 97% |
整合代碼,測試程序,協調隊友完成相應的開發 | 99% |
發佈Alpha版本程序 | 100% |
陳宇(組長)
在Alpha衝刺,我學到了如何更高效的管理團隊,和協調團隊成員之間的關係,明確天天本身的任務,當天的代碼當天測試,多和組員溝通,及時瞭解隊員的難處,五一放假都在忙此次的Alpha衝刺,雖然很累但也很充實,
最後咱們團隊也按預期完成了任務。在開發過程當中也踩了不少坑,也常常熬夜,歷盡了千辛萬苦終於完成了Alpha衝刺,但願咱們的團隊能在Beta作得更好。
陳詩嫺
這一次任務感受時間很是緊,組長在第一天就分配了天天應完成的任務進度,明確本身天天要完成的工做,我爲了趕進度天天都要自主學習新知識並完成當天的工做,這一次放假也基本上都在忙項目了。這一次任務咱們終於在上課前搞完了,雖然很累,但也感受很充實,頗有成就感,在此次任務中也學到了不少新的知識,還會繼續努力的。
蔡鴻鍵
第一次你們在一塊兒作一個項目,由於什麼都不會,感受拖累了你們。還好你們耐心的幫助我,讓我感覺到了一我的寫代碼無聊與你們一塊兒寫代碼的樂趣
蔡森林
在Alpha衝刺過程當中,我學到了不少東西,開始接觸開發微信小程序,雖然本身能作得很少,只是對界面上的小修小補和一些功能測試,但願在接下來的時間裏,多學習一些微信小程序開發的相關知識,在Beta衝刺階段能爲個人團隊多作貢獻。
陳迎仁
在Alpha衝刺中,學到了不少和小程序相關的知識,先是文件上傳界面,接着是微信支付,還有一些七七八八的配置,這個階段雖然很累可是也很充實,但願本身接下來能作得更好,少熬夜。
學號 | 姓名 | 任務 | 百分比 |
---|---|---|---|
221600412 | 陳宇(隊長) | 後端開發,任務安排,撰寫博客 | 22% |
221600401 | 陳詩嫺 | 美工,撰寫博客 | 17% |
221600408 | 蔡鴻鍵 | 商家web端開發 | 20% |
221600409 | 蔡森林 | 微信小程序界面美化及測試,撰寫博客 | 19% |
221600411 | 陳迎仁 | 微信小程序 | 22% |
總結經驗教訓,事先明確分工任務,作好計劃安排。針對Alpha衝刺遺留的問題,進一步完善項目結構與功能。尤爲是一些接口問題,常常會出現bug問題,須要進一步再優化。在下階段的Beta衝刺過程當中,但願能夠充分調動組員的積極性,多進行交流討論,把咱們的項目作得更好。
# alpha衝刺過後諸葛亮(團隊)
課程名稱:軟件工程1916|W(福州大學)
團隊名稱: 雲打印
做業要求: 項目Alpha衝刺(團隊)
做業目標:完成Alpha衝刺的過後諸葛亮
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600408 | 蔡鴻鍵 | https://www.cnblogs.com/jichiwoyaochi/ | 轉出 |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ | 轉入 |
1.咱們的軟件要解決什麼問題?是否認義得很清楚?是否對典型用戶和典型場景有清晰的描述?
咱們軟件主要解決傳統線下打印的一些弊端,好比線下打印店人多擁擠、排隊時間長,U盤中毒、丟失,對打印機不熟悉錯印多印,商家須要時刻關注各臺打印機的打印情況等傳統弊端。對軟件功能的定位是很清晰的。主要針對目前大學生的打印場景以及目前大學生的羣體進行了清晰的調查,經過問卷和實地考察,進行清晰的描述。
2.咱們達到目標了麼(原計劃的功能作到了幾個? 按照原計劃交付時間交付了麼? 原計劃達到的用戶數量達到了麼?)
微信小程序端原計劃主要實現5個大功能模塊:文件打印、圖片打印、聯繫客服、聯繫商家、掃一掃;每一個大功能模塊下還劃分了許多子功能,好比文件上傳、微信支付、訂單列表、訂單填寫;按照原計劃a階段實現了主功能文件上傳以及微信支付即文件打印功能。原計劃達到的用戶數尚未達到。
3.和上一個階段相比,團隊軟件工程的質量提升了麼? 在什麼地方有提升,具體提升了多少,如何衡量的?
團隊軟件工程的質量提升了,對於整個軟件的開發以及管理和計劃的把握上有了必定的提升,從沒有計劃的建瓦房達到了有圖紙有規劃的建平樓,經過開發的軟件項目質量以及開發過程當中對問題的處理以及初始的計劃安排狀況來衡量
4.用戶量, 用戶對重要功能的接受程度和咱們事先的預想一致麼? 咱們離目標更近了麼?
用戶量離預期還有較大的距離,用戶對文件打印功能的接受程度與事先的預想相差很少,但在一些細節上還不夠完善,還須要進一步改進。
5.有什麼經驗教訓? 若是歷史重來一遍, 咱們會作什麼改進?
經驗教訓:初期只是規劃在10天內完成的一系列功能,粗糙地 安排天天的工做量,可是在後面的執行欠缺更加嚴格的監督,致使其中一兩天耽擱,沒有按照預期的進度去作,還好後面幾天加班完成預期功能。經過這個教訓,感覺到應該嚴格監督天天的進度。若是從新來一遍,咱們會更加合理的安排人員以及時間,清晰劃分每一個任務的deadline,嚴格監督天天進度。
1.是否有充足的時間來作計劃?
作計劃上的時間仍是挺充足的,作好計劃,有助於工程的順利進行。
2.團隊在計劃階段是如何解決同事們對於計劃的不一樣意見的?
當遇到不一樣意見時,咱們主要採用投票表決,決策出最優方案。
3.你原計劃的工做是否最後都作完了? 若是有沒作完的,爲何?
大部分任務如期完成,未作完的部分由於突發緣由或技術問題影響工程的進度。
4.有沒有發現你作了一些過後看來不必或沒多大價值的事?
這個卻是沒有遇到。
5.是否每一項任務都有清楚定義和衡量的交付件?
每一項任務基本都有明確的目標。
6.是否項目的整個過程都按照計劃進行,項目出了什麼意外?有什麼風險是當時沒有估計到的,爲何沒有估計到?
項目未徹底按照計劃進行,中間由於某些技術上的問題,致使進度有些落後。對於風險的問題,這個卻是沒考慮到。
7.在計劃中有沒有留下緩衝區,緩衝區有做用麼?
咱們計劃中留有必定的緩存區,某種程度上較好地彌補落下的工做。
8.未來的計劃會作什麼修改?(例如:緩衝區的定義,加班)
根據技術上的難度適當調整天天的工做量。
9.咱們學到了什麼? 若是歷史重來一遍, 咱們會作什麼改進?
在這個過程當中,咱們學到了微信小程序開發的相關技術,先後端交互的問題解決能力以及開發過程當中遇到的種種問題的解決經驗等
1.咱們有足夠的資源來完成各項任務麼?
技術資源不夠,須要邊學習邊開發,工做量大,壓力大。
2.各項任務所需的時間和其餘資源是如何估計的,精度如何?
主要按照工程中功能實現的難易程度進行估計,精度上還須要進一步改進。
3.測試的時間,人力和軟件/硬件資源是否足夠? 對於那些不須要編程的資源 (美工設計/文案)是否低估難度?
測試時間不夠,人力和軟硬件資源湊湊有餘,對於美工、文案設計確實低估了工程難度,在界面設計中遇到了許多問題。
4.你有沒有感到你作的事情可讓別人來作(更有效率)?
這個卻是沒有,本身正在作的事情本身比較熟悉,忽然交付給別人來作,須要花費時間跟他交流討論,才能真正交接,這樣效率反而不高。
5.有什麼經驗教訓? 若是歷史重來一遍, 咱們會作什麼改進?
代碼複用性不是很好,後期修改的工做量大,若是能夠再來一次的話,咱們打算對代碼進行重構,提升代碼複用性和整潔性。
1.每一個相關的員工都及時知道了變動的消息?
收到變動通知後,咱們及時和組員進行了溝通和交流,保證了消息的時效性,讓組員第一時間收到通知。
2.咱們採用了什麼辦法決定「推遲」和「必須實現」的功能?
根據這個功能對軟件的必要性和開會討論。
3.項目的出口條件(Exit Criteria – 什麼叫「作好了」)有清晰的定義麼?
在前面的需求分析報告,和系統分析報告中有比較清晰的定義。
4.對於可能的變動是否能制定應急計劃?
沒有,全靠熬夜加班。
5.員工是否可以有效地處理意料以外的工做請求?
在alpha衝刺中沒有遇到意料以外的工做請求。
6.咱們學到了什麼? 若是歷史重來一遍, 咱們會作什麼改進?
保證消息的時效性,制定好應急計劃。
1.設計工做在何時,由誰來完成的?是合適的時間,合適的人麼?
設計是在初期原型設計的時候由團隊多名隊員一塊兒完成的,是合適的時間,合適的人。
2.設計工做有沒有碰到模棱兩可的狀況,團隊是如何解決的?
有,會團隊一塊兒討論把模棱兩可的地方肯定。
3.團隊是否運用單元測試(unit test),測試驅動的開發(TDD)、UML, 或者其餘工具來幫助設計和實現?這些工具備效麼? 比較項目開始的 UML 文檔和如今的狀態有什麼區別?這些區別如何產生的?是否要更新 UML 文檔?
4.什麼功能產生的Bug最多,爲何?在發佈以後發現了什麼重要的bug? 爲何咱們在設計/開發的時候沒有想到這些狀況?
5.代碼複審(Code Review)是如何進行的,是否嚴格執行了代碼規範?
6.咱們學到了什麼? 若是歷史重來一遍, 咱們會作什麼改進?
1.團隊是否有一個測試計劃?爲何沒有?
有。
2.是否進行了正式的驗收測試?
進行了。
3.團隊是否有測試工具來幫助測試?
有,如Junit等。
4.團隊是如何測量並跟蹤軟件的效能的?從軟件實際運行的結果來看,這些測試工做有用麼?應該有哪些改進?
有用Jprofile對軟件的功能進行測試。有用,確保了軟件功能的正確性。
5.在發佈的過程當中發現了哪些意外問題?
6.咱們學到了什麼? 若是重來一遍, 咱們會作什麼改進?
1.團隊的每一個角色是如何肯定的,是否是人盡其才?
每一個成員負責本身擅長的部分,充分發揮團員的優勢。
2.團隊成員之間有互相幫助麼?
有
3.當出現項目管理、合做方面的問題時,團隊成員如何解決問題?
團隊一塊兒溝通討論
每一個成員明確公開地表示對成員幫助的感謝 (而且寫在各自的博客裏):
陳宇
感謝chj在完成先後端的任務中給與個人幫助,即便離開了團隊也繼續完成了前端的任務。
陳迎仁
我感謝cy同窗對個人幫助, 由於在出現的一些bug的時候都是他和我一塊兒克服,還指導我學習java後端。
蔡鴻鍵
我感謝cy對個人幫助,由於某個具體的事情: 幫我一步一步改BUG。
蔡森林
我感謝cyr對個人幫助,由於某個具體的事情: 他讓我開始接觸和開發微信小程序。
陳詩嫺
我感謝cy同窗對個人幫助,由於某個具體的事情:衝刺階段寫代碼遇到bug幫我找緣由和修改方法。
1.你以爲團隊目前的狀態屬於 CMM/CMMI 中的哪一個檔次?
可重複級(Repeatable)檔次。
2.你以爲團隊目前處於 萌芽/磨合/規範/創造 階段的哪個階段?
從磨合到規範的階段。
3.你以爲團隊在這個里程碑相比前一個里程碑有什麼改進?
代碼規範度更高,配合也更默契。
4.你以爲目前最須要改進的一個方面是什麼?
增長團隊成員的配合度。
5.其它軟件工具的應用,應該如何提升?
參考網絡上的教程自學,或請求掌握該工具使用的同窗的指導。
6.項目文檔的質量如何提升?
參考網絡中優秀的項目文檔是怎麼寫的。
工做交接:
1,傳給新成員原成員寫的源碼,由於原成員是web端,因此咱們把全部的HTML+CSS+JS的網頁代碼交給他。
2,由於新成員學習過基本的WEB知識,就不用另行學習。
3,由原成員帶新成員學習web使用的框架。
4,因爲新成員是作UI的,會幫派一些UI圖標優化。
培養計劃
1,溫習基礎HTML+CSS+JS知識
2,由原成員帶新成員瀏覽代碼,學習框架,並運用
3,使新成員瞭解接下來的項目需求,提出本身的看法,使加快融入小組
4,由先後端同窗交流接口,使之理解數據交付,熟悉AJAX和DOM原理等
5,自我界面美感優化
討論的照片
課程名稱:軟件工程1916|W(福州大學)
團隊名稱: 雲打印
做業要求: 項目Beta衝刺(團隊)
做業目標:Beta衝刺
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ |
沒人想當。
在Alpha階段中團隊的分工仍是比較明確,可是開發比較分散,雖然溝通都比較及時可是隊員不能及時處理出現的問題,會出現拖拉現象。在Beta階段,咱們團隊成員一塊兒開發,及時溝通和解決問題提升效率。
目前沒有比較須要改進的工具和流程
任務 | 內容 | 時間 |
---|---|---|
第一天 | 完善文件上傳接口 | 5.23 |
次日 | 文件下載 | 5.24 |
第三天 | 增長訂單優先級 | 5.25 |
第四天 | 增長裝訂屬性 | 5.26 |
第五天 | 商家接單,完成訂單 | 5.27 |
第六天 | 修改了後端的代碼,完善服務 | 5.28 |
第七天 | 美化商家網頁端界面,完善小程序端的界面 | 5.29 |
用戶試用的調查報告 | 用戶試用,完成一份用戶試用的調查報告。 | 5.31 |
團隊名稱: 雲打印
做業要求: 項目Beta衝刺(團隊)
做業目標: 完成項目Beta版本
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ |
蔡森林
隊員學號 | 隊員姓名 | 比例 | 備註 |
---|---|---|---|
221600412 | 陳宇 | 24 | 隊長 |
221600411 | 陳迎仁 | 23 | |
221600409 | 蔡森林 | 21 | |
221600401 | 陳詩嫺 | 16 | |
221600307 | 李姣 | 16 |
團隊名稱: 雲打印
做業要求: 項目Beta衝刺(團隊)
做業目標: 完成項目Beta版本
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ |
隊員學號 | 隊員姓名 | 比例 | 備註 |
---|---|---|---|
221600412 | 陳宇 | 24 | 隊長 |
221600411 | 陳迎仁 | 23 | |
221600409 | 蔡森林 | 21 | |
221600401 | 陳詩嫺 | 16 | |
221600307 | 李姣 | 16 |
團隊名稱: 雲打印
做業要求: 項目Beta衝刺(團隊)
做業目標: 完成項目Beta版本
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ |
添加優先級功能
隊員學號 | 隊員姓名 | 比例 | 備註 |
---|---|---|---|
221600412 | 陳宇 | 24 | 隊長 |
221600411 | 陳迎仁 | 23 | |
221600409 | 蔡森林 | 21 | |
221600401 | 陳詩嫺 | 16 | |
221600307 | 李姣 | 16 |
團隊名稱: 雲打印
做業要求: 項目Beta衝刺(團隊)
做業目標: 完成項目Beta版本
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ |
隊員學號 | 隊員姓名 | 比例 | 備註 |
---|---|---|---|
221600412 | 陳宇 | 25 | 隊長 |
221600411 | 陳迎仁 | 24 | |
221600409 | 蔡森林 | 22 | |
221600401 | 陳詩嫺 | 16 | |
221600307 | 李姣 | 13 |
團隊名稱: 雲打印
做業要求: 項目Beta衝刺(團隊)
做業目標: 完成項目Beta版本
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ |
隊員學號 | 隊員姓名 | 比例 | 備註 |
---|---|---|---|
221600412 | 陳宇 | 25 | 隊長 |
221600411 | 陳迎仁 | 24 | |
221600409 | 蔡森林 | 22 | |
221600401 | 陳詩嫺 | 16 | |
221600307 | 李姣 | 13 |
團隊名稱: 雲打印
做業要求: 項目Beta衝刺(團隊)
做業目標: 完成項目Beta版本
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ |
隊員學號 | 隊員姓名 | 比例 | 備註 |
---|---|---|---|
221600412 | 陳宇 | 25 | 隊長 |
221600411 | 陳迎仁 | 24 | |
221600409 | 蔡森林 | 22 | |
221600401 | 陳詩嫺 | 16 | |
221600307 | 李姣 | 13 |
團隊名稱: 雲打印
做業要求: 項目Beta衝刺(團隊)
做業目標: 完成項目Beta版本
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ |
隊員學號 | 隊員姓名 | 比例 | 備註 |
---|---|---|---|
221600412 | 陳宇 | 25 | 隊長 |
221600411 | 陳迎仁 | 24 | |
221600409 | 蔡森林 | 22 | |
221600401 | 陳詩嫺 | 16 | |
221600307 | 李姣 | 13 |
微信小程序---雲打印
雲打印是一款以微信小程序爲基礎的在線打印服務,經過和實體打印店合做,用戶能夠經過微信小程序上傳pdf文檔,後臺能夠經過代碼計算頁數而後返回給前端計算出價格,經過微信下單,付款。商家經過網頁界面接單和下載文檔,並進行打印和配送。
用戶隨時隨地能夠進行文件資料在線打印,享受配送等快捷服務。
- 測試對象:福州大學全校學生
- 測試時間:2019.05.30-2019.05.31
(測試對象主要是在校大學生,在此簡單列幾個測試對象)
一、福州大學數計學院學生 女
優勢: 界面簡潔明瞭,佈局也比較合理,可選的打印屬性基本具有,基本知足咱們學生文檔打印需求,用起來挺方便的。
缺點: 若是能多增長其餘格式的文檔打印功能,那就更好了。
二、福州大學數計學院學生 男
優勢: 界面簡單明瞭,功能基本能夠達到,用起來很是方便,不用排隊,能夠省掉好多時間。
缺點: 界面若是加一些好看的背景會更好看。
三、福州大學經管學院學生 男
優勢: 界面風格簡約,功能還行,能實現文件的在線打印,用起來很方便。以前去打印店打印文件,常常習慣性忘記U盤,經過這個小程序,能夠大大避免U盤的丟失,還不錯。
缺點: 要是能增長一些表格文件打印功能就更好了。
四、福州大學外國語學院學生 女
優勢: 界面還不錯,打印功能基本能實現,常常我每次去打印文件,老是出錯,要打印雙面,忘記單擊向左翻頁,結果打印成單面,好氣呀。若是用在線打印文件,將能幫我省掉許多沒必要要的麻煩,挺好用。
缺點: 主要是圖片打印功能沒實現,要是能實現會更好。
五、福州大學電氣學院學院學生 男
優勢: 界面還不錯,功能也還能夠,重要的是能幫我省掉好多時間,這樣我就不用排隊,還能夠享受文件裝訂,配送服務,挺不錯的。
缺點: 有點好奇,那個掃一掃是用來幹嗎的?
六、福州大學土木學院學生 男
優勢: 界面還行,功能也能夠,我一直討厭去打印店,排隊很痛苦,用U盤還很容易中毒,這讓我很難受。經過這個在線打印,我想我就不用擔憂U盤再中毒了,挺好用的。
缺點: 我的信息可能會泄露,安全性不是很可靠。
(彙總了大部分試用者所認爲的優勢和缺點)
用戶 | 評分(十進制) | |
---|---|---|
1 | 9 | |
2 | 8 | |
3 | 7 | |
4 | 9 | |
5 | 8 | |
6 | 7 | |
平均分 | 8 |
整體來講,你們對咱們的界面和功能仍是持好評的,對此咱們的內心仍是挺高興的。
咱們的微信小程序設計的初衷就是界面簡潔、操做簡單。經過調查,咱們發現了咱們項目在功能和界面上還存在許多不足。例如上面提到的打印文件格式只侷限pdf文件,部分功能還未實現,文件的安全性不是很可靠等問題,咱們會繼續優化。
界面美觀上,咱們的設計主要以簡約風格爲主,對一些界面佈局,設計的還不是很好看,後期有時間的話,咱們會進行相應的調整,適當搭配好看的背景圖片;在功能實現上,由於時間的緣由,有些功能來不及實現,例如多種格式的文檔打印功能,後期有時間的話,咱們會進行相應的改進,增長一些實用的功能。
課程名稱:軟件工程1916|W(福州大學)
團隊名稱: 雲打印
做業要求: 項目Beta衝刺(團隊)
做業目標:做業集合
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ |
第一次上手體驗感受如何?可否正常運行?
能正常登陸註冊運行。
該產品具備哪些功能?
能在在平臺查到關於校園的動態,二手交易等。
該產品解決了什麼樣的關鍵問題?
解決了校園功能分散的問題,使得上大學只須要要一個APP。
分析這個軟件目前的優劣 (和相似軟件相比), 推理出這個軟件團隊在軟件工程方面能夠提升的重要方面 (具體建議)。要求把對比的結果列出一個表格,對比每一個軟件各自的優勢和缺點。
對比超級課程表,該軟件具備這些優缺點:
| 優勢 | 缺點 |
| :------|:------ |
| 功能更加豐富 | 沒有課程表 |
| UI設計簡潔|UI設計體驗不是很友好 |
建議: 完善本身自己的服務,並提升用戶體驗和產品的核心競爭力。
以爲該產品有哪些須要改進的地方
給出一個評價:
好,不錯
列舉你找到的兩個bug,配圖更佳
沒有比較明顯的bug
就是功能不是很完善,擴展功能沒有實現。
評分
根據你的體驗和項目的完成狀況,
方面 | 分數 |
---|---|
用戶體驗方面 | 7 |
UI界面美觀度 | 8 |
核心功能 | 8 |
完成度 | 7 |
合計 | 30 |
隊伍測試分工表
隊員學號 | 隊員姓名 | 分工 | 備註 |
---|---|---|---|
221600412 | 陳宇 | 下載,安裝,體驗,測試 | 隊長 |
221600411 | 陳迎仁 | 體驗,測試 | |
221600409 | 蔡森林 | 體驗,測試 | |
221600401 | 陳詩嫺 | 下載,安裝,體驗 | |
221600307 | 李姣 | 下載,安裝,體驗 |
課程名稱:軟件工程1916|W(福州大學)
團隊名稱: 雲打印
做業要求: 項目Beta衝刺(團隊)
做業目標:做業集合
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ |
第一次上手體驗感受如何?可否正常運行?
能正常登陸運行。界面簡潔明瞭
該產品具備哪些功能?
微信小程序:查看小區公告、便民電話、個人工單、以及物業報修
web:管理學生、更改維修狀態、問卷推送等
該產品解決了什麼樣的關鍵問題?
解決了校園物業信息更新不及時,致使一些不方便
分析這個軟件目前的優劣 (和相似軟件相比), 推理出這個軟件團隊在軟件工程方面能夠提升的重要方面 (具體建議)。要求把對比的結果列出一個表格,對比每一個軟件各自的優勢和缺點。
對比福大易班和山園物業,該軟件具備這些優缺點:
| 優勢 | 缺點 |
| :------|:------ |
| 具備物業通知功能,可以及時通知住戶一些停水之類 | 功能更少一些 |
| UI設計簡潔|web端的設計較爲簡陋 |
建議: 完善本身自己的服務,並提升用戶體驗和產品的核心競爭力。
以爲該產品有哪些須要改進的地方
給出一個評價:
好,不錯,具備較高的實用性
列舉你找到的兩個bug,配圖更佳
修改學生的宿舍時有問題
擴展功能沒有實現,web端的界面須要進一步優化
評分
根據你的體驗和項目的完成狀況,
方面 | 分數 |
---|---|
用戶體驗方面 | 8 |
UI界面美觀度 | 7 |
核心功能 | 8 |
完成度 | 8 |
合計 | 31 |
隊伍測試分工表
隊員學號 | 隊員姓名 | 分工 | 備註 |
---|---|---|---|
221600412 | 陳宇 | 體驗,測試 | 隊長 |
221600411 | 陳迎仁 | 體驗,測試 | |
221600409 | 蔡森林 | 體驗,測試 | |
221600401 | 陳詩嫺 | 體驗,測試 | |
221600307 | 李姣 | 體驗,測試 |
課程名稱:軟件工程1916|W(福州大學)
團隊名稱: 雲打印
做業要求: 項目Beta衝刺(團隊)
做業目標:Beta衝刺總結
隊員學號 | 隊員姓名 | 我的博客地址 | 備註 |
---|---|---|---|
221600412 | 陳宇 | http://www.cnblogs.com/chenyuu/ | 隊長 |
221600411 | 陳迎仁 | https://www.cnblogs.com/yinen/ | |
221600409 | 蔡森林 | https://www.cnblogs.com/csl8013/ | |
221600401 | 陳詩嫺 | https://www.cnblogs.com/orangepoem/ | |
221600307 | 李姣 | https://www.cnblogs.com/CloudLong/ |
小程序端代碼Github地址
商家端代碼Github地址
後端代碼Github地址
項目預期計劃 | 現實進展 |
---|---|
完善文件上傳接口 | 100% |
文件下載 | 100% |
增長訂單優先級 | 99% |
增長裝訂屬性 | 100% |
商家接單,完成訂單 | 97% |
修改了後端的代碼,完善服務 | 98% |
美化商家網頁端界面,完善小程序端的界面 | 98% |
商家端接單和查看訂單,後端商家端接口,商家端的部分GUI | 97% |
用戶試用的調查報告 | 99% |
發佈Beta版本程序 | 100% |
陳宇(組長)
此次衝刺主要在調試上次衝刺的bug和問題,主要在微信支付和文件上傳,新功能的增長比較少,主要完善了核心功能,我的感受一個微信小程序應該先把核心功能作好作精,因此Beta對擴展功能關注比較少,另外一方面也是時間安排不合理,對任務的預期不許確,好比安裝https證書,原本預期一個小時搞定,結果硬生生調了一天才完成。總之,時間不夠,熬夜來補。
陳詩嫺
Beta階段感受主要是對Alpha階段出現的問題進行修改,例如微信回調接口在Alpha階段存在異常。代碼方面隊員都幫了我不少,如今對於java的使用比剛開學時熟練了不少,也自學了不少課本上沒有的知識,接下來會繼續加油的。
李姣
此次β衝刺我做爲新成員首先遇到的難點是如何短期內上手一個全新的項目。此前在原來的小組我負責的是ui和界面的修改,主要是安卓端,而到新的組以後接手的工做是web端。幸虧以前web端也有必定的知識積累,不至於啥也作不了給小組拖累。web端是商家端的一些基礎功能實現,α階段已經完成了大部分,我只需對細節進行修飾和增改便可。也感謝新的小組成員對個人幫助,讓我能儘快上手,瞭解項目結構,更好地完成工做。
蔡森林
通過Beta衝刺,我學到了不少東西,對於微信小程序的佈局有更進一步的理解,以及一些請求接口的交互,常常須要不斷調試,但每一次的調試,對本身都是一種成長。在接下來的日子裏,我會繼續不斷努力,讓本身不斷成長。
陳迎仁
雖然在此次軟工實踐吃盡了苦頭,花費了大把的時間和心思,可是最後看到本身產品可以完整的運行,內心的成就感仍是很是知足的,雖然項目作出來可能沒有其餘組的酷炫華麗,但在這個過程當中和隊友學習了不少知識,不只提升了本身敲代碼的課外能力,也實踐到了一些軟件工程的理論知識,也是由於本身對軟件項目管理的工程量把握不許確,致使兩個階段的開發時而緊張時而輕鬆,因此經過此次實踐,吸收教訓,提升本身。痛並快樂着!
學號 | 姓名 | 任務 | 百分比 |
---|---|---|---|
221600412 | 陳宇(隊長) | 後端開發,任務安排,撰寫博客 | 22% |
221600401 | 陳詩嫺 | 美工,撰寫博客 | 16% |
221600307 | 李姣 | 商家web端開發 | 21% |
221600409 | 蔡森林 | 微信小程序界面美化及測試,撰寫博客 | 19% |
221600411 | 陳迎仁 | 微信小程序 | 22% |
總結經驗教訓,事先明確分工任務,作好計劃安排。及時跟隊員進行溝通協調進度。小組多人合做方面也存在不少問題,先後端合做不完美,前端也在改,後端也在改,每一次前端把代碼給我,我也不知道前端修改了啥,啥沒有修改,這樣致使我得從新把前端代碼都換掉,挺麻煩了;而後就是任務分工方面,有的任務不能嚴格的分給前端或者後端,必須先後端合做,這樣就得倆人共同協做,而後是現實老是很不理想,心不齊,固然解決不了問題。仍是那句話,團結起來力量大。