计算广告实现入门-索引布尔表达式

2023-02-22
阅读 6 分钟
1.6k
倒排索引:Inverted Index,反向索引,根据内容查找文档记录如 document1: { a: [1,2] },document2: { a:[1], b: [9] }

架构团队如何重构内部系统

2021-12-02
阅读 11 分钟
2.3k
前端团队难免需要维护一些内部系统,有些内部系统由于开始的架构设计不合理,随着业务复杂度的增加,“坏味道”代码也越来越多,从而导致认知和沟通成本上升,甚至问题频出,此时,重构就自然成了一个选择。但重构不是一时兴起,也不是一蹴而就的,需要仔细的分析和有序的实施,以实验平台为例,介绍一下智联大前端的重构...

前端服务框架调研:Next.js、Nuxt.js、Nest.js、Fastify

2021-11-16
阅读 13 分钟
9.9k
这次 Node.js 服务框架的调研将着点于各框架功能、请求流程的组织和介入方式,以对前端 Node.js 服务设计和对智联 Ada 架构改进提供参考,不过多关注具体实现。

智联招聘的Web模块扩展落地方案

2021-11-12
阅读 3 分钟
1.7k
当使用CDN资源管理组件库时,CDN资源更新可以实现浏览器端更新,但是服务器端渲染场景node端加载资源并执行无法保证与浏览器端渲染中加载的CDN资源版本一致,会带来渲染差异导致重新渲染问题;

五分钟了解 Blazor

2021-10-12
阅读 6 分钟
6.9k
2019年4月中旬微软推出了 Blazor,当时的我感觉 Blazor 简直是个划时代的东西,竟然能让 C# 运行到浏览器中。想着以后可能没有 C/S 架构什么事儿了,可以卸载掉所有的 App,电脑上有个浏览器就够了。近来终于有了能够系统了解 Blazor 的时间,下面把我了解到信息写下来分享给你,希望能对你有所帮助。

深度分析前端构建工具:Vite2 v.s Snowpack3 v.s. Webpack5

2021-03-09
阅读 17 分钟
14.9k
而在Vite之前,还有Snowpack也同样采用了No-Bundler构建方案。那么No-Bundler模式与传统老牌构建工具Webpack孰优孰劣呢?能否实现平滑迁移和完美取代?

Koa中间件体系的重构经验

2021-02-22
阅读 6 分钟
2.7k
智联招聘的大前端Ada提供的Web服务器可以同时运行在服务器端及本机开发环境,其内核是Web框架Koa。Koa以其对异步编程的良好支持而声名在外,而同样让人称道的还有它的中间件机制。本质上,Koa其实是一个中间件运行时,几乎所有实际功能都是通过中间件的形式注册和实现的。

使用 async_hooks 模块进行请求追踪

2021-01-27
阅读 6 分钟
4.8k
async_hooks 模块是在 v8.0.0 版本正式加入 Node.js 的实验性 API。我们也是在 v8.x.x 版本下投入生产环境进行使用。

智联招聘的微前端落地实践——Widget

2021-01-12
阅读 3 分钟
5.4k
ThoughtWorks在几年前提出了微前端的概念,其核心理念是将前端单体应用在开发阶段拆分成多个独立的工程,并在运行阶段组合成完整的应用。不仅解耦了视图和代码,使得应用可以容纳多种技术栈,还进一步解耦了流程和团队,极大地提高了团队的自主性和协作效率。

前端异常监控 Sentry 的私有化部署和使用

2021-01-06
阅读 12 分钟
17.3k
Sentry 为一套开源的应用监控和错误追踪的解决方案。这套解决方案由对应各种语言的 SDK 和一套庞大的数据后台服务组成。应用需要通过与之绑定的 token 接入 Sentry SDK 完成数据上报的配置。通过 Sentry SDK 的配置,还可以上报错误关联的版本信息、发布环境。同时 Sentry SDK 会自动捕捉异常发生前的相关操作,便于后续...

解密智联招聘的大前端架构Ada

2020-11-30
阅读 6 分钟
5.6k
Ada是智联招聘自主研发的演进式大前端架构。于2017年正式投入使用后,又经过三年持续演进,全面覆盖了从研发到运维的各个方面,具备跨技术栈工程化体系、交互式图形界面开发工具、自动化发布流程、Serverless运行时和完善的监控预警设施。目前已经支撑集团内数百个工程,在线URL数量多达数千,每日承载请求量逾十亿次。

如何为Electron应用实现自动更新

2020-08-31
阅读 4 分钟
16k
我们使用 Electron 开发了一个桌面端开发工具 Ada 工作台,提速增效前端开发,在更新比较频繁的情况下,为了使整个更新体验更为顺畅、提升工作台的升级比率,需要优化当前的更新机制,尽量做到 VSCode 的无感知更新。

GraphQL 落地背后:利弊取舍

2020-04-14
阅读 11 分钟
15k
此文是作者考虑 GraphQL 在 Node.js 架构中的落地方案后所得。从最初考虑可以(以内置中间件)加入基础服务并提供完整的构建、发布、监控支持,到最终选择不改动基础服务以提供独立包适配,不限制实现技术选型,交由业务团队自由选择的轻量方式落地。中间经历了解除误解,对收益疑惑,对最初定位疑惑,最终完成利弊权衡...

万能瀑布流

2019-12-11
阅读 8 分钟
7.6k
由于我们业务中尺寸变化情况更为复杂,如子块本身异步初始化、内部数据异步获取,且这种尺寸变化时机不可确定,为满足这种需求所以调研完成了一个通用万能的瀑布流实现。

读《图解设计模式》的所思所想

2019-08-05
阅读 4 分钟
6.1k
分类标准不统一,有实现思路、实现内容、模式目的等标准,甚至还有“适应设计模式”这种分类,颇有些无从分类的“自暴自弃”的味道。同时在这种分类方式下,还存在一个问题,即某设计模式的实现是会用到另一个设计模式的,甚至其些设计模式的书中实现类图会基本相同,但是却属于不同分类,带来了新的困惑,好像要强迫你在学...

10分钟理解 Node.js koa 源码架构设计

2019-07-22
阅读 5 分钟
9.6k
koa 发布已经快 6 年的时间,作为继 express 之后 node 服务框架最大的黑马,有很多的设计思想值得我们学习,本文从简到繁逐步介绍 koa,同时适合新老手阅读。

读《进化:从孤胆极客到高效团队》

2019-07-04
阅读 2 分钟
8.2k
2016年,我从一家中型的IT公司离职,这短短一年经历了人生的起起伏伏。因为表现突出转正后从一名基层开发被领导提拔为部门前端方向负责人,所谓的技术leader。而就在我真的达到公司的事就是我的事的精神状态短短三个月之后,因为工作负载、团队管理、沟通这一系列的摩擦累积,我的心态彻底崩溃了。临走时,一个工作有来...

单元测试规范

2019-05-15
阅读 5 分钟
4.5k
单元测试文件必须拥有良好的结构和格式;测试用例的分组名称和用例名称必须清晰易懂;测试用例必须能描述测试目标的行为;优先测试代码逻辑(过程)而非执行结果;单元测试的各项覆盖率指标必须在95%以上;

通过HTTP Header控制缓存

2019-05-14
阅读 3 分钟
10.6k
我们经常通过缓存技术来加快网站的访问速度,从而提升用户体验。HTTP协议中也规定了一些和缓存相关的Header,来允许浏览器或共享高速缓存缓存资源。这些Header包括: