WebKong的网络日志

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

0%

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没有类型限制可以是整型或字符串,但必须是唯一的。
如果创建一个字典,并赋值给一个变量,则创建的字典就是可以修改的。这意味着在创建字典后,可以通过添加、删除、修改的方式改变字典里的项目。如果将一个字典赋值给常量,字典就不可修改,并且字典的大小和内容都不可以修改。

阅读全文 »

参考:

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

Swift 数组使用有序列表存储同一类型的多个值。相同的值可以多次出现在一个数组的不同位置中。
Swift 数组会强制检测元素的类型,如果类型不同则会报错,Swift 数组应该遵循像Array这样的形式,其中Element是这个数组中唯一允许存在的数据类型。
如果创建一个数组,并赋值给一个变量,则创建的集合就是可以修改的。这意味着在创建数组后,可以通过添加、删除、修改的方式改变数组里的项目。如果将一个数组赋值给常量,数组就不可更改,并且数组的大小和内容都不可以修改。

阅读全文 »

Vue,越来越流行,因为它的易用性和良好的性能,随之而来的是vue-cli初始化项目,没有适用所有场景的模板,根据自己的业务场景初始化项目,才是最酷的。

阅读全文 »

搬运此文, 通过深度学习还检测图像中明显或者暗示性成人内容的 AWS 出品工具。

图像审核

问:什么是图像审核?

Amazon Rekognition 的图像审核是一种基于深度学习并且易于使用的 API,用于检测图像中的明显或暗示性成人内容。开发人员可以根据自己的业务需求,使用这种额外的元数据来筛选不当内容。除了根据存在的成人内容对图像进行标记之外,图像审核功能还会返回一个带有置信度的分级标签列表。这些标签会指明成人内容的具体类型,从而让开发人员能够进行更细化的控制,以便筛选和管理大量用户生成的内容 (UGC)。这一 API 可以用于社交和交友网站、相片分享平台、博客和论坛、儿童应用程序、电子商务网站、娱乐和在线广告服务等应用场景。

阅读全文 »