在一些著名的网站的搜索框上,会有一种“自动完成”功能。css
好比google、百度和淘宝:html
如今,咱们来考虑如何实现这个功能。前端
在这一步,不要估计开发时间。编程
把学习新技术(一些前端基础知识)的时间花在这个阶段。框架
以完成原型为目标,没必要深刻技术。学习
去 http://www.w3schools.com/ 得到入门知识网站
去 https://developer.mozilla.org/ 查阅文档google
请仅仅从功能角度分析这三个组件。设计
提示,若是你试图从代码中找到答案,你极可能陷入地狱。htm
除了界面,能够关注一些细节,好比键盘操做、响应时间。
按照软件工程的模型进行设计、复审和实现。
在设计阶段,讨论清楚这个组件的用户须要面对的API:它们的命名、调用方式、编程风格、它所依赖的框架(若是有必要的话)。
尽可能让使用变得简单。
尽可能用可扩展性代替枚举需求。
根据第二步的需求来完成代码,没必要试图跟原版"如出一辙"。
考虑清楚如何管理这个组件用到的html、css和js代码。
若是能够实现,和小伙伴们讨论下,为何大家的组件可以应对未知的需求?回顾设计阶段,哪些设计要素产生了关键性做用?
若是不能够实现,和小伙伴讨论下,为何大家的组件没法应对新需求?须要作怎样的设计变动和代码重构,才能支持新的需求?