686
社区成员




这个作业属于哪个课程 | 2023年福大-软件工程实践-W班 |
---|---|
这个作业要求在哪里 | 软件工程实践寒假作业 |
这个作业的目标 | 准备工作、回首过去、立足当下、展望未来、学习路线 |
其他参考文献 | 《构建之法》 |
建立一个public代码仓库,使用git上传一个代码文件。
自初中以来我便对计算机有浓厚的兴趣,曾经加入了学校的计算机兴趣班学习 Pascal 语言,这算是我计算机的启蒙。
高中以来,我开始学习其他编程语言,开始探索自己最喜欢的方向。我还不拘泥于软件,偶尔也会涉猎硬件知识。
经过三年的探索,我逐渐明确了方向──软件开发,尤其是全栈开发。于是,高考填报志愿时我便毫不犹豫地选择了软件工程专业。
在入学前,我期待着软件工程专业可以让我接触到更多前沿技术,能让我学习更多行业主流技术。
同时,我希望能通过四年的学习与实战掌握业务能力,并亲手做出令我自己满意的项目。
我不是一个喜欢定下长久计划的人,因此我给自己粗略地定下了一个目标:每个学期要利用课余时间学习几门新语言,不求精通,暂求涉猎。我希望能尽快找到我最喜欢的那份技术,并深入学习。
为实现目标,我每个学期都会开几个坑,尝试一边学习一边填坑,逐步提升自己的代码能力。
我认为,一个足够优秀的程序员至少要具备独立解决问题的能力与与他人协作的能力。独立解决问题体现在他可以通过查找搜索引擎等方法来解决当前面临的未知的或较困难的问题;与他人协作则是可以将自己的问题暴露出来、不懂就问的能力。
在我的体验中,由于单元测试具有高度自动化的特性,在一次编写之后,无需人员干涉便可自动对代码进行测试,可以有效地防止修改/新增代码带来新的 bug。
假如项目过于庞大,我会考虑将项目切分为几个互不干涉(解耦)的模块,对每个模块分开编写单元测试。这样在修改某个模块的代码之后,仅需运行对应模块的单元测试即可发现问题,并节约时间。
我认为单元测试还是应该由编写这段代码的人来完成。
可以参考“测试驱动开发” 的思想,在编写函数之前先写函数的单元测试。
作为当今社会的程序员,其任务早已不是局限在我所负责的那一小块内容里。由于敏捷开发的推广,程序员经常变动岗位,可能今天做开发,明天就去做测试了,对知识的需求量很大。
我认为学习开发应当以广为主,并一某一方向专精为辅,才可以更好地发挥作用。
我不认为追求极致都会带来“偏离正轨”的后果。
在我的体验中,倘若在编码时不拘小节,例如不写类型、不用异常处理,等到调试的时候将付出编码数倍的时间来修正各种本应避免的问题。
我觉得在编码的时候就尽可能注意每一个细节,虽然可能会多花一些时间,但最终可以有效减少浪费在修改 bug 的时间,综合下来是提高效率的。
在我体验上看,极限测试虽然偏向极端,但只要运用合理,确实可以避免一些比较罕见的 bug。
我认为,团队成员应当毫无保留地将自己遇到的问题将给团队的其他成员听。也许这是别人已经踩过的坑,自己就没有必要再踩一遍。
如果有任何学不来、办不到的情况,也不能在任务分配的时候随口答应,而是要对自己的能力有深刻了解,只接自己力所能及的活,不能等到要交差的时候再说我不行。
在我看来,敏捷开发要求产品迭代速度快、成员压力较大,并没有太多经历关注当前版本下的所有 bug。
可以将一些不太影响用户体验的 bug 留到之后的小版本中修正,而此刻先专心于开发手边的事情。
我计划成为一名全栈工程师。随着技术发展,我也许换转向研发 WASM 相关的软件。
对于编程语言方面,我认为这应该由我们自学完成。
我更期待这门课能教会我现代软件工程的设计思想、开发团队的协作策略和开发一款完成度高的软件所用到的各种技能,例如编写单元测试、使用 CI、管理多分支多版本的 Git 仓库等技能。
目前我最想学习的 Rust 语言,想使用 Tauri 框架编写一个能在桌面展示 GitHub 通知内容的插件。
是一个目标明确且很有干劲的同学呀,赞