首页
学习
活动
专区
工具
TVP
发布

前端架构与工程

专栏作者
71
文章
86210
阅读量
41
订阅数
好未来数据中台 Node.js BFF实践(一):基础篇
好未来数据中台的Node.js中间层从7月份开始讨论可行性,截止到9月已经支持了4个平台,其中3个平台生产环境稳定,另1个在测试阶段近期上线。
寒月十八
2021-10-09
3.6K1
学废了系列 - WebGL与Node.js中的Buffer
WebGL 和 Node.js 中都有 Buffer 的使用,简单对比记录一下两个完全不相干的领域中 Buffer 异同,加强记忆。
寒月十八
2021-08-12
1.3K0
学废了系列 - WebGIS vs WebGL图形编程
目前工作中有不少涉及到地图的项目,我参加了几次技术评审,前端伙伴们在 WebGIS 方面的知识储备稍有不足,这次分享的主要目的是科普一些在前端领域比较常用的 WebGIS 知识。另外,我之前的工作中积攒了一些从零开始搭建 WebGL 地图引擎的微薄经验,虽然最终遗憾没有上线,但在其中学到的一些WebGL知识还是值得分享一下。WebGL 可以说是前端可视化技术领域难度最大的一项图形编程技术,所以今天就结合 WebGIS 这个话题顺带分享一些 WebGL 的相关知识,不会太深入,很细节的技术点在后续文章里再讲解。
寒月十八
2021-06-21
1.7K0
理解微信小程序的双线程模型
有过微信小程序开发经验的朋友应该都知道“双线程模型”这个概念,本文简单梳理一下双线程模型的一些科普知识,学识浅薄,若有错误欢迎指正。
寒月十八
2021-05-19
2.3K0
SVG的动态之美-搜狗地铁图重构散记
搜狗地图发布了新版的移动端地铁图,改版初衷是为了用户交互体验的提升以及性能的改善。原版地铁图被用户吐槽最多的是pinch缩放不流畅、无过渡动画、拖拽边界不合理等等,大体上都是交互体验上的问题。实际上原版的问题不仅仅存在于交互体验上,源代码也是一团糟: 无模块化概念; 存在冗余逻辑和文件; 滥用第三方库&工具; UI的更新仍旧是直接操作DOM; 构建&发布流程不规范。 以上问题其实跟业务以及技术选型无关,可以说是任何一个“历史悠久”的项目都难以避免的问题。针对以上问题的重构方案不是本文要阐述的核心,所以就一笔
寒月十八
2018-05-30
2.1K0
前端工程化-构建
构建的核心是资源管理。简单说,构建就是把前端工程师开发的源代码进行编译、压缩、打包等一系列操作,最终产出可以直接上线或者可供后端工程师的资源。 构建可以划分为纯前端构建和前后端协作构建。 这两个不是专业术语,如果你有更合适的称谓,欢迎指正。 所谓纯前端构建,就是说不涉及后端模板的构建,经过构建之后的前端代码可以直接上线。这种情形下大多是数据驱动UI的web应用,模板只负责提供空白的容器和基础的静态资源,UI的文档结构交由前端JavaScript实现。这个过程可以使用一些框架,比如近期较流行的React
寒月十八
2018-01-30
1.1K0
Nodejs建站笔记-注册登录流程的简单实现
1. 使用Backbone实现前端hash路由 登录注册页面如下: 初步设想将注册和登录作为两个不同的url实现,但登录和注册功能的差距只有form表单部分,用两个url实现显然开销过大,所以最终
寒月十八
2018-01-30
2.1K0
Node.js建站笔记-使用react和react-router取代Backbone
斟酌之后,决定在《嗨猫》项目中引入react,整体项目偏重spa模式,舍弃部分server端的模板渲染,将一部分渲染工作交给前端react实现。 react拥有丰富的组件,虽然不如Backbone和underscore这对老基友成熟,但考虑到嗨猫的前端并不需要很多的MV*架构,目前使用到Backbone的地方只有hash路由而已,所以最终决定使用react-router取代Backbone,underscore也从项目依赖中移除。 下面就以登录&注册页为例,简单讲述整个替代过程。 1. 安装并二次编译rea
寒月十八
2018-01-30
2.2K0
前后端分离和模块化-58到家微信首页重构之路
微信钱包内的58到家全新首页已经上线,感兴趣的同学们可以在微信中打开“我的->钱包->58到家”查看。 58到家全新首页提出重构主要是为了解决以下问题: 每个城市开通的服务项目不同,有些内容是写死在tpl中,维护非常头疼; 开通新服务或者某些UI调整(比如更换服务项的图片造成更改雪碧图)时必须走代码上线流程; 原有的前端切图、后端写逻辑的开发模式造成开发周期拉长和上线流程繁琐; 原有配置后台操作复杂,且可配置细节不完善; 首页加载速度太慢,用户体验欠佳。 58到家目前两年左右的发展期,整个技术生态还不完善。
寒月十八
2018-01-30
1.3K0
Webpack中hash与chunkhash的区别,以及js与css的hash指纹解耦方案
文件的hash指纹通常作为前端静态资源实现增量更新的方案之一,Webpack是目前最流行的开源编译工具之一,其强大的功能也带来很多坑(当然,大部分麻烦其实都可以在官方文档中找到答案)。 比如,在Webpack编译输出文件的配置过程中,如果需要为文件加入hash指纹,Webpack提供了两个配置项可供使用:hash和chunkhash。那么两者有何区别呢?其各自典型的应用场景又是什么?本文结合笔者工作中遇到的问题,简单记录一下以上问题的解决方案。 1. hash与chunkhash 首先我们先看一下官方文档对
寒月十八
2018-01-30
2K0
2016 SDCC会后总结
很荣幸作为前端专题讲师参加2016年SDCC,与周爱民老师同台,听业界牛人的分享真是受益匪浅。对我来说是第一次在如此规模的专题论坛上演讲,全程紧张的要命,提前准备好的内容有很多因为紧张没有讲出来。此次
寒月十八
2018-01-30
7130
前端工程师的基本素养
阅读原文 闲来无事,今天随便聊聊前端工程师应该具备哪些素质,权当博大家一笑。 前端工程师到底是工作很简单的“切图仔”,还是包揽客户端和中间层的“大前端”?招聘市场上有大量的公司对前端工程师求贤若渴;但同时求职市场上却有大量的前端工程师在“求职若渴”。造成这种两难局面的原因是用人单位与求职者对前端工程师的技能需求以及定位存在差异。 应该怎么定位前端工程师这个岗位?我们可以从前端的发展历史中得到答案。 1.1.1 前端工程师的发展史 1990年,Tim Berners Lee发明了世界上第一个网页浏览器Worl
寒月十八
2018-01-30
1.1K0
【译】《Understanding ECMAScript6》- 简介
原书线上阅读地址:https://leanpub.com/understandinges6/read/ JavaScript又称为ECMAScript,其核心功能遵循ECMA-262规范,浏览器环境JavaScript与Node.js的JavaScript是ECMAScript的两个超集。即使浏览器和Node.js通过扩展对象和函数来增加新功能,但语言仍然保留ECMAScript的核心功能,所以ECMA-262的发展对JavaScript语言是至关重要的。 2007年是JavaScript发展的分水岭。Aj
寒月十八
2018-01-30
8320
【译】《Understanding ECMAScript6》- 第一章-基础知识(一)
目录: 更好的Unicode编码支持 codePointAt()函数 String.fromCodePoint() 用转义序列对Non-BMP字符编码 normalize()函数 正则表达式的u标志 Unicode标识符 更多字符串相关改动 includes(),startsWith(),endsWith() repeat() 更多的正则表达式改动 正则表达式的y标志 克隆正则表达式 flags属性 Object.is() ES6在ES5的基础上做了大量的改动,有一些较大的改动涉及到新的数据类型和语法
寒月十八
2018-01-30
1.1K0
【译】《Understanding ECMAScript6》- 第一章-基础知识(二)
块绑定 JavaScript中使用var进行变量声明的机制非常怪异。在大多数C系列的编程语言中,变量的创建是在被声明的时刻同时进行的。但是JavaScript并不是这样,使用var声明变量时,不论声明语句在什么位置,变量的创建都会被提升至函数作用域(或全局)的顶部。如下: function getValue(condition) { if (condition) { var value = "blue"; // other code return va
寒月十八
2018-01-30
1.2K0
【译】《Understanding ECMAScript6》- 第二章-函数
函数在任何一门编程语言中都是很重要的一个环节。JavaScript至今已有多年的历史,但是它的函数仍然停留在很初级的阶段。函数问题的大量堆积,以及某些函数非常微妙的功能差异,很容易产生错误,并且有时候一个很简单的功能往往需要通过大量的代码来实现。 ES6吸取了多年来JavaScript开发者的反馈,在ES5函数的基础上进行了大量的改进,令JavaScript程序更加健壮并且减少了错误发生率。 默认参数 JavaScript函数的特性之一,便是接受传入的参数可以与函数定义的参数数量不同。利用这种特性,函数可以
寒月十八
2018-01-30
1.3K0
【译】《Understanding ECMAScript6》- 第三章-Object
目录 Object分类 Object字面量扩展 Object.assign() 重复属性 改变原型 super引用 方法 总结 ES6针对Object的改进,旨在使JavaScript语言更加接近“万物皆对象”的理念。随着越来越多地使用Object类型进行开发,开发者们越来越不满足于Object相对低下的开发效率。 ES6通过多种途径对Object进行了改进,包括语法的调整、以及新的操作和交互方式等。 Object分类 JavaScript中的Object有很多不同的类别,比如自定义的对象和语言内置的对象,
寒月十八
2018-01-30
1K0
【译】《Understanding ECMAScript6》- 第五章-Class
目录 ES5中的拟Class结构 Class声明 Class表达式 存储器属性 静态成员 派生类 new.target 总结 自JavaScript面世以来,许多开发者疑惑为何JavaScript没有Class。大多数面向对象语言都支持Class以及Class继承,尽管部分开发者认为JavaScript语言并不需要Class,但事实上很多第三方库通过工具方法来模拟Class。 ES6正式引入了Class规范。为了保证JavaScript语言的动态性,ES6的Class规范与其他面向对象语言的Class并不完
寒月十八
2018-01-30
1K0
【译】《Understanding ECMAScript6》- 第七章-Promise
目录 异步编程 Promise基础 链式Promise 多重Promise响应 Promise继承 总结 异步操作是JavaScript最强大的功能之一。JavaScript的设计初衷是作为一种面向web的语言,因此具备响应用户行为(比如鼠标和键盘事件)的功能。Node.js使用回调函数代替事件驱动,进一步强化了JavaScript语言的异步编程能力。但是,随着异步编程被广泛使用,开发者们发现这两种异步模式(事件驱动和回调函数)并不能满足所有的产品需求。在这样的背景下,Promise应运而生。 Promis
寒月十八
2018-01-30
2K0
【译】《Understanding ECMAScript6》- 第八章-Module
目录 模块是什么 使用基础 接口标识符重命名 缺省接口 Re-exporting 非绑定import 总结 JavaScript令人困惑并且易引发错误的特性之一是以“一切皆共享”的方式加载代码。所有文件内定义的一切代码都共享一个全局作用域,这一点是JavaScript落后于其他编程语言之处(比如Java中的package)。随着web应用变得越来越庞大复杂,“一切皆共享”的方式暴露出一系列弊端,比如命名冲突、安全性等等。ES6的目标之一便是解决这种问题,增强JavaScript代码组织的有序性。这就是Mod
寒月十八
2018-01-30
8230
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档