期权知识 第604页

  • awk 入门教程

    awk 入门教程

    awk是处理文本文件的一个应用程序,几乎所有 Linux 系统都自带这个程序。 它依次处理文件的每一行,并读取里面的每一个字段。对于日志、CSV 那样的每行格式相同的文本文件,awk可能是最方便的工具。 awk其实不仅仅是工具软件,还是一种编程语言。不过,本文只介绍它的命令行用法,对于大多数场合,应该足够用了。 一、基本用法 awk的基本用法就是下面的形式。 # 格式 $ awk 动作 文件名 # 示例 $ awk '{print $0}' demo.txt 上面示例中,demo.txt是...

    期权知识 2020-08-18 459 0
  • 异步 API 的设计

    异步 API 的设计

    网站的前后端通信,往往会有异步请求,这时应该怎么设计 API? 我最近读到一篇文章,作者介绍了他的做法,设计得很精细,我觉得值得借鉴,可以当作异步 API 的标准设计。 一、同步 API 为了便于比较,先看看同步 API 的设计。下面是一个很简单的例子。 客户端发出一个请求,要求创建资源。 POST https://api.service.io/stars name='Death Star' 服务器回应 201。 HTTP/1.1 201 Created Location: /sta...

    期权知识 2020-08-18 512 0
  • git bisect 命令教程

    git bisect 命令教程

    git bisect是一个很有用的命令,用来查找哪一次代码提交引入了错误。 它的原理很简单,就是将代码提交的历史,按照两分法不断缩小定位。所谓"两分法",就是将代码历史一分为二,确定问题出在前半部分,还是后半部分,不断执行这个过程,直到范围缩小到某一次代码提交。 本文通过一个实例,解释如何使用这个命令。下面是一个代码库,请将它克隆到本地。 $ git clone git@github.com:bradleyboy/bisectercise.git $ cd bisectercise 这个库是一个网...

    期权知识 2020-08-18 468 0
  • 数据库表连接的简单解释

    数据库表连接的简单解释

    关系型数据库最难的地方,就是建模(model)。 错综复杂的数据,需要建立模型,才能储存在数据库。所谓"模型"就是两样东西:实体(entity)+ 关系(relationship)。 实体指的是那些实际的对象,带有自己的属性,可以理解成一组相关属性的容器。关系就是实体之间的联系,通常可以分成"一对一"、"一对多"和"多对多"等类型。 在关系型数据库里面,每个实体有自己的一张表(table),所有属性都是这张表的字段(field),表与表之间根据关联字段"连接"(join)在一起。所以,表的连接是关系型...

    期权知识 2020-08-18 432 0
  • 找回密码的功能设计

    找回密码的功能设计

    所有需要登录的网站,都会提供"找回密码"的功能,防止用户忘记密码。 正确设计这个功能,保证安全可靠,并不简单。下面就是安全专家 Troy Hunt 给出的设计指南。 一、如何保存密码 一个网站要想保证密码安全,第一步就是以正确的方法保存密码。一般说来,密码有三种保存方式。 (1)明文保存 "明文保存"就是用户的密码原文不动地写入数据库。这种方式最不安全,极易泄漏,应该严格禁用。 (2)加密保存 "加密保存"就是使用密钥,将密码加密后,以密文保存进数据库。这种方式虽然有一定的安全性,但是终究还是...

    期权知识 2020-08-18 501 0
  • ORM 实例教程

    ORM 实例教程

    一、概述 面向对象编程和关系型数据库,都是目前最流行的技术,但是它们的模型是不一样的。 面向对象编程把所有实体看成对象(object),关系型数据库则是采用实体之间的关系(relation)连接数据。很早就有人提出,关系也可以用对象表达,这样的话,就能使用面向对象编程,来操作关系型数据库。 简单说,ORM 就是通过实例对象的语法,完成关系型数据库的操作的技术,是"对象-关系映射"(Object/Relational Mapping) 的缩写。 ORM 把数据库映射成对象。 数据库的表(tab...

    期权知识 2020-08-18 453 0
  • 敏捷开发入门教程

    敏捷开发入门教程

    敏捷开发(agile development)是非常流行的软件开发方法。据统计,2018年90%的软件开发采用敏捷开发。 但是,到底什么是敏捷开发,能说清的人却不多。本文尝试用简洁易懂的语言,解释敏捷开发。 一、迭代开发 敏捷开发的核心是迭代开发(iterative development)。敏捷一定是采用迭代开发的方式。 那么什么是"迭代开发"呢?迭代的英文是 iterative,直译为"重复",迭代开发其实就是"重复开发"。 对于大型软件项目,传统的开发方式是采用一个大周期(比如一年)进行开发...

    期权知识 2020-08-18 428 0
  • 普通人的网页配色方案

    普通人的网页配色方案

    网页需要配色。一种好看、易用、符合心意的配色,是很不容易的,尤其在没有设计师时。 一、Flat UI 色表 最简单的方法是,从一个给定的色表选择颜色。我以前就是这样,主要根据 Flat UI 的色表配色。 这个色表提供20种颜色(其实是10种,每种颜色有深和浅两个色调),对于简单的网页,基本够用了。实际效果可以参考 Flat UI 官网。 二、香港地铁色表 后来,我听说香港地铁的每个车站,颜色都不一样。比如,中环是红色。 金钟是蓝色,北角是橙色。 这就是有名的香港地铁配色,目...

    期权知识 2020-08-18 557 0
  • CSS Grid 网格布局教程

    CSS Grid 网格布局教程

    一、概述 网格布局(Grid)是最强大的 CSS 布局方案。 它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局。以前,只能通过复杂的 CSS 框架达到的效果,现在浏览器内置了。 上图这样的布局,就是 Grid 布局的拿手好戏。 Grid 布局与 Flex 布局有一定的相似性,都可以指定容器内部多个项目的位置。但是,它们也存在重大区别。 Flex 布局是轴线布局,只能指定"项目"针对轴线的位置,可以看作是一维布局。Grid 布局则是将容器划分成"行"和"列",产生单元格,然后指定...

    期权知识 2020-08-18 589 0
  • OAuth 2.0 的一个简单解释

    OAuth 2.0 的一个简单解释

    OAuth 2.0 是目前最流行的授权机制,用来授权第三方应用,获取用户数据。 这个标准比较抽象,使用了很多术语,初学者不容易理解。其实说起来并不复杂,下面我就通过一个简单的类比,帮助大家轻松理解,OAuth 2.0 到底是什么。 一、快递员问题 我住在一个大型的居民小区。 小区有门禁系统。 进入的时候需要输入密码。 我经常网购和外卖,每天都有快递员来送货。我必须找到一个办法,让快递员通过门禁系统,进入小区。 如果我把自己的密码,告诉快递员,他就拥有了与我同样的权限,这样好像不太合...

    期权知识 2020-08-18 500 0