如何优雅的使用mock server
事出有因
昨天跟同事讨论我们在用的rap2(一个集接口编写和 mock server 的开源项目)和刚上线了一个 easy-mock 的 server,到底哪个好用。
我们主要讨论的点有个两个: 接口的一致性、 编码的无侵入性。
场景 1: 单 Ubuntu 系统安装, 整个磁盘已经格式化, 安装到最后的时候,会出现无法安装引导到/target/,导致安装失败
场景 2: 安装成功,但是重启进入 grub rescue
场景 3: 安装成功,重启进去黑屏光标界面,无法正常重启
针对 git 提交,做出如下规范,避免出现提交描述不清楚,回溯困难。
1 | git pull |
避免出现不必要的自动merge,和冲突代码
项目代码稳定之后(总体架构完成),每次提交都要考虑提交的粒度问题,尽量做到 baby step
可以根据当前代码模块情况处理。
git commit 上增加 -m <msg> 或 --message=<msg> 参数,而单独写提交信息不允许
1 | git commit -m "Fix login bug" |
推荐
angular 的 GitHub 的 Commit
1 |
|
Commit Message 分三个部分, header, body, footer. 其中,header 是必需的,body 和 footer 可以省略。
不管是哪一个部分,任何一行都不得超过 100 个字符,以免影响阅读性。
1 | [<team>]<type>(<scope>): <subject> |
1 | [FE]Fix(card): fix card edit support to unuse item |
Header 部分只有一行,包括三个字段:type(必需)、scope(可选)、team(可选)和 subject(必需)。
用于说明 commit 的类别,只允许使用下面 7 个标识。
Add:新加功能
Fix:修补bug
Modify:移除无用代码
Remove:移除第三方模块或者移除文件
Update:更新第三方模块
Style: 格式(不影响代码运行的变动)
Chore:构建过程或辅助工具的变动
scope 用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。
例如在 shrezone,可以是 file, card, image, short_video 等。
如果你的修改影响了不止一个 scope,你可以使用*代替。
当不同的 team 一起编写代码的时候,带 team 以区分工作区域
subject 是 commit 目的的简短描述,不超过 50 个字符。
其他注意事项:
以动词开头,使用第一人称现在时,比如change,而不是changed或changes
第一个字母小写
结尾不加句号(.)
Body 部分是对本次 commit 的详细描述,可以分成多行。
比如 react 的提交
1 | Sync out another jsx transform test. |
注意点:
使用第一人称现在时,比如使用change而不是changed或changes。
要和header之间有一个空行
应该说明代码变动的动机,以及与以前行为的对比。
Footer 部分只用于以下两种情况:
如果当前代码与上一个版本不兼容,则 Footer 部分以 BREAKING CHANGE 开头,后面是对变动的描述、以及变动理由和迁移方法。
如果当前 commit 针对某个 issue,那么可以在 Footer 部分关闭这个 issue 。
一种特殊情况,如果当前 commit 用于撤销以前的 commit,则必须以 revert:开头,后面跟着被撤销 Commit 的 Header。
1 | revert: feat(pencil): add ‘graphiteWidth‘ option |
集合中存储相同类型的不同值, 集合中没有定义的顺序。当项目的顺序不重要时,或者当您需要确保某个项目只显示一次时,可以使用集合而不是数组。set中的值是unique的。
原文:
http://www.runoob.com/swift/swift-dictionaries.html
https://developer.apple.com/
Swift 字典用来存储无序的相同类型数据的集合,Swift 字典会强制检测元素的类型,如果类型不同则会报错。
Swift 字典每个值(value)都关联唯一的键(key),键作为字典中的这个值数据的标识符。
和数组中的数据项不同,字典中的数据项并没有具体顺序。我们在需要通过标识符(键)访问数据的时候使用字典,这种方法很大程度上和我们在现实世界中使用字典查字义的方法一样。
Swift 字典的key没有类型限制可以是整型或字符串,但必须是唯一的。
如果创建一个字典,并赋值给一个变量,则创建的字典就是可以修改的。这意味着在创建字典后,可以通过添加、删除、修改的方式改变字典里的项目。如果将一个字典赋值给常量,字典就不可修改,并且字典的大小和内容都不可以修改。