[深圳] 一登(SuperID)招聘 Node.js 程序员1名(15K+)
关于公司
目前公司刚完成A轮融资 公司主页:http://superid.me/ 酷炫的团队成员介绍:http://superid.me/team.html
职位信息
后端程序员,主要技术栈为 Node.js + MySQL + Redis,与老雷一起完成一登后端部分的所有开发任务。 工作内容包括:
- SDK的API服务器功能维护
- 开发者中心网站后端部分维护
- 内部管理系统功能开发
- 服务器运维系统的开发
工作待遇
月薪 15K+(具体根据面试结果评估)
工作地点
深圳 南山区讯美大厦1号楼5B
招聘要求
- 有Node.js相关项目经验
- 有ES6使用经验
- 喜欢各种折腾
- 自学能力强,有学习新技术的热情
- 有GitHub账号
- 自带翻墙技能,可以毫无压力访问Google、Stack Overflow等网站
不要问「应届生 / 实习生」要不要,只看是否满足上面的几点要求(学历不限,工作年限不限)
面试需要选做以下至少一道题目(越多越好,越完善越好,这是用于评估你的编程水平的重要条件)
1、实现一个简单 MySQL ORM 模块
支持类似如下的使用方法(最好包含基本的单元测试):
const orm = new MyORM({
// mysql连接信息
connection: {host: '127.0.0.1', port: 3306, user: 'root', password: '', database: 'test'},
});
orm.table('xxxx').find(query).skip(0).limit(20)
.then(list => console.log('results', list))
.catch(err => console.log(err))
orm.table('xxxxx').update(query, update)
.then(ret => console.log(ret))
.catch(err => console.log(err))
// 另外需要支持基本的 delete, findOne 等方法
2、实现一个简单的 Redis Session 中间件
支持类似如下的使用方法(最好包含基本的单元测试):
// 初始化中间件
app.use(mySession({
connection: {host: '127.0.0.1', port: 6379}, // Redis连接信息
maxAge: 3600, // session的有效期
sessionId: 'my.sid', // session ID 的cookie名称
}));
// 使用时直接在 req.session 上添加或删除属性即可
3、使用 net 模块实现一个简单的 HTTP 客户端
支持类似如下的使用方法(最好包含基本的单元测试):
request({
method: 'POST', // 请求方法
url: 'http://xxx.com', // 请求地址
qs: {a: 123, b: 456}, // query查询参数
form: {c: 111, d: 'zxxxxx'}, // post body参数
headers: {
'user-agent': 'SuperID/Node.js', // 请求头
},
})
.then(ret => {
// ret.headers 表示响应头
// ret.statusCode 表示响应代码
// ret.body 表示响应内容(Buffer)
})
.catch(err => console.log(err))
4、实现一个简单的测试单元框架
支持类似如下的使用方法(最好包含基本的单元测试):
// 同步功能测试
test('测试1', function () {
assert.euqal(1 + 1, 2);
});
// 异步功能测试
test('测试2', function (done) {
setTimeout(function () {
assert.equal(2 + 2, 4);
done();
}, 100);
});
执行测试后返回类似如下的结果:
测试1 - 耗时100ms - 失败
测试2 - 耗时125ms - 通过
联系方式
以上信息仅供参考,如果对该职位有兴趣可联系老雷 QQ:402450329 微信:leizongmin 邮箱:[email protected] (可直接发送简历到此邮箱) 或在此帖评论
26 回复