SkioFox Blog

Thinking will not overcome fear but action will.

IOS 项目包管理工具 CocoaPods

IOS 项目包管理工具 CocoaPods

配置文件 Podfile 主项目的 pod 的依赖管理配置文件只有 Podfile一个文件,并存放在项目根目录,基础写法如下: platform :ios, '8.0' use_frameworks! target 'MyApp' do pod 'AFNetworking', '~> 2.6' pod 'ORStackView', '~> 3.0' pod 'S...

前端OSS部署

前端OSS部署

背景 公司最开始的前端项目(指的是csr客户端渲染项目)都是部署在ECS机器上,如下图所示 后面开始做微服务架构,为了方便统一管理与部署,前端项目就改成了容器化来进行部署,如下图所示 Pod内会起一个nginx服务,然后通过nginx来返回index.html(注意静态资源走的是CDN),如下所示 server { listen 8000; root /app/di...

微前端 (三) - qiankun 和 single-spa 源码分析

微前端 (三) - qiankun 和 single-spa 源码分析

概览 qiankun 是一个基于single-spa的微前端实现库。接下来我们将通过源码透析其实现方式及技巧。相信通过前面两篇文章,你也能更容易明白源码实现。 qiannkun 针对于主应用暴露了方法 registerMicroApps 和 start 以及 loadMicroApp 方法。这里的主应用就是上两篇里的容器应用,虽然个人更愿意使用容器术语,但是为了和文档统一,下面都将使用主...

微前端 (二) - 实现篇

微前端 (二) - 实现篇

该演示全部使用 React.js 构建,React 并没有垄断该架构。你可以使用许多不同的工具或框架来实现微前端。我们选择 React 是因为它很受欢迎,也因为对它很熟悉。 为了方便演示,使用 lerna 来管理多个项目,真实场景下他们都应该有单独的版本控制库来单独开发和单独部署。 组成部分 微前端会包含两种应用类型:一种是容器应用,另一种便是微应用,或者叫做微前端。容器作为壳,用于承...

微前端 (一) - 理念篇

微前端 (一) - 理念篇

什么是微前端? 微前端 (micro-frontends) 术语在 2016 年在 TECHNOLOGY RADAR 中被提及。 该网站叫做 thoughtworks,有个叫雷达 (radar) 的技术期刊,用于持续追踪有趣的技术是如何发展的,每种技术被称之为条目。 该条目提到了微服务中,多服务可独立部署并易于扩展交付的特性。而随着前端单页面应用 (SPA) 的流行,构建大型应...

Lerna 多包管理工具的萌新探索

Lerna 多包管理工具的萌新探索

What is Lerna ? Lerna 是一个多包管理工具,最初是为了解决跨库调试的问题,后面衍生出比较多的执行命令方便调试和管理。 按照 lerna 文件组织结构,所有的 package 包都在 packages 目录里,外部只保留 package.json 配置文件即可。package 包是个完整的 npm 项目结构。 文件组织结构 my-lerna-repo/ pack...

常见排序算法

常见排序算法

基本操作 交换 function swap(a, b) { [a, b] = [b, a] } 比较 function compare_gt(a, b) { return a > b; } function compare_lt(a, b) { return a < b; } 算法 冒泡排序 (Bubble Sort) 时间复杂度: fun...

回溯算法用例:八皇后疑惑

回溯算法用例:八皇后疑惑

问题描述 Q: 在 8×8 格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法? 八皇后疑惑 (eight-queens-puzzle) 是由国际西洋棋棋手马克斯·贝瑟尔于 1848 年提出的问题,回溯算法的经典用例。 数学家高斯认为有76种方案。1854 年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的...

go语言中常用设计原则与设计模式

go语言中常用设计原则与设计模式

设计原则 面向接口编程 所谓的面向接口编程,是指:如果你使用到了别的类型,那么用的一定是接口。 在计算机科学中,接口是计算机系统中多个组件共享的边界,不同的组件能够在边界上交换信息。如下图所示,接口的本质是引入一个新的中间层,调用方可以通过接口与具体实现分离,解除上下游的耦合,上层的模块不再需要依赖下层的具体模块,只需要依赖一个约定好的接口。 Go语言的主要设计者之...

npm包管理器调研

npm包管理器调研

截止到2022年,目前最流行的包管理工具,有三个 npm: node自带 yarn: facebook与谷歌等大公司联合出品 现在有 Yarn Berry v2版本,以及后续会放弃维护的Yarn Classic v1版本 pnpm: 一个新的高性能包管理工具 公司目前统一使用的是yarn classic版本 为什么围绕着包管理工具一...