作业一

# 作业一
## 1.1 markdown简单语法的使用

### 1.1.1 标题

* 使用 `#` 表示标题,一级标题使用一个 `#` ,二级标题使用两个 `##` ,以此类推,共有六级标题。
* 使用 `=====` 表示高阶标题,使用 `---------` 表示次阶标题。

1. `#` 和标题之间记得有个空格哦。
2. `====` 和 `----` 表示标题时,大于等于2个都可以表示。

### 1.1.2 引用

使用 `>` 表示引用, `>>` 表示引用里面再套一层引用,依次类推。

1. 如果 `>` 和 `>>` 嵌套使用的话,从 `>>` 退到 `>` 时,必须之间要加一个空格或者 `>` 作为过渡,否则默认为下一行和上一行是同一级别的引用。如示例所示。
2. 引用标记里可以使用其他标记,如:有序列表或无序列表标记,代码标记等。

示例

> 这是一级引用
>>这是二级引用
>>> 这是三级引用

>这是一级引用

### 1.1.3 代码块

使用3个连续的` 符号包围起来表示代码块。

1. 本文档所有使用讲解Markdown语法标记示例的地方都是使用代码块标记的。
2. 代码块前后都得有换行哦

示例

```
$(document).ready(function() {
$('pre code').each(function(i, block) {
hljs.highlightBlock(block);
});
});

```

### 1.1.4 行内代码

使用``表示行内代码。本页部分文字中间的英文字母就是使用行内代码标记标记的。

示例

这是 `javascript` 代码

#### 1.1.5 链接

使用 `[](link)` 表示行内链接。其中:

* `[]` 内的内容为要添加链接的文字。
* `link` 为链接地址。

示例

[Markdown](https://appsto.re/cn/jK8Cbb.i)是个很方便的编辑器。

### 1.1.6 数学公式

`$`包围的区块将会解析为数学公式,连续的`$$`将独占一行并居中显示

示例

当 $a \ne 0$, 此方程式有两个解 $ax^2 + bx + c = 0$,他们是

$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$


### 1.1.7 导入图片

使用 `![Alt text](/path/to/img.jpg)` 导入图片。其中:

* `Alt text` 为如果图片无法显示时显示的文字;
* `/path/to/img.jpg` 为图片所在路径;

点击辅助键盘中的添加图片按钮可快捷添加图片
1. ==本地引用==是图片直接存储到本地通过相对路径引用,无需网络连接
2. ==上传图片==将把图片上传至图床,这样在文档或图片移动时认可访问图片

示例

![Markdown](https://i.loli.net/2019/11/16/h4lWxQbjvUwN7XZ.jpg)

### 1.1.8 Todo List

小写x表示已完成, 空格表示未完成

- [x] 支持数学公式
- [x] 支持TodoList
- [x] 支持自定义样式
- [ ] 支持自定义图床

### 1.1.9 粗体,斜体,高亮和删除线

1. 使用 `**` 或者 `__` 表示**粗体**。
2. 使用 `*` 或者 `_` 表示*斜体*。
3. 使用`==`表示==高亮==
4. 使用`~~`表示~~删除~~
5. `*`,`=` 或 `_` 的后面**不要跟空格哦**

### 1.1.10 列表

使用 `1. 2. 3.` 表示有序列表,使用 `*` 或 `-` 或 `+` 表示无序列表。

1. 无序列表或有序列表标记和后面的文字之间要有一个空格隔开。
2. 有序列表标记不是按照你写的数字进行显示的,而是根据当前有序列表标记所在位置显示的,如示例1所示。
3. 无序列表的项目符号是按照实心圆、空心圆、实心方格的层级关系递进的,如例2所示。通常情况下,同一层级使用同一种标记表示,便于自己查看和管理。

#### 例1:有序列表

1. 第一点
2. 第二点
4. 第三点

#### 例2:无序列表

+ 一级无序列表内容
* 二级无序列表内容
- 二级无序列表内容
- 三级无序列表内容
- 三级无序列表内容
+ 一级无序列表内容
- 二级无序列表内容

### 1.1.11 分割线

使用 `---` 或者 `***` 或者 `* * *` 表示水平分割线。

1. 只要 `*` 或者 `-` 大于等于三个就可组成一条平行线。
2. 使用 `---` 作为水平分割线时,要在它的前后都空一行,防止 `---` 被当成标题标记的表示方式。

示例

---

***

* * *

### 1.1.12表格

上面空一行下面空两行

Heading | Heading | Heading
------- | ------- | -------
Cell | Cell | Cell
Cell | Cell | Cell

添加边框:

| Heading | Heading | Heading |
| ------- | ------- | ------- |
| Cell | Cell | Cell |
| Cell | Cell | Cell |

对齐方式:

Heading | Heading | Heading
:----- | :----: | ------:
Left | Center | Right
Left | Center | Right


## 1.2 对markdown看法

### 1.2.1

markdown 是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。

markdown 的语法简洁明了、学习容易,而且功能比纯文本更强,可便捷的用于写博客。用于编写说明文档,并且以“README.md”的文件名保存在软件的目录下面。除此之外,由于我们有了RStudio这样的编辑器,我们还可以快速将Markdown转化为演讲PPT、Word产品文档、LaTex论文甚至是用非常少量的代码完成最小可用原型。在数据科学领域,Markdown已经广泛使用,极大地推进了动态可重复性研究的历史进程。


## 1.3 第一章概述内容的读后感

### 1.3.1 可参考的讲义

《构建之法-现代软件工程》第三版

### 1.3.2 软件工程概述

软件工程是把系统的, 有序的, 可量化的方法应用到软件的开发, 运营, 和维护上的过程。

软件工程包括下列领域: 软件需求分析, 软件设计, 软件构建, 软件测试, 和软件维护.

软件工程和下列的学科相关: 计算机科学, 计算机工程, 管理学, 数学, 项目管理学, 质量管理, 软件人体工学, 系统工程, 工业设计, 和用户界面设计.

我们在开发,运营, 维护软件的过程中有很多技术, 做法, 习惯, 和思想体系。 软件工程把这些相关的技术和过程统一到一个体系中, 叫 “软件开发流程”,软件开发流程的目的是为了提高软件开发, 运营, 维护的效率;以及用户满意度, 可靠性,和软件的可维护性。

光有各种流程的思想是不够的, 我们还要有一系列的工具来保证这些思想能够在实践中有效率地运作。软件工具有很多, 有无数的独立软件工具, 例如编译工具, 源代码管理工具; 源代码编辑工具; 也有一些软件工具系统例如 Microsoft Visual Studio; Eclipse; ClearCase; ClearQuest等等。

### 1.3.3 软件工程‘bug’

简单的说, 软件的行为和用户的期望值不一样的话, 就叫bug.

bug 的多少可以直接衡量一个软件的开发效率, 用户满意度, 可靠性, 和可维护性。

### 1.3.4 关键思想总结
* 要用理论加实践的方法学习这门课程
* 强调做中学 (learning by doing)
* 程序是基本功,但除了程序外,软件工程决定了软件的命运。
* 软件工程的一个重要任务就是要决定一个软件在什么时候能“足够好”, 没有严重的“bug”,可以发布

posted @ 2020-02-16 11:58  ooger  阅读(306)  评论(0编辑  收藏  举报