Skip to content

Latest commit

 

History

History
223 lines (91 loc) · 8.46 KB

question.md

File metadata and controls

223 lines (91 loc) · 8.46 KB

结对项目:博客问题清单

请将本文件在代码仓库外复制一份,一边阅读和完成结对项目、一边填写入代码仓库外的版本,或采取简记、语音备忘等方式记载较复杂问题的要点之后再补充。请不要将本文档内的作答提交到代码仓库。

Chapter.1 缠结的字节码(Bytecode Complex)

引入

→ 📖 Q1.1(P) 请记录下目前的时间。
→ 📖 Q1.2(P) 根据之前学习的专业课和各类开发经验,回答:为什么原生应用相较 Web app 更有快的印象?这样的“速度”又是如何达成的?
→ 📖 Q1.3(P) “要让 Web 生态、或者说一种雄心勃勃的软件运行环境的未来,受益于既有的‘原生’软件开发模式、技术栈和工具链,我们还缺少什么?”——你们的答案是?

结对过程

→ 📖 Q1.4(I) 作为本项目的调查:请如实标注在开始项目之前对 Wasm 的熟悉程度分级,可以的话请细化具体的情况。

I. 没有听说过;

II. 仅限于听说过相关名词;

III. 听说过,且有一定了解;

IV. 听说过,且使用 Wasm 实际进行过开发(即便是玩具项目的开发)。

→ 📖 Q1.5(P) 请在完成任务的同时记录,并在完成任务后整理完善:

完成编程任务期间,你和你的搭档依次做了什么,比如:

  1. 查阅了什么资料;
  2. 如何进行了开发;
  3. 遇到了什么问题,又通过什么方式解决。

编程语言选择

以下问题根据你选择的编程语言回答:例如,如果你选择 AssemblyScript,你只需要回答标记为 Q1.6.A.x 的问题。

AssemblyScript
→ 📖 Q1.6.A.1(P) AssemblyScript 与 JavaScript/TypeScript 有什么不同?
→ 📖 Q1.6.A.2(P) 执行 npm run asbuild 后,发生了什么?
Rust
→ 📖 Q1.6.R.1(P) 浏览 Cargo.toml,请问第 9 行的设置项中: crate-type="cdylib" 的作用是?可以从提供的参考文档当中寻找答案。
→ 📖 Q1.6.R.2(P) 浏览 lib.rs,请问第 3 行的属性(Attribute)注解#[wasm_bindgen] 的作用是?请尝试删除掉这一注解重新运行上面这条 wasm-pack 的编译和打包指令,检查删除前后 /pkg 内生成的文件发生的变化;并请参考提供的参考文档完善答案。
自选的编程语言
→ 📖 Q1.6.X.1(P) 选择该编程语言的原因是?
→ 📖 Q1.6.X.2(P) 为了完成相关编程任务,进行了哪些操作、使用了怎样的工具链?简要描述相关工具做了什么。

总结

→ 📖 Q1.7(P) 请记录下目前的时间。
→ 📖 Q1.8(I) 请写下本部分的心得体会。

Chapter.2 石子翻滚,晨光降临你身(Rock'n Roll, Morning Light Falls on You)

结对过程

→ 📖 Q2.1(P) 请记录下目前的时间。
→ 📖 Q2.2(P) 请在完成任务的同时记录,并在完成任务后整理完善:
  1. 浏览任务要求,参照 附录A:基于 PSP 2.1 修改的 PSP 表格,估计任务预计耗时;
  2. 完成编程任务期间,依次做了什么(比如查阅了什么资料,随后如何进行了开发,遇到了什么问题,又通过什么方式解决);

测试

→ 📖 Q2.3(P) 请说明针对该任务,你们设计和实现测试的方法及过程,包括但不限于:出于对需求的哪些考虑设计了哪些测试用例、如何评估所设计测试的有效性 等等。
→ 📖 Q2.4(I) 请说明单元测试对软件开发的作用。

总结

→ 📖 Q2.5(P) 请记录下目前的时间,并根据实际情况填写 附录A:基于 PSP 2.1 修改的 PSP 表格 的“实际耗时”栏目。
→ 📖 Q2.6(I) 请写下本部分的心得体会。

Chapter.3 十二进制的黄昏(Dusk of the Duodecimal System)

结对过程

→ 📖 Q3.1(P) 请记录下目前的时间。
→ 📖 Q3.2(P) 请在完成任务的同时记录,并在完成任务后整理完善:
  1. 浏览任务要求,参照 附录A:基于 PSP 2.1 修改的 PSP 表格,估计任务预计耗时;
  2. 完成编程任务期间,依次做了什么(比如查阅了什么资料,随后如何进行了开发,遇到了什么问题,又通过什么方式解决);

代码可复用性与需求变更

→ 📖 Q3.3(P) 请说明针对该任务,你们对 🧑‍💻 T2 中已实现的代码进行了哪些复用和修改。
→ 📖 Q3.4(I) 请说明在编码实现时,可以采取哪些设计思想、考虑哪些设计冗余,来提高既存代码适应需求变更的能力。

需求建模和算法设计

→ 📖 Q3.5(P) 请说明你们如何建模这一需求。
→ 📖 Q3.6(P) 请说明针对该任务,你们采取了哪些策略来取得更大的净胜棋数,如何编程实现这些策略。

软件度量

→ 📖 Q3.7(P) 请说明你们如何量度所实现的程序模块的有效性,例如:“如何说明我们的程序模块对弈能力很强?”,尝试提出一些可能的定量分析方式。

总结

→ 📖 Q3.8(P) 请记录下目前的时间,并根据实际情况填写 附录A:基于 PSP 2.1 修改的 PSP 表格 的“实际耗时”栏目。
→ 📖 Q3.9(I) 请写下本部分的心得体会。

结对项目总结

结对过程回顾和反思

→ 📖 Q4.1(P) 提供两人在讨论的结对图像资料。
→ 📖 Q4.2(P) 回顾结对的过程,反思有哪些可以提升和改进的地方。
→ 📖 Q4.3(I) 锐评一下你的搭档!并请至少列出三个优点和一个缺点。

对结对编程的理解

→ 📖 Q4.4(I) 说明结对编程的优缺点、你对结对编程的理解。

代码仓库

→ 📖 Q4.5(P) 请提供你们完成代码实现的代码仓库链接。

附录

附录A:基于 PSP 2.1 修改的 PSP 表格

Personal Software Process Stages 个人软件开发流程 预估耗时(分钟) 实际耗时(分钟)
PLANNING 计划
- Estimate - 估计这个任务需要多少时间
DEVELOPMENT 开发
- Analysis & Design Spec - 需求分析 & 生成设计规格(确定要实现什么)
- Technical Background - 了解技术背景(包括学习新技术)
- Coding Standard - 代码规范
- Design - 具体设计(确定怎么实现)
- Coding - 具体编码
- Code Review - 代码复审
- Test Design - 测试设计(确定怎么测,比如要测试哪些情景、设计哪些种类的测试用例)
- Test Implement - 测试实现(设计/生成具体的测试用例、编码实现测试)
REPORTING 报告
- Quality Report - 质量报告(评估设计、实现、测试的有效性)
- Size Measurement - 计算工作量
- Postmortem & Process Improvement Plan - 事后总结和过程改进计划(总结过程中的问题和改进点)
TOTAL 合计