Bryan Blog

个人分享 但愿各位看官喜欢

Poetry 包管理

Python package management by poetry

背景介绍 在 Python 的包管理中,一直没有一个完善的包管理工具,很长一阵子,项目依赖都是通过 requirements.txt 定义必要的依赖,而使用 requirements.txt 不仅繁琐,而且比较不方便维护,甚至没有办法维护直接依赖和间接依赖,虽然后面有 pip-tools 去提供一些便利,但是包管理依旧不方便。 哪里有不便,哪里就有人提供解决方案。大佬 Kenneth R...

基于 FastAPI 与 MongoDB 的数据流梳理

Data flow base on FastApi and MongoDB

背景介绍 自从 Python 3.5 以来,Python 在类型注解上的功能越来越强大,在 Python 3.7 又提供了的 dataclass, 可以比较便利地提供结构化的数据类。 与此同时,各种第三方的库也在基于类型注解提供了更便利好用的服务,其中 FastAPI 便是一款提供类型注解的 Web 服务框架,在保证了极高的性能的同时,提供了便利的数据管理。可以大大提升 Python 开...

虚拟 DOM 与 diff 算法

Virtual DOM and diff algorithm

基础背景 目前在使用前端框架的程序员们,或多或少都会知道框架背后的虚拟 DOM与 diff 算法,但是并不一定深入了解过为什么虚拟 DOM 要存在,以及不同前端框架如何进行更高效地渲染,这篇文章尝试去梳理一下这个完整流程 虚拟 DOM 介绍 有一些前端知识的都知道,对于 Web 页面而言,客户端最终可以展示的内容都是 html 页面,因此不管技术如何发展,最终都需要转化为 html 页...

PWA 与 Github Page

PWA and Github page

基础介绍 在开始介绍 PWA 的具体应用前,我们可以先介绍下 PWA 是什么。 PWA 是一系列的技术能力,可以用户增强 Web 的功能,可以让传统的 Web 网站对移动端用户更加友好。最终期望传统的 Web 网站在移动端可以达到接近 APP 的能力 PWA 另一个特点是来自于其名字,Progressive web apps,从名字上可以看到相关的技术都是渐进式增强的,因此技术人员可以根...

Form 的优化与思考

Form optimization and thinking

初始背景 最近在接触到前端校验的问题,本来是准备只是单纯地调研一下前端的校验问题。刚好又接触到黄金思维圈的思想,因此索性从源头出发,从基础的 form 功能开始考虑,分析痛点,逐步分析优化前端 form 的体验; 现状分析 良好的 form 一个体验良好的前端 form 需要的基础功能: 可以正确输入数据; 每个输入部分违反限制可以尽早校验,正确提示,方便用户尽早修改; ...

Canvas 基础应用

Introduction to canvas

基础介绍 最近开始接触 Canvas, 看到不少使用 Canvas 实现的酷炫动画,包括 butterfly ,3d-planet ,以及 动态网布 ,看起来功能十分强大,而且交互性也十分不错,看起来可以实现强大的前端功能。刚好最近有一个圣诞帽的需求,于是阅读了 基础教程 之后进行了简单实践。 Canvas 基础入门 Canvas 是 HTML5 中引入的一个新元素,直译为画布,实际中...

React router 入门

Introduction to react router

背景介绍 react router 是一个强大的 react 组件,可以提供强大的前端路由功能,算是 react 全家桶中一个相当重要的组件。如果使用 react 技术栈实现 web 服务,那么 react router 是一个极好的选择。 在介绍 react router 之前,首先需要明确介绍的 react router 的版本。 react router 3.x 和 react ...

生成器与协程

Generator and Coroutine

背景介绍 在 Python 中由于 GIL 锁的存在,多线程的并发效率不高。为了比较高效地实现并发,在 Python 中一般的方案是采用多进程 + 协程的方案。 协程也被称为纤线程,是一种程序级别的并发控制,多个协程会执行在同一线程中。协程的思想是由程序自身指定中断点,在 IO 操作时,程序可以自行中断,主动放弃 CPU,此时调度另外的协程继续运行。当 IO 就绪后,再调度此程序从中断点...

Requests cookie 源码分析

Requests cookie source codes reading

背景介绍 之前介绍过 Requests 源码阅读 ,对 Requests 库中单次网络请求的完整流程进行过介绍,对于某些细节则直接掉过了。这次补上 cookie 相关的源码分析,丰富相关细节。 cookie 是一串数据,在网络请求中会带上相关数据,用于请求者身份的标识。如果对 cookie 基础原理还不了解,可以自行搜索。 Requests 中对 cookie 的管理依赖 Python...

基于 Tushare 进行数据分析

Data analysis base on tushare

背景介绍 最近对金融与投资产生了一些兴趣,了解了相关知识。在基金投资中,比较推荐的做法是进行定投。那么基金定投是否靠谱呢?在基金定投中,优化的策略是高抛低吸,这种策略有是否有效呢? 一个最简单的方法就是找历史数据来进行验证,作为一个程序猿,验证一下那还不是几行代码的事情。一番搜索之后,找到了数据源的提供方,Tushare ,一个使用比较广泛的开源的金融数据 API,而且其返回的数据是 D...