Skip to content

Instantly share code, notes, and snippets.

@hjkcai
Last active November 9, 2022 23:35
Show Gist options
  • Save hjkcai/4cda398caaacabda6da98111824c15be to your computer and use it in GitHub Desktop.
Save hjkcai/4cda398caaacabda6da98111824c15be to your computer and use it in GitHub Desktop.

深大官微技术部 3.0 最终考核题

下面的考核题,前端后端的是不一样的。 前端的同学任选一题前端的题,后端的同学任选一题后端的题

对于所有题目,代码结构都会作为评判的一个重要标准! 尽可能把你的打码写漂亮(不只是长的漂亮)


前端

1. TodoList - 实现一个简单的TodoList

不懂啥是TodoList的自行Google

限制

  1. 界面不能照抄网上已有页面的风格,可以把网上的设计稿做成你的页面,也可以自己设计
  2. 不能使用任何已有的库(如jQuery, Bootstrap, Vue等)
  3. 增加、删除、修改的操作执行后,页面不能刷新

基本功能

  1. 增删改查

    增删改查是指可以实现“增加”、“删除”、“修改”、“查询”四个功能。 其中“查询”不代表“搜索”,只要页面刷新后,数据能够正常显示即可。

  2. 可以储存 “内容”“是否已完成” 的状态

  3. 使用localStorage储存数据

  4. 界面尽可能做的好看

加分项

  1. 可以只显示“未完成”或“已完成”的条目

    你可以把它们分开显示,或者是通过按钮切换显示,或者你也可以自己想一种把它们分开显示的方法

  2. 给每一条todo添加 “完成日期”

  3. 在第二点的基础上,已过期的条目有不同的样式

  4. 其它更牛逼的功能

2. myQuery - 实现一个简易版的jQuery框架

限制

  1. 不能使用任何已有的库(如lodash, underscore等)
  2. 不能去查jQuery源码

基本功能

  1. 能够通过 $ 标识符来访问myQuery

  2. 能够通过CSS选择器来选择特定的元素

  3. 能对选定的元素执行以下操作:

    如果不知道这些操作是什么的自行Google

    • addClass(class), hasClass(class), removeClass(class), toggleClass(class)
    • css(property), css(property, value)
    • each(func)
    • find(selector)
    • hide(), show(), toggle()
    • html(), html(content)
    • remove()

加分项

  1. 能通过$(window)$(document)执行部分操作
  2. 能通过$(func)实现当DOM加载完成时,执行func函数
  3. 能对选定的元素执行以下操作:
    • attr(name), attr(name, value)
    • css(cssObject)
    • on(event, handler), once(event, handler), off(event, handler)
    • offset(), offset(coordinates)
    • text(), text(content)
  4. 有一份较为详细的使用文档

后端

注:后端可以使用任何在npm上已有的库

1. TodoList - 实现一套RESTful风格的TodoList

不懂啥是TodoList的自行Google

基本功能

  1. 数据可以在本地储存(文件、数据库都可以),后端服务重启后依然能有数据
  2. 一条todo能够拥有以下属性
    • 内容
    • 完成日期
    • 是否已完成
  3. 实现以下API
    • GET /api/todos 获取所有todo
    • GET /api/todos?search= 根据内容搜索todo
    • POST /api/todo/:id 修改某条todo
    • PUT /api/todos 添加一条todo
    • DELETE /api/todo/:id 删除某条todo

加分项

  1. 保存每个访问的log
  2. 使用数据库储存数据
  3. 有个简单的登录系统

    可以使用任意方式实现这个登录系统

2. koa-lite - 实现一个简单的类似于koa的HTTP服务器库

基本功能

  1. 实现koa2的以Promise为基础的middleware机制
  2. 简单实现koa的ctx功能(提示:使用getter和setter)
    • ctx.headers
    • ctx.method, ctx.method=
    • ctx.path, ctx.path=
    • ctx.query, ctx.query=
    • ctx.querystring
    • ctx.originalUrl
    • ctx.body, ctx.body=
    • ctx.status, ctx.status=
  3. 如果没有一个middleware对一个请求产生响应,默认返回404状态码

加分项

  1. 完整实现ctx的功能
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment