软件工程第一次作业作业
| 這個作業要求在 | 作業要求 |
| 這個作業的目標 | 評估當下,展望未來 |
| 其它參考文獻 | csdn,《構建之法》 |
文章目錄
- 1.評估當前的自己
- 個人簡歷
- 當前值
- 2.展望未來
- 《構建之法》的問題思考
- 未來的職業規劃
- 課堂期待
- 3.學習路線(自制)
- 4.git作業提交
1.評估當前的自己
個人簡歷
| 頭像 | |
| 愛好 | 羽毛球、籃球、看小說 |
當前值
| 專業水平 | 編程語言:c、java、js 技術框架:react、vue 開發軟件:devc++,IDEA 代碼量:3k+ |
| 項目經歷 | 圖書館管理系統 開發語言:C 開發軟件:devc++ 功能:個人信息、圖書信息的增刪改查 |
2.展望未來
《構建之法》的問題思考
1.上網調查一下目前流行的源程序版本管理軟件和項目管理軟件都有哪些,它們各有什么優缺點?
GitHub
優點:
- 免費且開源。
- 用于敏捷高效地處理任何或小或大的項目。
- Git支持分支功能(branch)。如果你想開發一個新的產品功能,你可以建立一個分支,對這個分支的進行修改,而不至于會影響到主支上的代碼。
- 可拿Git做備份系統,或者同步兩臺機器的文檔,很方便。
- 支持離線工作。本地提交可以稍后提交到服務器上,不用和集中的代碼管理服務器交互。 只有最終完成的版本才需要向一個中心的集中的代碼管理服務器提交。
- Git 提交都是原子的,且是整個項目范圍的,而不像 CVS 中一樣是對每個文件的。
- Git 中的每個工作樹都包含一個具有完整項目歷史的倉庫。
- 簡易的初始化。對于隨便寫兩行代碼就要放到代碼管理工具里的人來說,再合適不過。
缺點:
- 學習成本大。由淺入深的過度很漫長,需要大量時間的投入。
- Git版本庫需要頻繁的手動維護。
SVN
優點:
- 對目錄的組織的管理更加方便。SVN不光對文件做版本跟蹤,也會對目錄做版本跟蹤。因此可以根據項目的需要,對目錄結構隨時進行修改,可以把現有的目錄移動到新的地方。
- 保證提交操作的完整性。SVN對提交操作的處理方式類似數據庫的事務處理,要么全部成功,要么全部無效,保證了原子性。
- SVN允許一個文件有任意多的可命名屬性,功能十分完全。
缺點:
- 不能離線工作。所有的版本信息都放在服務器上。如果脫離了服務器,開發者基本上可以說是無法工作的。
- 提交、更新、瀏覽歷史的速度慢。耗費CPU資源。
- 代碼不能及時提交。強迫使用者即時處理沖突,然后才能提交。
- 不能恢復到歷史版本。SVN記錄了單個文件的歷史版本,但沒有記錄全局版本,不能恢復到上次的狀態。
- 需手動“cleanup”。很多評論回復這點讓他們抓狂。
Mercurial(hg)
優點:
- 學習門檻較低。整體上看,hg需要掌握的命令要比git少很多。
- 可以一鍵完全恢復到歷史版本的某一個切面。
- 封裝好。相比git,hg很少暴露一些實現內的細節。
- 照顧 svn 的遷移用戶。hg 的很多命令是遷移自 svn 命令的,目標其實是為了讓 svn 用戶更容易接受。這使得已經習慣 svn 命令的團隊,幾乎零成本的切換到 hg。
- hg 的 pull 更多的時候可以讓你避免創建分支。hg 好比蘋果系統,git 好比 Linux,前者在常用命令上更好用更易用,后者在功能上更強大更靈活。
- hg的版本庫不需要維護。
缺點:
- 分支管理不靈活。Mercurial的branch管理和Git相比不是很方便。大型團隊不愿使用。
Microsoft TFS
優點:
- 任務版上能將需求、項目進度一覽無余,對于小團隊而言,比甘特圖更有用集成了項目管理、版本控制、BUG 跟蹤。
- 能有效實現 SCRUM能與 VS 無縫接合。
缺點:
-
搭建、維護tfs比較復雜,硬件要求也比較高。
-
整個系統是用 asp 實現的,用瀏覽器訪問相當慢。
[引用](細數目前流行的"源程序版本管理和項目管理軟件"優缺點 - JINGYAN - 博客園 (cnblogs.com)](https://www.cnblogs.com/JINGY/p/5271594.html#:~:text=據網上查閱,目前流行的源程序版本管理軟件和項目管理軟件有Github、Mercurial(hg)、SVN、Microsoft TFS等。,圖中數據為2010年整理,所以存在一定的偏差,僅作為參考。 圖片出處: http%3A%2F%2Fwww.infoq.com%2Fnews%2F2010%2F03%2FReview-Version-Control-Systems))
2.Coder和Hacker的區別
Coder僅僅機械式完成分內的任務和工作,是在未來最大可能會被ChatGPT取代的一類人。
相較之下,hacker就是比coder更高層次的等級了,他們有著自己對技術的熱愛和對更高水平的追求,擁有著強大的內在驅動力,對新的事物有著較強的探索欲望,比大部分的Coder要更為強大。
《水手探秘》火箭偏航,原因:手寫公式錯誤轉錄,軟件將正常的速度視為嚴重的變化,導致錯誤的修正。
體育館倒塌,原因:錯誤認為支撐的鋼架只會壓縮,實際會引起嚴重的連鎖反應
天然氣管道爆炸,軟件被特工破壞
第三次世界大戰(誤會),蘇聯預警系統錯誤指出美國發射了五枚導彈
醫療機器輻射外散,錯誤配置醫療
…
4.VCD的創新
失敗原因:創始人沒有把握自主知識產權,放棄專利申請,最終在仿制品的投入后失去了自身優勢,在價格戰中退出了市場。
從軟件工程的角度分析這個案例:萬燕公司追求質量占據市場這個策略沒有錯,但是當一樣產品無法以碾壓性的質量戰勝同類競品時,那么單靠產品質量就不足以占據整個市場了,產品的價格,產品的包裝等因素,都可以成為消費者買單的的原因。縱觀萬燕公司的發展史,占據的是VCD開創者身份的先機,然而,萬燕公司還沒有站穩腳跟,便被仿制產品打亂了發展的節奏,無法投入到再創新,再生產的良性循環當中,實在令人惋惜。
我們反思中國技術發展史,有的技術在敝帚自珍中遺失,有的技術流入百姓家中,造福百姓,但我們很少想過,我們要為這些技術的創始人付出些什么,也許我們會記住有巨匠墨子、大匠魯班,但這對于需要養家糊口的百姓,物質上是匱乏的。
專利保護、知識產權,相應政策的實施,政策也需要與時俱進。
5.創業–堅持自己的想法or與時俱進
無知的樂觀主義->通知悲觀->意義危機->崩潰放棄or通知樂觀
我認為,文章中創業的心態變化,更像是一種踏足未知領域,想要有所作為的一種心理變化。當我上大學前,受到網上的影響,我選擇了計算機這個專業,當時高考畢業,滿懷壯志,頗有一種將要造福社會、造福人類的架勢(無知的樂觀主義)。當我在學c語言時,軟件的配置,毫無征兆的bug,做著一些原始的、落后的操作,沒有華麗的效果,沒有奪人目光的特效,只有一堆堆自娛自樂的加減乘除和輸入輸出(通知悲觀)。當悲觀愈演愈烈,繼續上網,悲觀只會愈加悲觀,因為網絡的大數據是具有導向性的,開始出現擺爛、躺平、AI取代人類、互聯網寒冬,突然覺得人生或許走錯了路,如果XXX該多好(意義危機)。當經歷過一輪心理斗爭,路還是要繼續走的,便不會(崩潰放棄),那便只有(通知樂觀),在恰當的時間做該做的事,不后悔過去的選擇,不虛度當下的光陰,不去杞人憂天那未知的未來,人生便透徹許多,便發現還是有許多能夠做并做好的事情(真正的樂觀)。
未來的職業規劃
1.研究生3年
2.前期鉆研技術,成為一名全棧工程師,架構師
3.后期轉型,國企或教育事業
課堂期待
1.希望在課上能夠接觸更多本專業畢業生的職業發展案例,例如:35歲危機,如何兼顧家庭和工作?工作環境在農村與城市之間的取舍,國企or互聯網or醫療,工作場景等等。這類落于實處,有著具體解決方法的案例,使我們對自己的職業生涯有著更進一步的理解。
2.希望在課上能夠系統性地學習當下一門主流技術的發展趨勢的特點,能夠更深入地理解技術本身的優點、局限性、內在價值、應用場景,并且掌握快速學會并上手應用一門技術的方法。
3.能夠獨立完成一款軟件,參與一款軟件制定計劃、需求分析、軟件設計、程序編寫、軟件測試和運行維護全過程。
3.學習路線(自制)
4.git作業提交
附:倉庫地址
總結
以上是生活随笔為你收集整理的软件工程第一次作业作业的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ios软件测试兼职,【松勤软件测试】io
- 下一篇: 三端集成稳压器的问题(78L05/78M