期权学习 第595页

期权视频 资料下载 期权知识
  • Git 工作流程

    Git 工作流程

    Git 作为一个源码管理系统,不可避免涉及到多人协作。 协作必须有一个规范的工作流程,让大家有效地合作,使得项目井井有条地发展下去。"工作流程"在英语里,叫做"workflow"或者"flow",原意是水流,比喻项目像水流那样,顺畅、自然地向前流动,不会发生冲击、对撞、甚至漩涡。 本文介绍三种广泛使用的工作流程: Git flow Github flow Gitlab flow 如果你对Git还不是很熟悉,可以先阅读下面的文章。 《Git 使用规范流程》 《常用 Git...

    期权知识 2020-08-18 486 0
  • Unix目录结构的来历

    Unix目录结构的来历

    Unix(包含Linux)的初学者,常常会很困惑,不明白目录结构的含义何在。 举例来说,根目录下面有一个子目录/bin,用于存放二进制程序。但是,/usr子目录下面还有/usr/bin,以及/usr/local/bin,也用于存放二进制程序;某些系统甚至还有/opt/bin。它们有何区别? 长久以来,我也感到很费解,不明白为什么这样设计。像大多数人一样,我只是根据《Unix文件系统结构标准》(Filesystem Hierarchy Standard),死记硬背不同目录的区别。 昨天,我读到了Rob L...

    期权知识 2020-08-18 505 0
  • 网站的肥胖症危机

    网站的肥胖症危机

    最近,有一篇文章正在疯传。 它是上个月,Maciej Ceglowski在澳大利亚的一次演讲,名为《网站的肥胖症危机》(文本,视频),反思了互联网开发的现状。 该文非常值得一读,Hacker News排行榜高居榜首,得到了1000多人的推荐。 下面就是我的中文节译版。 =============================== 网站的肥胖症危机(节译版) 作者:Maciej Ceglowski 译者:期权记 原文网址:The Website Obesity Crisis 1. 大...

    期权知识 2020-08-18 516 0
  • 函数式编程初探

    函数式编程初探

    诞生50多年之后,函数式编程(functional programming)开始获得越来越多的关注。 不仅最古老的函数式语言Lisp重获青春,而且新的函数式语言层出不穷,比如Erlang、clojure、Scala、F#等等。目前最当红的Python、Ruby、Javascript,对函数式编程的支持都很强,就连老牌的面向对象的Java、面向过程的PHP,都忙不迭地加入对匿名函数的支持。越来越多的迹象表明,函数式编程已经不再是学术界的最爱,开始大踏步地在业界投入实用。 也许继"面向对象编程"之后,"函数式编程...

    期权知识 2020-08-18 451 0
  • Commit message 和 Change log 编写指南

    Commit message 和 Change log 编写指南

    Git 每次提交代码,都要写 Commit message(提交说明),否则就不允许提交。 $ git commit -m "hello world" 上面代码的-m参数,就是用来指定 commit mesage 的。 如果一行不够,可以只执行git commit,就会跳出文本编辑器,让你写多行。 $ git commit 基本上,你写什么都行(这里,这里和这里)。 但是,一般来说,commit message 应该清晰明了,说明本次提交的目的。 目前,社区有多种 Commit me...

    期权知识 2020-08-18 517 0
  • 互联网协议入门(一)

    互联网协议入门(一)

    我们每天使用互联网,你是否想过,它是如何实现的? 全世界几十亿台电脑,连接在一起,两两通信。上海的某一块网卡送出信号,洛杉矶的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗? 互联网的核心是一系列协议,总称为"互联网协议"(Internet Protocol Suite)。它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了互联网的原理。 下面就是我的学习笔记。因为这些协议实在太复杂、太庞大,我想整理一个简洁的框架,帮助自己从总体上把握它们。为了保证简...

    期权知识 2020-08-18 512 0
  • Linux 守护进程的启动方法

    Linux 守护进程的启动方法

    "守护进程"(daemon)就是一直在后台运行的进程(daemon)。 本文介绍如何将一个 Web 应用,启动为守护进程。 一、问题的由来 Web应用写好后,下一件事就是启动,让它一直在后台运行。 这并不容易。举例来说,下面是一个最简单的Node应用server.js,只有6行。 var http = require('http'); http.createServer(function(req, res) { res.writeHead(200, {'Content-Type': 'te...

    期权知识 2020-08-18 487 0
  • 互联网协议入门(二)

    互联网协议入门(二)

    上一篇文章分析了互联网的总体构思,从下至上,每一层协议的设计思想。 这是从设计者的角度看问题,今天我想切换到用户的角度,看看用户是如何从上至下,与这些协议互动的。 ============================================================== 互联网协议入门(二) 作者:期权记 (接上文) 七、一个小结 先对前面的内容,做一个小结。 我们已经知道,网络通信就是交换数据包。电脑A向电脑B发送一个数据包,后者收到了,回复一个数据包,从而实现两台电脑之间...

    期权知识 2020-08-18 510 0
  • Systemd 入门教程:命令篇

    Systemd 入门教程:命令篇

    Systemd 是 Linux 系统工具,用来启动守护进程,已成为大多数发行版的标准配置。 本文介绍它的基本用法,分为上下两篇。今天介绍它的主要命令,下一篇介绍如何用于实战。 一、由来 历史上,Linux 的启动一直采用init进程。 下面的命令用来启动服务。 $ sudo /etc/init.d/apache2 start # 或者 $ service apache2 start 这种方法有两个缺点。 一是启动时间长。init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。...

    期权知识 2020-08-18 477 0
  • 代码的抽象三原则

    代码的抽象三原则

    软件开发是"抽象化"原则(Abstraction)的一种体现。 所谓"抽象化",就是指从具体问题中,提取出具有共性的模式,再使用通用的解决方法加以处理。 开发软件的时候,一方面,我们总是希望使用别人已经写好的代码,另一方面,又希望自己写的代码尽可能重用,以求减少工作量。要做到这两个目标,这需要"抽象化"。 最近,我读到美国程序员Derick Bailey的一篇文章,谈到"抽象化"应该遵循的三个原则,觉得很有启发。 一、DRY原则 DRY是 Don't repeat yourself 的缩写,意思是"...

    期权知识 2020-08-18 472 0