带有标签 Programming 的文章

前一段时间项目上有过一个需求,可以考虑通过自动给 React 组件添加属性来实现。虽然这是一个很反模式的方式并且最终否决了这个方案,但是还是尝试研究了一下如何实现 自动给 React 组件添加属性。更确切地说,是在 webpack 打包出来的最终文件内给 React 组件添加上自定义的 props

webpack 处理 React 文件(js/jsx)使用 babel-loader,babel 就是我们的 JavaScript 编译器,它接收我们的源代码作为输入,产出编译后的可运行于浏览器的目标代码作为输出。babel 支持插件(plugin),可以视作编译器前端与后端之间的中间件:前端根据源代码生成抽象语法树(AST)等,后端根据抽象语法树生成目标代码,而插件作为中间件则是在生成目标代码之前对抽象语法树做相应的修改。

RSA 加密算法是目前广泛使用的一种非对称加密算法。RSA 加密算法的可靠性依赖于极大整数因数分解的困难度。本文主要根据 RSA 加密算法实现一个简单版本的 Python 代码实现,包括私钥、公钥生成与加密、解密方法。

RSA 加密算法概述

RSA 加密算法为非对称加密算法,意味着加密和解密使用不同的秘钥,称为 公钥私钥 ,公钥可以任意分发并用于加密,私钥需妥善保存用于解密。

...

查看全文

软件开发离不开开源项目,自己单干无异闭门造车,所以我们需要别人的库/工具(package)帮助我们完成工作。我们需要的,是尽可能轻松地集成到我们的项目内,并且能很好地解决我们的需求而不引起其他问题。我们以以下三个方面来考虑是否选择一个库:

cherry-pick 是一个比较常用的 git 操作,可以将一个分支上的 commit “精选”到另一个分支上。然而在最近的开发过程中,却时不时的遇到 merge 冲突。在下文中,我将会详细的分析 cherry-pick 造成冲突的原因,以及 cherry-pick 可能造成的其他更严重问题。

我们以一个简单的例子来进行分析:

the-cp

...

查看全文