Taobao FED

主页

前后端分离的思考与实践(六)

nginx + Node.js + Java 的软件栈部署实践起关于前后端分享的思考,我们已经有五篇文章阐述思路与设计。本文介绍淘宝网收藏夹将 Node.js 引入传统技术栈的具体实践。 淘宝网线上应用的传统软件栈结构为 nginx + Velocity + Java,即: 在这个体系中,nginx 将请求转发给 Java 应用,后者处理完事务,再将数据用 Velocity 模板渲染成最终的页

前后端分离的思考与实践(五)

基于前后端分离的多终端适配前言近年来各站点基于 Web 的多终端适配进行得如火如荼,行业间也发展出依赖各种技术的解决方案。有如基于浏览器原生 CSS3 Media Query 的响应式设计、基于云端智能重排的「云适配」方案等。本文则主要探讨在前后端分离基础下的多终端适配方案。 关于前后端分离 关于前后端分离的方案,在《前后端分离的思考与实践(一)》中有非常清晰的解释。我们在服务端接口和浏览器之间

前后端分离的思考与实践(四)

前后端分离模式下的安全解决方案前言 在前后端分离的开发模式中,从开发的角色和职能上来讲,一个最明显的变化就是:以往传统中,只负责浏览器环境中开发的前端同学,需要涉猎到服务端层面,编写服务端代码。而摆在面前的一个基础性问题就是如何保障 Web 安全? 本文就在前后端分离模式的架构下,针对前端在 Web 开发中,所遇到的安全问题以及应对措施和注意事项,并提出解决方案。 跨站脚本攻击(XSS)的防御

前后端分离的思考与实践(三)

Midway-ModelProxy — 轻量级的接口配置建模框架前言使用 Node.js 做前后端分离的开发模式带来了一些性能及开发流程上的优势(见《前后端分离的思考与实践 一》), 但同时也面临不少挑战。在淘宝复杂的业务及技术架构下,后端必须依赖Java搭建基础架构,同时提供相关业务接口供前端使用。Node.js 在整个环境中最重要的工作之一就是代理这些业务接口,以方便前端(Node.js 端

前后端分离的思考与实践(二)

基于前后端分离的模版探索前言在做前后端分离时,第一个关注到的问题就是渲染,也就是 View 这个层面的工作。 在传统的开发模式中,浏览器端与服务器端是由不同的前后端两个团队开发,但是模版却又在这两者中间的模糊地带。因此模版上面总不可避免的越来越多复杂逻辑,最终难以维护。 而我们选择了 Node.js,作为一个前后端的中间层。试图藉由 Node.js,来疏理 View 层面的工作。 使得前后端分工

前后端分离的思考与实践(一)

也谈基于 Node.js 的全栈式开发(基于 Node.js 的前后端分离)前言 为了解决传统 Web 开发模式带来的各种问题,我们进行了许多尝试,但由于前/后端的物理鸿沟,尝试的方案都大同小异。痛定思痛,今天我们重新思考了“前后端”的定义,引入前端同学都熟悉的 Node.js,试图探索一条全新的前后端分离模式。 随着不同终端(Pad/Mobile/PC)的兴起,对开发人员的要求越来越高,纯浏

一种基于匹配回朔的 CSS3 选择器引擎实现

介绍CSS 选择器是一种应用于 DOM 节点查找场景的特定微型语法,本质上和正则表达式一样都是一种模式匹配语言,灵活使用可以方便得获取指定位置的节点集合。 目前 W3C 推荐标准为 Selectors Level 3,在 IE9 + 以及 Firefox,Chrome,mobile 等浏览器上原生有基本一致的实现,而在 IE 下则需要使用 JavaScript 模拟实现,本文介绍一种基于匹配回朔

模块化高扩展性的前端框架 KISSY

本文为 2013 年 3 月程序员杂志同名文章的完整版。 介绍伴随着淘宝的快速发展,诞生已三年多的 KISSY 也取得了巨大的成长。目前应用于阿里集团的多个业务团队,特别是淘宝,天猫,一淘的绝大多数业务都采用了 KISSY, 满足了从前台的 web page 到后台的 web app 再到移动端应用(起步阶段)的广泛需求。 在阿里集团以外也有不少公司和个人使用 KISSY,交流旺旺群成员已将近千

谈谈 jQuery 中的防冲突(noConflict)机制

许多的 JS 框架类库都选择使用 $ 符号作为函数或变量名,jQuery 是其中最为典型的一个。在 jQuery 中,$ 符号只是 window.jQuery 对象的一个引用,因此即使 $ 被删除,window.jQuery 依然是保证整个类库完整性的坚强后盾。 jQuery 的 API 设计充分考虑了多框架之间的引用冲突,我们可以使用 jQuery.noConflict 方法来轻松实现控制权的

复杂表单应用解耦,淘宝机票订单实践

背景在 Web 应用中,复杂表单这类 Web 应用富交互元素多,业务逻辑复杂,犬牙交错,且需求变化频繁。及容易成为晦涩和幽暗之地,也经常是各种代码坏味道的来源。针对这种典型的复杂应用,本文以淘宝机票订单为例提出一种架构模式梳理和消化表单带来的复杂性。 模块和组件划分解决复杂表单的的第一步,划分模块。 概念上,为了复用和解耦方便,应将模块按照功能的内聚程度进行划分。强相关,频繁沟通和交互的功能应