位元組對齊演算法
此作業要求參見 https://edu.cnblogs.com/campus/nenu/2020Fall/homework/11604
回顧0
所屬團隊(alpha後換組的,兩個團隊都 寫)及連結
Wetryhttps://www.cnblogs.com/wetry/
團隊專案及連結
祝頌販賣機https://github.com/zhaoyw456/wishesmachine
在本課程(不包括本學期其他課程)中學習和使用的新軟體新工具(全稱、版本)及連結
1.git
版本:version 2.28.0.windows.1
2.墨刀
版本:6.0
在本課程(不包括本學期其他課程)中學習、提高的語言、開發平臺(全稱、版本)及平臺連結
1.微信開發者工具
版本:v1.03.2009140
連結:https://developers.weixin.qq.com/miniprogram/dev/devtools/devtools.html
2.IntelliJ IDEA
版本:2020.2.3 x64
連結:https://www.jetbrains.com/idea/
回顧1 分值40
回顧本學期第一次作業[https://edu.cnblogs.com/campus/nenu/2020Fall/homework/11183] 中題目2。
參見 [http://www.cnblogs.com/easteast/p/7403491.html],閱讀其中給出的材料,並回答下面幾個問題:
(1)回想一下你曾經對計算機專業的暢想
當初你是如何做出選擇計算機專業的決定的?經過一個學期,你的看法改變了麼,為什麼?
答:實話實說,我報考的第一志願是地理科學,但是差五分到錄取線。既然已經報不到自己喜歡的院校專業也不想復讀,所以我就報考了未來更好就業的計算機,而且從接觸計算機開始我就對計算機有一些好奇心,想了解到底計算機是如何工作的,以上的幾點原因促使我選擇了計算機專業。我的看法沒有改變,我仍然認為計算機是很有未來的,我願意繼續探索下去。
你認為過去接觸到的課程是否符合你對計算機專業的期待,為什麼?經過一個學期,你的看法改變了麼,為什麼?
答:同樣實話實說,我只能覺得有一小部分符合了我的期待。我原本很傻地認為學習計算機就是熟練使用計算機,確實本科中也有這種型別的課程。但絕大部分的課程都是從原理的層次來解釋計算機的構造和執行邏輯,最後我得出了一個結論,計算機專業的工作就是把最複雜的工作完成以方便使用者使用。我的看法有所改變,至少我在軟體工程這個方面獲得了新的認識。
你覺得計算機是你喜歡的領域嗎,它是你擅長的領域嗎?經過一個學期,你的看法改變了麼,為什麼?
(注:不可以回答 "不是","是"。請把這當成以後工作時面試題,需要回答足夠長度,提供足夠資訊,讓對方瞭解你。比如,給出為什麼。)
仍然實話實說,它不是我喜歡的領域,也不是我擅長的領域,但我離不開計算機,也不想半途而廢,而且最近一年我特別想去小米公司工作,哪怕只有實習也可以,要學的東西還有很多,朝著心中所想走下去。我的看法沒有改變,依然不擅長,以後或許會擅長。
(2)考取研究生,對照前人們走過的路和描述未來發展,現在的你自我感覺你已經具備的專業知識、技能、能力有哪些?
離成為一個合格的計算機學生,在專業知識、技能、能力上還差距哪些?
經過一個學期,你的看法改變了麼,為什麼?
答:對於專業知識,自我感覺具備了本科課堂所學的基礎知識,例如資料結構、作業系統、資料庫、編譯原理等大致框架;對於技能,自我感覺具備了簡單的c、JAVA、JSP、Android等程式碼編寫技能;對於能力,自我感覺具備了學習後續研究生課程的基本能力。離成為一個合格的計算機學生,專業知識的廣度深度遠遠不夠、程式設計或者使用工具的技能遠遠不夠,學習能力還需要提高。我的看法沒有改變,專業知識、技能、能力得到了提升,但還不足以成為合格的計算機學生。
(3)每天都是一個人生選擇的十字路口,學術研究、工程專案、社會實踐 (?) ,不同的選擇有不同的努力方向。
對照以上你閱讀的前人們的經歷,你的選擇是什麼?經過一個學期,你的看法改變了麼,為什麼?
在這種選擇下,你認為你相比其他同學來說有何優勢,有何劣勢?經過一個學期,你的看法改變了麼,為什麼?
針對你的選擇,你給自己的本學期的規劃是什麼?經過一個學期,你的看法改變了麼,為什麼?
答:我的選擇是工程專案,可能我不會選擇工程師這個身份,但我會考慮朝著產品和資料處理的方向努力。我的優勢是具有較強的規劃能力,比如在時間規劃、合理預測、事務安排方面的能力。我的劣勢是對於知識的掌握和程式設計能力遠遠不夠。我在本學期的規劃是:在導師的研究方向上做好入門知識的儲備,在工程上掌握軟體工程過程中所需要注意的問題,提高自身分析問題的能力和使用工具的能力。我的想法沒有改變,我會堅持我最開始的選擇,並且為之堅持下去。
(4)你對這門課的期待是什麼?
你打算平均每週拿出多少個小時用在這門課上?經過一個學期,你的看法改變了麼,為什麼?
實測結果,每週平均用在本課程上多少小時?
答:我的期待是能學到在工程中面對困難時解決問題的方法。我打算平均每週拿出7個小時在這門課上。實測結果,每週平均7.7小時。
回顧2 分值50
-
5個問題
作業要求 [https://edu.cnblogs.com/campus/nenu/2020Fall/homework/11183] 題目3 中提到:
通讀《構建之法》,釋出隨筆1篇,要求列出5個問題,可以是讀後不理解的,或者讀後反對的。要求有觀點、有證據或分析。字數不是直接的考核標準,但是要求長到能把觀點表述清楚。
請回顧這5個問題,自己回答一下。當初的困惑是否還在,你現在如何認為,是更深的困惑麼?
答:(1)在閱讀到第二章裡2.1.3迴歸測試時,讀完之後依然不能理解這個測試的手段,我在網上翻閱了一篇有關回歸測試的帖子,閱讀之後我瞭解到,迴歸測試是用來測試改變程式碼前程式的正誤來防止引入新的錯誤,可是我不理解的是測試修改前程式碼的結果不應該在之前編寫的時候就測試完成了嗎。回覆:確實實在編寫的時候就測試完成了。
(2)在讀到第三章裡3.2軟體工程師的思想誤區時,讀到過早優化的時候,發現工程師在進行優化的時候甚至不知道全域性是怎麼樣的,我認為一定是先認識全域性再開始工作,我很好奇為什麼會出現這種情況,我在查閱資料的時候瞭解到,有的軟體是一邊編寫一邊設計的,很可能在編寫的時候還看不到程式未來發展的方向。回覆:每個工程師都有不同的分工。
(3)在閱讀到第八章需求分析的時候,8.3使用者調研中遇到了一個新詞,A/B測試,剛開始我認為A、B可能是兩個英文單詞的首字母,在往後閱讀的過程中發現它們指的是兩種方案,我疑惑的點在於兩種方案不足以供使用者選擇啊,在查閱資料時認識到,這兩種方案也是從多個方案中挑選出來,或者還有A/B/n測試可以應用。回覆:確實有多種方案可以挑選。
(4)可能我以後的選擇更偏向於產品或者資料分析層面,所以我仔細閱讀了第九章專案經理,在讀到PM需要掌握的能力部分,書中說到要有一定的專業能力,我對“一定”二字沒有辦法界定到底需要多少,在往下閱讀我看到PM通常也能寫程式碼,這時我認為一定的專業能力可以理解成一定要有專業能力,不光有專業能力,還要有學習專業以外的能力和知識。回覆:可以理解為足夠的專業能力。
(5)在讀到第十三章軟體測試13.2.4探索式測試中,很疑惑這麼不可靠的測試方式為什麼會被使用,在接下來的閱讀中我瞭解到,這種測試如果過多可以看出這個軟體不夠完善,但如果僅僅是這個原因也不夠有說服力,我又再讀了一遍內容並配合查取的資料,發現這種方法時用來測試一些“特例”的或測試一遍就足矣的部分。回覆:特別的手段解決特別的問題。
-
請根據本學期的學習、收穫、困惑,再提出5個問題,可以是讀後不理解的,或者讀後反對的。有求有觀點、有證據或分析。體驗一下,這5個問題,是不是更有深度了 。答:在不能使用資料庫的事務處理以及鎖(表鎖/行級鎖)時,怎麼保持資料一致性?怎麼解決資料庫併發操作?網站首頁90%的內容是靜態的,但是使用者登入狀態,訊息狀態是動態的怎麼解決?瀏覽器快取與CDN快取的關係,怎樣實現使用者瀏覽器與CDN同時快取?怎樣在這個系統的設計之初解決後面遇到的問題?
-
回憶整個學期,你有什麼話想對後來的學弟學妹們說。答:希望學弟學妹們能在這門課中付出100%的努力,不後悔並且有所提高。
-
如果重新來過一次,你打算做哪些(技術上,而不是態度上的)改變--基於希望得到什麼樣的更好結果,你才希望這樣改變的;更重要的是,你根據什麼估計這些改變會有預期的結果。答:在我們做軟體的過程中,很多事情是人工完成的。如果可以再來一次,我希望可以通過技術手段解決問題。
-
終於我們即將不再是師生。當你結束本課程,你和我就站在同樣的位置上,我將不再基於學校授權和知識、經驗 (年齡?)上的優勢而對你的自由有任何干擾。除釋出及成績以外,我最後一次行使教師特權: 請問你有什麼要對教師 (我)說的,建議、抱怨、希望……多謝。答:您是我見過教育方式最與眾不同的老師,希望您堅持下去,確實受益匪淺。
總結 分值50
-
程式碼總量,平均每週程式碼量。1407行,平均每週127行。
-
部落格字數總量,平均每週字數。19966字,平均每週1815字。
-
根據PSP,平均每週在本課程中所用時間(是的,請再回答一次)多少小時。7.7小時。
-
進度條總結: 遍歷每週知識點,以周為單位做如下表格。
起止時間 | 提交PSP例行報告時總結的知識點 | 現在回顧該周收穫的知識點 |
---|---|---|
第一週 | 資料流圖的畫法;PSP;控制檯命令知識 | 資料流圖的畫法;PSP;控制檯命令知識 |
第二週 | 重定向相關知識;檔案輸入輸出 | 重定向相關知識;檔案輸入輸出 |
第三週 | 程式碼規範相關說明 | 程式碼規範相關說明 |
第四周 | Scrum立會;墨刀使用方法 | Scrum立會;墨刀使用方法 |
第五週 | GUI設計 | GUI設計 |
第六週 | 需求分析 | 需求分析 |
第七週 | 事後諸葛亮 | 事後諸葛亮 |
第八週 | UML圖 | UML圖 |
第九周 | 釋出流程 | 釋出流程 |
第十週 | TDD測試框架 | TDD測試框架 |
第十一週 | 效能測試 | 效能測試 |
時間分配堆積柱狀圖。如圖所示,給出每週的時間分配,資料來源是每週的PSP。