2020再谈跨域

跨域这个话题已经谈了很多年了,怎么现在又要谈这个问题?本来是可以不必再提了的,但是由于Chrome 86版本以后又增加了很多限制,导致我们不得不再次提起。

CORS

对于前端开发来说,跨域通常有两种方式,一种是在服务端修改nginx配置,在response headers里添加CORS设置,另一种是在本地架设代理。我们先谈第一种。

原本在nginx里添加CORS已经是一种常规操作,简单到无以复加:…

使用Laravel Packer创建laravel包脚手架

Laravel Packer是Sarthak Shrivastava的命令行工具,用于加快laravel软件包的创建速度。您可以在创建Laravel软件包时使用所有artisan命令,并为在软件包中创建的模型创建CRUD。要创建新程序包,可以使用packrCLI,它将为您创建所有程序包脚手架:

packr new your-package-name {vendor} {author} {author_email}

在开发软件包时,可以使用熟悉的Artisan命令生成软件包控制器,模型等:

packr make:controller ExampleController
packr make:model Post

Packer是使用Laravel Zero构建的,您可以在他的YouTube播放列表中找到有关此组合的详细教程(由Sarthak发布):

 

您可以在bitfumes/laravel-packer上了解有关此软件包的更多信息,获取完整的安装说明,并在GitHub上查看源代码。

更多创建laravel软件包方法与工具请参考 https://laravelpackage.com/

    

Composer 2.0 发布了!

1 /有什么新功能?

变更和改进的清单很长,如果您有兴趣阅读全部内容,请查看完整的变更日志。我将在这里重点介绍一些关键点。

性能提升

从Composer和packagist.org之间使用的协议到依赖关系解析,我们几乎对所有内容进行了全面检查,包括使用curl和约束评估优化来并行下载文件。这导致速度和内存使用方面的巨大改进。差异取决于您的用例,因此尽管我看到某些项目的两个方面的改进都超过50%的报告,但我无法在上面给出确切的数字。但是我敢肯定,如果您还没有尝试过Composer 2,将会感到非常惊讶。

作为补充,require/remove和部分更新现在快得多,因为Composer现在将仅加载要更改的程序包的元数据。…

        

第三代移动端布局方案

第三代移动端布局方案

大家有没有发现淘宝的H5移动端没有使用任何rem和vw单位,而是和web端项目一样,使用的是px单位。虽然是px但它也很完美的将整个页面渲染了出来。那淘宝的FE是怎么实现的呢?

最近在研究关于布局的设计方案,通过学习理解阿里的fusion.design的设计思想并结合手机淘宝H5版的px布局问题。逐渐有了一些想法,这里进行综合整理,也算是抛砖引玉吧。…

前后端分离实践(一)

前言

最近这一段时间由于Nodejs的逐渐成熟和日趋稳定,越来越多的公司中的前端团队开始尝试使用Nodejs来练一下手,尝一尝鲜。

一般的做法都是将原本属于后端的一部分相对于业务不是很重要的功能迁移到Nodejs上面来,也有一些公司将NodeJS作为前后端分离的一个解决方案去施行。而像淘宝网这类的大型网站也很早的完成了前后端的分离,给我们这样的后来者提供了宝贵的经验。

同样,我们的大网盘团队也早在去年早早就开始了紧锣密布的准备工作,这目前工作也做的差不多了,现在我就来总结一下在过程中遇到的坑点以及注意事项。…

Git 看这一篇就够了

上一篇讲 Git 的文章发出来没想到效果特别好,很多读者都要求继续深入的写。

那今天齐姐简单讲下 Git 的实现原理,知其所以然才能知其然;并且梳理了日常最常用的 12 个命令,分为三大类分享给你。

本文的结构如下:

  1. 作者和开发原由
  2. Git 的数据模型
  3. 常用命令
  4. 资源推荐

如何设计一个牛逼的API接口

在日常开发中,总会接触到各种接口。前后端数据传输接口,第三方业务平台接口。一个平台的前后端数据传输接口一般都会在内网环境下通信,而且会使用安全框架,所以安全性可以得到很好的保护。这篇文章重点讨论一下提供给第三方平台的业务接口应当如何设计?我们应该考虑哪些问题?…

    

前端模块化的十年征程

这是一篇关于前端模块化的文章,但这里并不讲新技术,而是谈一谈——历史

夫以铜为镜,可以正衣冠;以史为镜,可以知兴替 ——《旧唐书·魏徵传》

前言

也许在谈论具体的内容之前,我们需要谈论一下关键词的定义。 什么是"模块"?在不同的语境下模块有不同的含义。

但在本文中,我们从广义的角度出发,将它解释为两个方面

  • 外部的模块: 指代引入前端工程的某个外部的包(package),可能由多个JS文件组成,但会通过入口暴露给我们项目调用
  • 内部的模块: 指代我们自己的工程项目中编码的最小单元: 即单个的JS文件

模块化已经发展了有十余年了,不同的工具和轮子层出不穷,但总结起来,它们解决的问题主要有三个…