《构建之法》——GitHub和Visual Studio的基础使用
git地址 | https://github.com/microwangwei |
git用户名 | microwangwei |
学号后五位 | 62214 |
博客地址 | https://www.cnblogs.com/westweishao/ |
作业链接 | https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesign/homework/7584 |
声明:
本次博客部分排版以及内容参考了一些博客
博客地址:https://www.cnblogs.com/ChildishChange/p/10398212.html
https://www.cnblogs.com/harry240/p/11515697.html
Part 0. 背景
阿超家里的孩子上小学一年级了,这个暑假老师给家长们布置了一个作业:家长每天要给孩子出一些合理的,但要有些难度的四则运算题目,并且家长要对孩子的作业打分记录。
作为程序员的阿超心想,既然每天都需要出题,那何不做一个可以自动生成小学四则运算题目与解决题目的命令行 “软件”呢。他把老师的话翻译一下,就形成了这个软件的需求:
程序接收一个命令行参数 n,然后随机产生 n 道加减乘除(分别使用符号+-*/来表示)练习题,每个数字在 0 和 100 之间,运算符在 2 个 到 3 个之间。由于阿超的孩子才上一年级,并不知道分数。所以软件所出的练习题在运算过程中不得出现非整数,比如不能出现 3÷5+2=2.6 这样的算式。
练习题生成好后,将生成的 n 道练习题及其对应的正确答案输出到一个文件 subject.txt 中。
Part 1. 配置环境
Visual Studio (简称VS)是微软公司旗下最重要的软件集成开发工具产品。是目前最流行的 Windows 平台应用程序开发环境,也是无数人学习编程的入门软件之一。Visual Studio 可以用来创建 Windows 平台下的 Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件,目前还可开发安卓平台应用及IOS平台应用。
1.百度云下载Visual Studio2017
(Visual Studio2017百度网盘下载地址:pan.baidu.com/s/1_HycbxXqRfptMYEaho02bg 提取密码:srpx )
2.详细安装步骤关注后面的内容
(1)打开安装软件中的Visual Studio Installer
(2)选择我们需要安装的组件,这里由于我是学过一点java,c#,python的所以我安装了和这几个相关的组件
(3)等待安装完成后,打开Visual Studio2017,点击c#控制台应用
(4)创建一个简单的c#代码程序
(5)正如大家都知道,在学C语言的时候我们写的第一个程序,这里也是写了一个Hello world。
Tips: 这里强烈给大家安利一个微信公众号:软件安装管家,这里面有很多需要的软件,例如ps、pr、Linux、Windows以及一些编程软件等,每一个软件都给出了百度网盘的下载地址,后台回复想要安装的软件名字,就会有详细的安装步骤。
Part 2. 克隆项目
一.关于GitHub的申请
(1)在 https://github.com/join 这个网址处申请注册一个 Github 账号
(2)申请成功以后,登录进入GitHub
(3)登录完成界面。
二.克隆项目到自己的仓库
(1)输入阿超仓库的网址 https://github.com/ChildishChange/Calculator
(2)点击右上角的 Fork
,将阿超的四则运算库拷贝到自己的同名仓库中,如下图所示:
注意:由于班级的特殊要求,因此仓库发生了变化,班级仓库地址 https://github.com/Cherish599/AchaoCalculator(具体步骤和上面是一样的)
三.Git安装以及与Visual Studio2017共同配合使用
(1)在自己的电脑上安装 Git 软件,Git 的安装教程在这里。
(2)在 我的电脑 中任意找一个目录,打开 Git 命令行软件(Windows上可在空白处右键打开 Git Bash ),输入 git clone <clone url>
,其中 <clone url>
即我们刚刚复制的项目地址。(这里 https://github.com/microwangwei/AchaoCalculator.git 就是我们 Fork 后仓库的地址):
(3)进入刚刚下好的项目,然后按照班级要求新建了一个文件夹以GitHub账号命名。
(4)以 Github 账号命名的文件夹作为项目目录,打开 VS2017(我的是最新版2019的),点击左上角的 文件
-> 新建
-> 项目
,如下图所示,选择 Visual C#
中的 控制台应用程序
。注意更改 位置
参数到刚刚新建的文件夹所在的路径。比如我的账户名为 microwangwei ,刚刚新建的文件夹路径为E:\GitHub project\AchaoCalculator\microwangwei,解决方案的名称也可以是 Calculator
,自定义即可。
(5)新建项目后会出现一些默认的头文件。找到与解决方案同名的文件,比如解决方案为 ConsoleApplication1
,那么会有一个名叫 ConsoleApplication1.cpp
的文件。将 src
目录下 Calculator.cpp
文件的内容拷贝到该文件中。右键点击 头文件
,新建一个头文件,修改名称为 Calculator.h
,并将 src
目录下 Calculator.h
文件的内容拷贝到新的头文件中。此时,右键点击 Calculator
解决方案,选择 编译解决方案
,成功后点击 即可运行,示意图如下:
(6)提交
注:该项参考博客地址 https://www.cnblogs.com/ChildishChange/p/10398212.html (具体内容可以到大佬的博客中查看)
对于Github平台有疑问的,可以在 http://github.com/help 找到解决方案。
注意:本次实验过程中代码的提交采用GitHub提交方式,未采用Git命令提交。
这里附上部分四则运算代码(写的比较简陋,但是目前只能做到这么多):
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Calculator { class Program { static void Main(string[] args) { Console.Write("Please input how many question you want:"); int n = int.Parse(Console.ReadLine()); string[] s1 = { "+", "-", "*", "/" }; string[] s2 = { "*", "/" }; for (int i = 0; i < n;) { Random B= new Random(Guid.NewGuid().GetHashCode()); Random A = new Random(Guid.NewGuid().GetHashCode()); double a = A.Next(0, 100); double b = A.Next(0, 100); double c = A.Next(0, 100); int x = B.Next(0, 2); int y = B.Next(0, 4); double sum = 0; switch (x) { case 0: sum = a * b; break; case 1: sum = a / b; break; } if (sum == (int)sum) { switch (y) { case 0: sum = sum + c; break; case 1: sum = sum - c; break; case 2: sum = sum * c; break; case 3: sum = sum / c; break; } if (sum == (int)sum&&sum>=0&&sum<=10000) { Console.WriteLine(a + s2[x] + b + s1[y] + c + "=" + sum); i++; } } } Console.ReadKey(); } } }
运行效果截图
Part 3. 单元测试
《构建之法》一书中单元测试这章节提到了一个合格的单元测试应满足的条件
·单元测试应该满足在最基本功能/参数上验证程序的正确性
·单元测试过后,机器状态保持不变
·单元测试应该产生可重复、一致的结果
·单元测试应该覆盖所有的代码路径
·单元测试应该集成到自动测试的框架当中
·单元测试必须和产品代码一起保存和维护
要想在 VS20179里对 C# 项目进行单元测试,首先要新建一个测试项目。右键单击解决方案,可以添加一个新建项目,在类型里选择 单元测试
,我们这里新建了一个名为 CalculatorUnitTest
的单元测试项目。
接着右键点击测试项目选择属性
然后更改一些配置、依赖,添加一些东西,即可完成
问题:当我把上面的步骤写完之后发现没有配置属性等选项,查看百度还有博客后发现,那是c++里面的,c#中没有。但是c#可以直接右键单击创建单元测试,因此,可以通过单独创建来检验,但是发现在右键选项中没有,查阅资料找到方法
点击工具---->自定义
然后选择命令——>上下文菜单,然后点击tfs选择编辑上下文|代码窗口
把创建单元测试的选项,上移到运行测试附近,这样就可以看到创建单元测试选项了
创建单元测试选项,测试代码
最后编写测试代码,验证代码是否编写成功,得出验证代码运行成功
Part 4. 基本操作
下面为大家演示一些这个IDE集成开发环境的一些基本操作
1.断点以及单步执行
右键设置断点
单机Windows解决方案,运行查看效果
设置监视哨,可以单步执行,查看变量值得变化
2.反汇编代码查看
设置断点运行程序,右键选项反汇编
查看反汇编的代码,更容易理解代码的执行过程,也可以在内存中查看某个变量的地址和值(以16进制显示)
Part 5. 回归测试
本人理解的回归测试,就是当对一个系统或者软件更新升级或者添加新功能后,重新测试代码。为了验证是否引入了新的错误,或者版本升级后是否出现一些代码、功能无法实现的情况。
百度百科解释回归测试为: (具体内容参加百度百科:回归测试)
Part 6. 效能工具介绍
一.效能分析概念
效能分析:让程序跑得又快又好
意义:在一个程序中,优化一些耗费量大的代码,可以让软件的性能得到更好的优化
工具:Visual Studio 2019
分析方法
1.抽样法
当程序运行时,IDE工具记录程序的运行情况,输出程序运行时间的分布情况
2.注入代码
将检测的代码插入到每一个函数中,记录程序的一举一动,精确的测量程序的各个效能数据
二.工具介绍
1.点击顶部分析,可以看到性能查探器
2.选择CPU使用率
分析完成(由于四则运算这个程序代码较少,所以观察到的比较简单,当有1000000行需要进行分析的数据之后,运行几十秒后,数据会更直观地体现在上面)
一开始也是没能成功,经查看原来是少安装了一个组件,安上之后重启,Windows诊断成功
Part 7. 提交代码
1.首先找到代码所在的文件夹,和GitHub仓库所在的本地位置
然后把自己的代码放入仓库中
打开GitHub desktop选择需要上传的文件夹
登录查看是否上传成功
在仓库里面发现上传的文件,上传代码成功
最后,我想要说在整个环境的安装和配置过程中,遇到了很多问题,有的上网查了,有的问了同学,参考了被人的博客是如何解决这个问题的,出现了很多问题,就算是同样的操作也会由于电脑或者软件一些不同的环境导致不同的结果。
但是遇到这些问题,在解决的过程我也学到了很多知识,也看到了很多人写的博客,我现在的博客和他们的差距还是很大的,不管是从描述操作还是在代码编写上。也有点学会了GitHub的使用。
还是要多看看大佬的博客,多实际动手操作,不然连Hello World都快要写不出来了。