阿里的技术专家认为我的工作经历和岗位比较相符,遂进入内推。虽然我和P7还有亿点差距,但这次面试为我提供了前进的方向,受益匪浅。感谢热忱的前辈们!
一、技术栈
关键词:
技术栈、选择原因
答:
面向aws编程:
router53:域名管理
API Gateway:创建基于 HTTP 的 RESTful API
Lambda:代码运行环境
S3:提供文件存储
DynamoDB:非关系型数据库
CDN加速: Amazon CloudFront
IAM:身份权限管理
X-Ray:查看请求和响应的详细信息,并提供用于查看、筛选和获取数据洞察力的工具,以确定问题和发现优化的机会。
AppSync:构建 GraphQL API。.yml定义数据源、映射模板(关联架构和解析程序),.graphql构建架构,txt编写解析程序。
CloudWatch:日志收集,以及基于日志的错误抓取、警报。
小结:
说清楚技术构成,通过说明选择原因来体现技术积累。这些技术不是我拍板的,但其实也有东西可以讲,比如用过dashbird来做服务监控,但是由于和CloudWatch的功能重复以及设计缺陷(不能屏蔽未授权错误)而被放弃。
二、JMeter
关键词:
选择原因、如何使用、扩容问题
答:
因为自己简单写的node工具没有人家成熟的软件好用。讲了一下使用流程、测试目的以及结果,以及对未来数据量的计划,比如使用EC2搭建分布式测试环境。
小结:
表现不错,对技术有深入理解,能体现能力。
三、GraphQL
关键词:
踩过的坑、优缺点
答:
只讲了怎么使用,对N+1问题不了解,回忆不起踩过的坑,讲不出对比RESTful的优缺点。
小结:
对简历上的技能可能遇到的常见问题应该有所准备。
四、Serverless原理
关键词:
docker、k8s、动态扩容
答:
只知道是基于容器实现的弹性计算集群,但是对上述关键词的具体知识完全不了解。
小结:
虽然Lambda不是开源的东西,但是它的底层原理属于比较常见的技术手段。可以说是这个岗位的核心要求,死的明明白白。
五、CLI工具
关键词:
为什么用bash不用node、做了什么
答:
大部分命令都是shell下运行的,比如sls,用Node也是要写对应的shell命令,画蛇添足了。
版本号迭代、git tag管理、依赖安装、并行发布、错误中止、拉起警报
小结:
还行。
六、开源项目
因为不了解如何参与开源项目,面试官为我做了讲解。
关键词:
提issue、看issue、提pr
以Koa举例,将你在使用过程中踩过的坑(可以是bug,也可以是难点)在issue中提出。同时可以看看其他人提出的issue,想想为什么别人碰得到你却碰不到,以及这个问题要怎么解决。你可以在本地复现这个问题,如果得以解决,可以把自己的代码提交pull request(注意单元测试)。