SlideShare a Scribd company logo
Web Developing in Search

               文河
       Frontend Engineer @Taobao
              @yyfrankyy
                 f2e.us


       March 11, 2011




                             .     .   .   .   .   .
Agenda

.. Introduction
1

.. Development
2

.. Testing
3

.. Publish
4

.. Summaries
5


                  .    .   .   .   .   .
Products

商品搜索   s.taobao.com
商业搜索   s8.taobao.com
产品搜索   s.taobao.com/product
  一淘   www.etao.com
开放搜索   open.s.taobao.com
 排行榜   top.taobao.com
垂直市场   ..
 地图购   ..


                          .   .   .   .   .   .
It's Simple




It's all about listing and sorting.




                          .   .   .   .   .   .
But, It's Not That Easy




              .   .   .   .   .   .
But, It's Not That Easy


• 260,000,000 pageviews.




                           .   .   .   .   .   .
But, It's Not That Easy


• 260,000,000 pageviews.
• 10 requirements per week at least.
• 20 buckets * 2 of (s|s8).taobao.com.
• module integrations of 4+ products.




                             .   .   .   .   .   .
But, It's Not That Easy


• 260,000,000 pageviews.
• 10 requirements per week at least.
• 20 buckets * 2 of (s|s8).taobao.com.
• module integrations of 4+ products.
• 10 * 20 * 2 * 4 = ?




                             .   .   .   .   .   .
But, It's Not That Easy




              .   .   .   .   .   .
But, It's Not That Easy


Stable   • No accident
         • Less bugs
         • Testable




                         .   .   .   .   .   .
But, It's Not That Easy


  Stable   • No accident
           • Less bugs
           • Testable
Maintainable Forward/Backward compatible
           • Easy doing experiments




                            .   .   .   .   .   .
But, It's Not That Easy


  Stable   • No accident
           • Less bugs
           • Testable
Maintainable Forward/Backward compatible
           • Easy doing experiments
Performance Fast response for end-users




                            .   .   .   .   .   .
Environments


Split into three:




                         .   .   .   .   .   .
Environments


Split into three:
  .. Development / Co-Working
  1




                                .   .   .   .   .   .
Environments


Split into three:
  .. Development / Co-Working
  1

  .. Testing
  2




                                .   .   .   .   .   .
Environments


Split into three:
  .. Development / Co-Working
  1

  .. Testing
  2

  .. Publish
  3




                                .   .   .   .   .   .
Version Control




(Git + Subversion)




                 .   .   .   .   .   .
Git For Development


• More Lightweight
• More Flexible




                     .   .   .   .   .   .
Git For Development


• More Lightweight
• More Flexible
• Easy Branching
    • master
    • prepub
    • development




                     .   .   .   .   .   .
Git For Development


• More Lightweight
• More Flexible
• Easy Branching
    • master
    • prepub
    • development

• That's not what SCM should do!




                            .   .   .   .   .   .
Subversion For Publish



• Permission Control
• Easy Management




                       .   .   .   .   .   .
Subversion For Publish



• Permission Control
• Easy Management
• That's what SCM should do!




                               .   .   .   .   .   .
Directory-based
                     Timestamp


• search/110303/search.js




                            .   .   .   .   .   .
Directory-based
                      Timestamp


• search/110303/search.js
• Fix dependencies conflict on publishing




                             .   .   .   .   .   .
Directory-based
                       Timestamp


• search/110303/search.js
• Fix dependencies conflict on publishing
• Easy rollback




                             .   .   .   .   .   .
Control Everything


HTML Demo Center
         • mock everything online
Assets Split them into pieces
         • js,css,mhtml,images




                           .   .    .   .   .   .
Control Everything


 HTML Demo Center
          • mock everything online
Assets Split them into pieces
          • js,css,mhtml,images
Scripts Control automation tools




                            .   .    .   .   .   .
Quarity
(Whitebox Testing)
  • gjslint.vim
  • JavaScriptLint.vim
  • reviewboard




                         .    .   .   .   .   .
Quarity
(Whitebox Testing)
   • gjslint.vim
   • JavaScriptLint.vim
   • reviewboard
(Blackbox Testing)
   • Daily Test (dev)
   • Intergration Testing (QA)




                                 .    .   .   .   .   .
Quarity
(Whitebox Testing)
   • gjslint.vim
   • JavaScriptLint.vim
   • reviewboard
(Blackbox Testing)
   • Daily Test (dev)
   • Intergration Testing (QA)
   • Publish Review (dev)



                                 .    .   .   .   .   .
Quarity
(Whitebox Testing)
   • gjslint.vim
   • JavaScriptLint.vim
   • reviewboard
(Blackbox Testing)
   • Daily Test (dev)
   • Intergration Testing (QA)
   • Publish Review (dev)
   • Two Step Regression Testing (QA)


                               .    .   .   .   .   .
Building System
(Ant + Bash)




                      .   .   .   .   .   .
Building System
(Ant + Bash)
  .. Concat (by config)
  1

  .. Code Preprocessing
  2
         • Clean Debug Codes
         • Handle DataURI
         • Compress

  ..
  3    Handle Timestamp
  ..
  4    Sync with Subversion




                               .   .   .   .   .   .
Building System
(Ant + Bash)
  .. Concat (by config)
  1

  .. Code Preprocessing
  2
       • Clean Debug Codes
       • Handle DataURI
       • Compress

  ..
  3   Handle Timestamp
   .. Sync with Subversion
   4

(a building system need to be..)
   • Easy Run/Use
   • Configurable

                                   .   .   .   .   .   .
Assets Handler



(PHP + nginx)




                      .   .   .   .   .   .
Assets Handler



(PHP + nginx)
  • CDN Combo Handler
  • Local Assets Combo




                         .   .   .   .   .   .
Summaries



dev Just code it
test Control everything, test carefully
pub Automatic jobs




                                  .   .   .   .   .   .
What's Next?


dev    Connect PHP with assets
test   UnitTest coverage
pub    Frontend Config/Building server
pub    Git hooks for easier building(post-receive)




                                   .   .   .   .   .   .
Thank you!
   Q&A




             .   .   .   .   .   .

More Related Content

Viewers also liked

FtnApp 的缩略图实践
FtnApp 的缩略图实践FtnApp 的缩略图实践
FtnApp 的缩略图实践Frank Xu
 
Watcher
WatcherWatcher
Watcher
Frank Xu
 
构建可扩展的静态资源管理系统
构建可扩展的静态资源管理系统构建可扩展的静态资源管理系统
构建可扩展的静态资源管理系统Webrebuild
 
JsDoc的使用
JsDoc的使用JsDoc的使用
JsDoc的使用Frank Xu
 
排行榜V3项目总结
排行榜V3项目总结排行榜V3项目总结
排行榜V3项目总结Frank Xu
 
淘宝搜索前端优化
淘宝搜索前端优化淘宝搜索前端优化
淘宝搜索前端优化Frank Xu
 
陈子舜-Html5 based web app
陈子舜-Html5 based web app陈子舜-Html5 based web app
陈子舜-Html5 based web app
Webrebuild
 
使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统Frank Xu
 
淘宝交易平台前端重构
淘宝交易平台前端重构淘宝交易平台前端重构
淘宝交易平台前端重构Frank Xu
 

Viewers also liked (9)

FtnApp 的缩略图实践
FtnApp 的缩略图实践FtnApp 的缩略图实践
FtnApp 的缩略图实践
 
Watcher
WatcherWatcher
Watcher
 
构建可扩展的静态资源管理系统
构建可扩展的静态资源管理系统构建可扩展的静态资源管理系统
构建可扩展的静态资源管理系统
 
JsDoc的使用
JsDoc的使用JsDoc的使用
JsDoc的使用
 
排行榜V3项目总结
排行榜V3项目总结排行榜V3项目总结
排行榜V3项目总结
 
淘宝搜索前端优化
淘宝搜索前端优化淘宝搜索前端优化
淘宝搜索前端优化
 
陈子舜-Html5 based web app
陈子舜-Html5 based web app陈子舜-Html5 based web app
陈子舜-Html5 based web app
 
使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统
 
淘宝交易平台前端重构
淘宝交易平台前端重构淘宝交易平台前端重构
淘宝交易平台前端重构
 

Similar to Web Developing In Search

Introduction of vertical crawler
Introduction of vertical crawlerIntroduction of vertical crawler
Introduction of vertical crawler
Jinglun Li
 
Joe Damato
Joe DamatoJoe Damato
Joe Damato
Ontico
 
Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?
Bruno Capuano
 
Performance Benchmarking: Tips, Tricks, and Lessons Learned
Performance Benchmarking: Tips, Tricks, and Lessons LearnedPerformance Benchmarking: Tips, Tricks, and Lessons Learned
Performance Benchmarking: Tips, Tricks, and Lessons Learned
Tim Callaghan
 
Travis CI
Travis CITravis CI
Travis CI
bsiggelkow
 
scaling compiled applications - highload 2013
scaling compiled applications - highload 2013scaling compiled applications - highload 2013
scaling compiled applications - highload 2013
ice799
 
Qcon beijing 2010
Qcon beijing 2010Qcon beijing 2010
Qcon beijing 2010
Vonbo
 
Rapid development with Rails
Rapid development with RailsRapid development with Rails
Rapid development with Rails
Yi-Ting Cheng
 
Play Framework and Activator
Play Framework and ActivatorPlay Framework and Activator
Play Framework and Activator
Kevin Webber
 
Keep Calm and Use Kanban
Keep Calm and Use KanbanKeep Calm and Use Kanban
Keep Calm and Use Kanban
Acquate
 
Escaping Automated Test Hell - One Year Later
Escaping Automated Test Hell - One Year LaterEscaping Automated Test Hell - One Year Later
Escaping Automated Test Hell - One Year Later
Wojciech Seliga
 
mtl_rubykaigi
mtl_rubykaigimtl_rubykaigi
mtl_rubykaigi
Hirotomo Oi
 
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
Chris Gates
 
CiklumCPPSat: Alexey Podoba "Automatic assembly. Cmake"
CiklumCPPSat: Alexey Podoba "Automatic assembly. Cmake"CiklumCPPSat: Alexey Podoba "Automatic assembly. Cmake"
CiklumCPPSat: Alexey Podoba "Automatic assembly. Cmake"
Ciklum Ukraine
 
Ruby and Distributed Storage Systems
Ruby and Distributed Storage SystemsRuby and Distributed Storage Systems
Ruby and Distributed Storage Systems
SATOSHI TAGOMORI
 
Ship It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemShip It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails Ecosystem
Yi-Ting Cheng
 
Drupal & Continous Integration - SF State Study Case
Drupal & Continous Integration - SF State Study CaseDrupal & Continous Integration - SF State Study Case
Drupal & Continous Integration - SF State Study Case
Emanuele Quinto
 
PAC 2019 virtual Christoph NEUMÜLLER
PAC 2019 virtual Christoph NEUMÜLLERPAC 2019 virtual Christoph NEUMÜLLER
PAC 2019 virtual Christoph NEUMÜLLER
Neotys
 
Source control - what you need to know
Source control - what you need to knowSource control - what you need to know
Source control - what you need to know
daveymni
 
.NET Debugging Workshop
.NET Debugging Workshop.NET Debugging Workshop
.NET Debugging Workshop
Sasha Goldshtein
 

Similar to Web Developing In Search (20)

Introduction of vertical crawler
Introduction of vertical crawlerIntroduction of vertical crawler
Introduction of vertical crawler
 
Joe Damato
Joe DamatoJoe Damato
Joe Damato
 
Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?
 
Performance Benchmarking: Tips, Tricks, and Lessons Learned
Performance Benchmarking: Tips, Tricks, and Lessons LearnedPerformance Benchmarking: Tips, Tricks, and Lessons Learned
Performance Benchmarking: Tips, Tricks, and Lessons Learned
 
Travis CI
Travis CITravis CI
Travis CI
 
scaling compiled applications - highload 2013
scaling compiled applications - highload 2013scaling compiled applications - highload 2013
scaling compiled applications - highload 2013
 
Qcon beijing 2010
Qcon beijing 2010Qcon beijing 2010
Qcon beijing 2010
 
Rapid development with Rails
Rapid development with RailsRapid development with Rails
Rapid development with Rails
 
Play Framework and Activator
Play Framework and ActivatorPlay Framework and Activator
Play Framework and Activator
 
Keep Calm and Use Kanban
Keep Calm and Use KanbanKeep Calm and Use Kanban
Keep Calm and Use Kanban
 
Escaping Automated Test Hell - One Year Later
Escaping Automated Test Hell - One Year LaterEscaping Automated Test Hell - One Year Later
Escaping Automated Test Hell - One Year Later
 
mtl_rubykaigi
mtl_rubykaigimtl_rubykaigi
mtl_rubykaigi
 
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
 
CiklumCPPSat: Alexey Podoba "Automatic assembly. Cmake"
CiklumCPPSat: Alexey Podoba "Automatic assembly. Cmake"CiklumCPPSat: Alexey Podoba "Automatic assembly. Cmake"
CiklumCPPSat: Alexey Podoba "Automatic assembly. Cmake"
 
Ruby and Distributed Storage Systems
Ruby and Distributed Storage SystemsRuby and Distributed Storage Systems
Ruby and Distributed Storage Systems
 
Ship It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemShip It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails Ecosystem
 
Drupal & Continous Integration - SF State Study Case
Drupal & Continous Integration - SF State Study CaseDrupal & Continous Integration - SF State Study Case
Drupal & Continous Integration - SF State Study Case
 
PAC 2019 virtual Christoph NEUMÜLLER
PAC 2019 virtual Christoph NEUMÜLLERPAC 2019 virtual Christoph NEUMÜLLER
PAC 2019 virtual Christoph NEUMÜLLER
 
Source control - what you need to know
Source control - what you need to knowSource control - what you need to know
Source control - what you need to know
 
.NET Debugging Workshop
.NET Debugging Workshop.NET Debugging Workshop
.NET Debugging Workshop
 

Recently uploaded

Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 

Recently uploaded (20)

Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 

Web Developing In Search

  • 1. Web Developing in Search 文河 Frontend Engineer @Taobao @yyfrankyy f2e.us March 11, 2011 . . . . . .
  • 2. Agenda .. Introduction 1 .. Development 2 .. Testing 3 .. Publish 4 .. Summaries 5 . . . . . .
  • 3. Products 商品搜索 s.taobao.com 商业搜索 s8.taobao.com 产品搜索 s.taobao.com/product 一淘 www.etao.com 开放搜索 open.s.taobao.com 排行榜 top.taobao.com 垂直市场 .. 地图购 .. . . . . . .
  • 4. It's Simple It's all about listing and sorting. . . . . . .
  • 5. But, It's Not That Easy . . . . . .
  • 6. But, It's Not That Easy • 260,000,000 pageviews. . . . . . .
  • 7. But, It's Not That Easy • 260,000,000 pageviews. • 10 requirements per week at least. • 20 buckets * 2 of (s|s8).taobao.com. • module integrations of 4+ products. . . . . . .
  • 8. But, It's Not That Easy • 260,000,000 pageviews. • 10 requirements per week at least. • 20 buckets * 2 of (s|s8).taobao.com. • module integrations of 4+ products. • 10 * 20 * 2 * 4 = ? . . . . . .
  • 9. But, It's Not That Easy . . . . . .
  • 10. But, It's Not That Easy Stable • No accident • Less bugs • Testable . . . . . .
  • 11. But, It's Not That Easy Stable • No accident • Less bugs • Testable Maintainable Forward/Backward compatible • Easy doing experiments . . . . . .
  • 12. But, It's Not That Easy Stable • No accident • Less bugs • Testable Maintainable Forward/Backward compatible • Easy doing experiments Performance Fast response for end-users . . . . . .
  • 14. Environments Split into three: .. Development / Co-Working 1 . . . . . .
  • 15. Environments Split into three: .. Development / Co-Working 1 .. Testing 2 . . . . . .
  • 16. Environments Split into three: .. Development / Co-Working 1 .. Testing 2 .. Publish 3 . . . . . .
  • 17. Version Control (Git + Subversion) . . . . . .
  • 18. Git For Development • More Lightweight • More Flexible . . . . . .
  • 19. Git For Development • More Lightweight • More Flexible • Easy Branching • master • prepub • development . . . . . .
  • 20. Git For Development • More Lightweight • More Flexible • Easy Branching • master • prepub • development • That's not what SCM should do! . . . . . .
  • 21. Subversion For Publish • Permission Control • Easy Management . . . . . .
  • 22. Subversion For Publish • Permission Control • Easy Management • That's what SCM should do! . . . . . .
  • 23. Directory-based Timestamp • search/110303/search.js . . . . . .
  • 24. Directory-based Timestamp • search/110303/search.js • Fix dependencies conflict on publishing . . . . . .
  • 25. Directory-based Timestamp • search/110303/search.js • Fix dependencies conflict on publishing • Easy rollback . . . . . .
  • 26. Control Everything HTML Demo Center • mock everything online Assets Split them into pieces • js,css,mhtml,images . . . . . .
  • 27. Control Everything HTML Demo Center • mock everything online Assets Split them into pieces • js,css,mhtml,images Scripts Control automation tools . . . . . .
  • 28. Quarity (Whitebox Testing) • gjslint.vim • JavaScriptLint.vim • reviewboard . . . . . .
  • 29. Quarity (Whitebox Testing) • gjslint.vim • JavaScriptLint.vim • reviewboard (Blackbox Testing) • Daily Test (dev) • Intergration Testing (QA) . . . . . .
  • 30. Quarity (Whitebox Testing) • gjslint.vim • JavaScriptLint.vim • reviewboard (Blackbox Testing) • Daily Test (dev) • Intergration Testing (QA) • Publish Review (dev) . . . . . .
  • 31. Quarity (Whitebox Testing) • gjslint.vim • JavaScriptLint.vim • reviewboard (Blackbox Testing) • Daily Test (dev) • Intergration Testing (QA) • Publish Review (dev) • Two Step Regression Testing (QA) . . . . . .
  • 32. Building System (Ant + Bash) . . . . . .
  • 33. Building System (Ant + Bash) .. Concat (by config) 1 .. Code Preprocessing 2 • Clean Debug Codes • Handle DataURI • Compress .. 3 Handle Timestamp .. 4 Sync with Subversion . . . . . .
  • 34. Building System (Ant + Bash) .. Concat (by config) 1 .. Code Preprocessing 2 • Clean Debug Codes • Handle DataURI • Compress .. 3 Handle Timestamp .. Sync with Subversion 4 (a building system need to be..) • Easy Run/Use • Configurable . . . . . .
  • 35. Assets Handler (PHP + nginx) . . . . . .
  • 36. Assets Handler (PHP + nginx) • CDN Combo Handler • Local Assets Combo . . . . . .
  • 37. Summaries dev Just code it test Control everything, test carefully pub Automatic jobs . . . . . .
  • 38. What's Next? dev Connect PHP with assets test UnitTest coverage pub Frontend Config/Building server pub Git hooks for easier building(post-receive) . . . . . .
  • 39. Thank you! Q&A . . . . . .