github连接 git
项目 | 内容 |
---|---|
这个做业属于哪一个课程 | https://edu.cnblogs.com/campus/buaa/BUAA_SE_2020_LJ |
这个做业的要求在哪里 | https://edu.cnblogs.com/campus/buaa/BUAA_SE_2020_LJ/homework/10466) |
我在这个课程的目标是 | 提高软件开发能力 |
这个做业在哪一个具体方面帮助我实现目标 | 提高了我的编程能力, 测试和提高代码性能的能力 |
PSP2.1 | Personal SoftWare Process Stages | 预计耗时 | 实际耗时 |
---|---|---|---|
Planning | 计划 | 120 | 60 |
Estimte | 估计这个任务须要多少时间 | 1800 | 1700 |
Development | 开发 | 1100 | 1000 |
Analysis | 需求分析 | 0 | 0 |
Desing Spaec | 生成设计文档 | 100 | 40 |
Design Review | 设计复审 | 100 | 10 |
Coding Standard | 代码规范 | 0 | 0 |
Design | 具体设计 | 60 | 40 |
Coding | 具体编码 | 1100 | 180 |
Code Review | 代码复审 | 60 | 60 |
Test | 测试 | 180 | 180 |
Reporting | 报告 | 100 | 120 |
Test Report | 测试报告 | 0 | 0 |
Size Measurement | 计算工做量 | 5 | 0 |
Postmortem & Process Improvement | 过后总结 | 60 | 50 |
- | 合计 | 1800 | 1700 |
通过查阅资料和学习, 我了解到在接口设计中有经常使用的一些原则, 本次做业的设计中, 咱们用到了这些原则。github
单一职责原则编程
Single Responsibility Principle: There shuld never be more than one reason for class to change函数
单一职责原则要求一个接口, 一个功能, 若是在private 方法和public接口中, 改动过多, 那么容易引发错误。 在结对编程的设计中, 计算模块里咱们尽可能保证一个函数只作一个事情, 好比Line Circle Point分出三个类, 每一个求交点的函数只处理一种类型等。性能
里氏替换原则学习
Liskov Substitution Principle: Functions that use pointers or references to base classed must be able to use objecsts of derived classes without knowing it测试
这一法则是多态的体现, 全部父指针的使用点均可以用子指针, 这要求了子类只扩展父类, 可是不能够用在覆写父类函数的时候让函数的应用范围减小。 在最初的版本中, 咱们采用了Line Circle继承父类的方式实现, 后来发现这种继承影响性能, 就放弃了继承。编码
依赖倒置原则设计
依赖倒转原则是TDD测试驱动开发的体现, 要求高层模块不依赖特定的底层模块, 而是依赖其抽象, 这要求编程者提早想好接口。指针
接口隔离原则
clients should not be forced to depend upon interfacess that they don't use
保证接口单一, 不要过于臃肿, 在计算模块和UI模块的对接时, 咱们尽可能细化接口, 让模块的每一个按钮对应了恰好一个接口, 同时接口之间的功能达到了隔离。
迪米特法则
law of Demeter: least knowledge
loose coupling: Loose coupling means they mostly independent
这一原则要求两个类之间要低耦合, 达到loose coupling, 一个类不须要知道另外一个类是怎么实现的, 更不须要由于一个类内部代码的修改二更改本身的方法。 在咱们的结对编程中, 为了实现接口的高效对接, 对于接口进行和抽象和封装