WebKong的网络日志

分享工作中的所用、所想、所感。

事出有因

昨天跟同事讨论我们在用的rap2(一个集接口编写和 mock server 的开源项目)和刚上线了一个 easy-mock 的 server,到底哪个好用。

我们主要讨论的点有个两个: 接口的一致性、 编码的无侵入性。

阅读全文 »

What is pwa?

Progressive Web App, 简称 PWA,是提升 Web App 的体验的一种新方法,能给用户原生应用的体验。

PWA 能做到原生应用的体验不是靠特指某一项技术,而是经过应用一些新技术进行改进,在安全、性能和体验三个方面都有很大提升,PWA 本质上是 Web App,借助一些新技术也具备了 Native App 的一些特性,兼具 Web App 和 Native App 的优点。

技术依赖:

  • Service Worker
  • Web storage(IndexedDB, Caches)
  • Fetch
  • Promises
阅读全文 »

场景 1: 单 Ubuntu 系统安装, 整个磁盘已经格式化, 安装到最后的时候,会出现无法安装引导到/target/,导致安装失败
场景 2: 安装成功,但是重启进入 grub rescue
场景 3: 安装成功,重启进去黑屏光标界面,无法正常重启

阅读全文 »

老骥伏枥,志在千里

Fetch 是一个现代的概念, 等同于 XMLHttpRequest。它提供了许多与XMLHttpRequest相同的功能,但被设计成更具可扩展性和高效性。

阅读全文 »

floor()

1
2
3
4
// 向下取整
Math.floor(2.1) // 2
Math.floor(2.6) // 2
Math.floor(-2.6) // -3

ceil()

1
2
3
4
5
// 向上取整
Math.ceil(2.1) // 3
Math.ceil(2.6) // 3
Math.ceil(-2.1) // -2

round()

1
2
3
4
Math.round(3.14) //3
Math.round(3.5) //4
Math.round(-3.14) //-3
Math.round(-3.5) //-3

针对 git 提交,做出如下规范,避免出现提交描述不清楚,回溯困难。

1.必须先拉取代码再提交代码

1
2
3
4
git pull
#或者
git fetch
git rebase

避免出现不必要的自动merge,和冲突代码

2.提交代码原则(粒度)

项目代码稳定之后(总体架构完成),每次提交都要考虑提交的粒度问题,尽量做到 baby step

  • 没有关联的代码不能一次 commit 提交
  • 关联代码一次提交;若内容很多,可内部分层,依次提交

可以根据当前代码模块情况处理。

3.必须提交 Commit Message

  • 没有 Commit Message 不允许提交
  • 不在 git commit 上增加 -m <msg> 或 --message=<msg> 参数,而单独写提交信息

不允许

1
git commit -m "Fix login bug"

推荐

angular 的 GitHub 的 Commit

1
2
3
4
5
6

Fix(filterFilter): fix filtering using an object expression when the …
…filter value is undefined

Fixes #10419
Closes #10424

段落 Commit Message

Commit Message 分三个部分, header, body, footer. 其中,header 是必需的,body 和 footer 可以省略。
不管是哪一个部分,任何一行都不得超过 100 个字符,以免影响阅读性。

1
2
3
4
5
[<team>]<type>(<scope>): <subject>

<body>

<footer> 
1
2
3
[FE]Fix(card): fix card edit support to unuse item

在card修改里面,添加设置item未使用的功能

Header 部分只有一行,包括三个字段:type(必需)、scope(可选)、team(可选)和 subject(必需)。

type

用于说明 commit 的类别,只允许使用下面 7 个标识。

Add:新加功能

Fix:修补bug

Modify:移除无用代码

Remove:移除第三方模块或者移除文件

Update:更新第三方模块

Style: 格式(不影响代码运行的变动)

Chore:构建过程或辅助工具的变动
scope

scope 用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。

例如在 shrezone,可以是 file, card, image, short_video 等。

如果你的修改影响了不止一个 scope,你可以使用*代替。

team

当不同的 team 一起编写代码的时候,带 team 以区分工作区域

subject

subject 是 commit 目的的简短描述,不超过 50 个字符。

其他注意事项:

以动词开头,使用第一人称现在时,比如change,而不是changed或changes

第一个字母小写

结尾不加句号(.)

Body

Body 部分是对本次 commit 的详细描述,可以分成多行。

比如 react 的提交

1
2
3
4
5
Sync out another jsx transform test.

We added this test internally and it never got added here. We haven't broken it
with any transforms *yet* but it's still good to actually run all of our tests
here too.

注意点:

使用第一人称现在时,比如使用change而不是changed或changes。

要和header之间有一个空行

应该说明代码变动的动机,以及与以前行为的对比。

Footer 部分只用于以下两种情况:

不兼容变动

如果当前代码与上一个版本不兼容,则 Footer 部分以 BREAKING CHANGE 开头,后面是对变动的描述、以及变动理由和迁移方法。

关闭 Issue

如果当前 commit 针对某个 issue,那么可以在 Footer 部分关闭这个 issue 。

Revert

一种特殊情况,如果当前 commit 用于撤销以前的 commit,则必须以 revert:开头,后面跟着被撤销 Commit 的 Header。

1
2
3
revert: feat(pencil): add ‘graphiteWidth‘ option

This reverts commit 667ecc1654a317a13331b17617d973392f415f02

参考:
https://developer.apple.com/

集合中存储相同类型的不同值, 集合中没有定义的顺序。当项目的顺序不重要时,或者当您需要确保某个项目只显示一次时,可以使用集合而不是数组。set中的值是unique的。

阅读全文 »

原文:

http://www.runoob.com/swift/swift-dictionaries.html
https://developer.apple.com/

Swift 字典用来存储无序的相同类型数据的集合,Swift 字典会强制检测元素的类型,如果类型不同则会报错。
Swift 字典每个值(value)都关联唯一的键(key),键作为字典中的这个值数据的标识符。
和数组中的数据项不同,字典中的数据项并没有具体顺序。我们在需要通过标识符(键)访问数据的时候使用字典,这种方法很大程度上和我们在现实世界中使用字典查字义的方法一样。
Swift 字典的key没有类型限制可以是整型或字符串,但必须是唯一的。
如果创建一个字典,并赋值给一个变量,则创建的字典就是可以修改的。这意味着在创建字典后,可以通过添加、删除、修改的方式改变字典里的项目。如果将一个字典赋值给常量,字典就不可修改,并且字典的大小和内容都不可以修改。

阅读全文 »