某科学的最后之作

帅的人已经醒来 而丑的人还在沉睡


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

Linux IO多路复用

发表于 2019-11-16 | 更新于: 2020-11-15 | 分类于 Linux
字数统计: 12k | 阅读时长 ≈ 0:12

简介

在平常的工作中,遇到 IO 密集型任务,比如要频繁调用外部的 API 接口(网络IO),或者频繁读写文件(磁盘IO)通常代码都会在 IO 任务创建后等待 IO 任务结束并将需要的数据返回。这种同步的编程方式是最简单的,但同时也是效率最低的。比如在一个 Web 后端中,如果是单线程单进程的运行模式,一次就只能处理一个客户端的请求,即使引入了多线程/多进程,虽然可以同时服务多个客户端了,但是如果瞬间几千的并发连接,那么后端就必须创建相对多的线程或进程,这时候 CPU 将会花费大量的时间和资源用于线程上下文切换上,而且这么多的线程,如果用到了锁机制来保证一些共享数据的安全,还将进一步的降低 Web 后端的性能。而 IO 多路复用的出现,则给这种局面带来了转机。

阅读全文 »

LXC Linux系统容器

发表于 2019-09-23 | 更新于: 2019-09-26 | 分类于 Linux
字数统计: 28k | 阅读时长 ≈ 0:28

简介

LXC 是 Linux Container 的简写。Linux Container 是一种内核虚拟化技术,可以提供轻量级的虚拟化以便隔离进程和资源。大名鼎鼎的 Docker 在早期版本使用的底层容器引擎便是 LXC,不过 Docker 的目标是创建应用级容器,而 LXC 的目标是创建系统级容器,所以使用 LXC 更容易获得接近虚拟机的体验。

阅读全文 »

Supervisor 进程管理工具

发表于 2019-08-27 | 更新于: 2019-09-03 | 分类于 Python
字数统计: 54k | 阅读时长 ≈ 0:54

简介

Supervisor 是用 Python 开发的一个 C/S 架构的进程管理工具,只可以用 Linux/Unix 系统下。在 Linux 系统上,通常的做法是为每个需要控制的服务编写 rc.d 脚本,之后通过 service 或者 systemctl 来管理和控制服务,但是在程序崩溃的时候却无法自动重启项目。Supervisor 将它管理的服务作为它的子进程,所以可以简单且精确的管理和控制这些服务。官方文档

阅读全文 »

回调地狱的终结:Pormise & Async

发表于 2018-12-31 | 更新于: 2018-12-31 | 分类于 JavaScript
字数统计: 23k | 阅读时长 ≈ 0:23

简介

由于 JavaScript 是一门单线程,事件驱动的语言,因此异步编程方式是它一个非常重要的特性。无论是客户端的 JavaScript 还是服务端的 JavaScript 在处理 HTTP请求响应、事件监听、文件读取等操作时都避不开回调,如果异步的事件需要嵌套执行,那么回调给代码结构和可读性简直带来了灾难,这个被后人称之为:回调地狱。

阅读全文 »

Web页面布局

发表于 2018-12-28 | 更新于: 2018-12-28 | 分类于 Web
字数统计: 66k | 阅读时长 ≈ 1:06

简介

使用现代前端技术开发的应用,不管是 Web 页面,还是混合开发的手机 APP,都离不开页面元素的布局。而布局又可以说是页面开发里最麻烦的地方,不仅要兼容不同的设备,还要兼容不同的浏览器,还很可能一不小心改错了一个值就造成整个页面的雪崩。这里汇总下关于页面布局的基础知识以及一些开发中的经验。

阅读全文 »

从零开始搭建Vue开发环境

发表于 2018-12-21 | 更新于: 2018-12-21 | 分类于 Vue
字数统计: 32k | 阅读时长 ≈ 0:32

简介

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。本篇文章记录不使用 vue-cli 的自动化功能,手动搭建一个 Vue 的开发环境。

阅读全文 »

Cordova混合开发环境搭建

发表于 2018-12-09 | 更新于: 2020-11-15 | 分类于 Cordova
字数统计: 6.8k | 阅读时长 ≈ 0:07

简介

Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头、麦克风等。Cordova还提供了一组统一的JavaScript类库,以及为这些类库所用的设备相关的原生后台代码。Cordova支持如下移动操作系统:iOS, Android,ubuntu phone os, Blackberry, Windows Phone, Palm WebOS, Bada 和 Symbian。

阅读全文 »

Pyenv Python版本管理器

发表于 2018-10-08 | 更新于: 2020-11-15 | 分类于 Python
字数统计: 3.6k | 阅读时长 ≈ 0:04

简介

Node.js 有一个非常好用的版本管理器叫 nvm,可以很方便的安装和管理多种 node.js 的版本,于是开始寻找 Python 是否也存在类似的工具,这样可以方便的切换 Python2 和 Python3 的环境,以及 Python 发布新版本后可以迅速的体验一番,而且还不会对当前系统环境照成影响。所幸 遇到了 pyenv 这个工具。
项目主页:https://github.com/pyenv/pyenv

阅读全文 »

Bottle 轻量级Web框架

发表于 2018-07-12 | 更新于: 2018-07-15 | 分类于 Python
字数统计: 34k | 阅读时长 ≈ 0:34

简介

Bottle 是一个快速、简单、轻量级的 Python Web 框架,Bottle 作为一个单独的文件模块分发,而且除了标准库没有任何第三方依赖,但是麻雀虽小五脏俱全,所以非常适合第一次接触 Python Web 开发的新手入门学习使用。Bottle 支持URL映射、模板引擎、访问表单、文件上传等功能。内建 HTTP 开发服务器,而且还支持 Paste, Gevent, gunicorn 等高性能 WSGI 服务器。本文通过阅读官方文档 并结合自己的实际测试编写而成。

阅读全文 »

WebSocket 协议分析

发表于 2018-06-22 | 更新于: 2020-11-15 | 分类于 WebSocket
字数统计: 7.1k | 阅读时长 ≈ 0:07

简介

WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。它弥补了 HTTP 协议只能只能由客户端,而无法实现服务器主动推送消息。在此之前,浏览器想了解服务端有没有更新数据只能每隔一段时间就发送一个HTTP请求去询问,这样的效率是非常低下的。而通过 WebSocket,服务器和客户端可以建立一条稳定的连接,并且可以双向通信。

阅读全文 »
12…6
魏云飞

魏云飞

帅的人已经醒来 而丑的人还在沉睡

53 日志
29 分类
61 标签
RSS
GitHub
© 2020 魏云飞 | 713k | 11:53
主题 — NexT.Mist v6.0.4
渝ICP备 - 18019763号