高级软件工程师(面试题)

该功用于行政区域划分,商品分类,等等 例如中国->广东-深圳 …..

要求:

    无限极分类,层次深度不限
  1. 快速检索,不能使用递归
  2. 只能使用一个数据库表实现
  3. 可以生成树形目录

一个商品有很多属性,例如尺寸,颜色这些属性有固定的值,而另一些属性如重量,体积是需要填写具体数值的,并且还有对应的单位。

要求:

    商品分类(上一个问题中已经实现)
  1. 商品属性,有多个属性,且数目不确定,所以需要设计成可以无限添加
  2. 商品属性即可下拉选择,也可以填写具体数值

问题:

    商品搜索怎么解决,包含商品名称,属性,属性值,描述的搜索
  1. 商品的库存怎么设计
  2. 分类搜索,怎样列出所有子分类以及子分类下的所有分类(无限深度)

场景模拟: 用户开户注册时常常填写了一部分资料,就离开了,有几种情况
    用户放弃注册
  1. 络连接失败
  2. 提交出错
  3. 其他链接吸引了用户点击

等等原因……

需求:

    要求记录用户填写资料,再次回来(数日/数月后)点击注册的时候,用户不用重新填写所有资料,只需完成未完成的部分即可。
  1. 重要资料例如手机,电邮,即时通讯 码等等需要记录到数据库,已被公司回访客户。
  2. 在用户成功注册后应该删除之前保留在数据库中的手机,电邮,即时通讯等等。

请问如何实现料怎样保存/p>


简述什么是事务处理/p>

在不能使用数据库的事务处理以及锁(表锁/行级锁)时,怎么保持数据一致性么解决数据库并发操作/p>

    怎样解决避免多个用户读读取同一条数据记录/li>
  1. 怎样避免多个用户更新同一条数据

例如有一个电商 站每个小时有100个用户下单,公司需要有10个客服处理用户的订单。

问题:

    当10位员工进入admin后台,查看订单会出现什么问题/li>
  1. 怎样防止一个订单被一个以上的人看到/li>
  2. 如果两个员工同事看到同一个个订单,怎样避免员工,重复审批同一张订单/li>
  3. 如果订单X最先被员工A点开,这是员工A去忙其他事情,X定点就会一直挂起,怎样将订单重新分配/li>

简述 MVC 原理以及实现

  • 怎样实现 URL 路由
  • 怎样实现类,方法访问权限控制
  • 请问下面代码怎么实现/p>

    用你最熟悉的语言实现。

    {% highlight java %}

    DB db = new DB() db.select(new field(“name”,”age”…)).from(“user”).where(new And(“xxx=xx”, “xxx=xxx”)).limit(10).offset(10).orderby(“id”,DESC)

    {% endhighlight %}


    什么是阻塞,什么是非阻塞/li>

  • 什么是同步,什么是异步/li>
  • 什么情况下使用线程锁/li>
  • 进程与线程的区别/li>
  • 进程间通信有那几种,线程通信有那几种,以及各自的优势/li>

    消息有哪些瓶颈/p>

    什么是序列化

  • 常用序列化方式都有哪些

  • CDN 缓存的原理/li>

  • CDN 都可能缓存那些内容/li>
  • 站首页90%的内容是静态的,但是用户登录状态,消息状态是动态的怎么解决/li>
  • JSON 可能缓存吗/li>
  • 浏览器缓存与CDN缓存的关系,怎样实现用户浏览器与CDN同时缓存/li>

    编写一个求和程序

    与上面类似

    这是 一个简单的 OOP 面试题,在做多年的面试经验中,发现很多人不知道怎样实现上面的问题


    Restfull 是基于HTTP协议的RPC系统,对于公共服务不存在安全上面的考虑,调用方法也多是ajax,所以公共系统是开放的。

    如果是私有服务,就需要考虑安全问题了,试题如下:

    什么是 CQRS

  • 可以在那些地方处理 CQRS
  • 怎样为 Restful 增加 HTTP 认证

  • 增加 http 认证有哪些方式
  • 用户与密码安全吗/li>

    购买的证书与自己生成的证书有什么区别

  • SSL 怎样配置,在哪里配置
  • 访问 SSL 的 Restful 需要注意什么
  •  

    什么是顺平分割,什么是垂直分割

  • 分表,分库有需要主要那些事项
  • 分表,分库后怎么解决夸库查询
  • 分表,分库后怎么创建索引
  • 数据库复制有哪几种/li>

  • 简述主从复制,主主复制,环形复制
  • 当选择主从复制是软件开发上有哪些注意事项
  • 主主如何应用

  • 背景模拟: 有一个电商平台已经开发完毕,编译打包,上线,运营。 由于市场瞬息万变,原有的打折系统设计已经不能满足现在的需求,如果不修改可会会给公司带来经济随时。 现在需要重新修改程序逻辑,但问题来了。目前正在做推广促销活动,系统访问量大不能中断现有服务,哪怕30都会给公司带来不可挽回的损失。

    我的问题:

      怎样在这个系统的设计之初解决后面遇到的问题
    1. 如何设计一个弹性打折系统
    2. 在不重启的情况下怎样改编编译语言的内部运行逻辑

    问题延伸: 这个问题可以延伸到苹果IOS,例如发布app到苹果appstore至少需要半个月,半个月可能存在很多变数,很可能应用被审批通过,程序已经不在适合当前的情况了。


    什么是高可用

  • 什么是双机热备,双机热备有那些缺陷
  • 什么是双活
  • 请简述实现软件高可用要考虑那些因素
  • 请简述设计一个远程异地灾备系统
      两个机房怎样设计灾备系统
    1. 三个机房怎样设计灾备系统
    2. 跨境情况需要考虑那些影响因素

    数据库怎样实现灾备

  • 缓存怎样实现灾备
  • 应用服务器怎样实现灾备
  • Web 服务器怎样实现灾备
  • 计划任务、定时周期运行的程序怎样灾备
  • 消息队列怎样实现灾备
  • 双活的软件怎样实现同一时刻只能一个运行,或者交替运行

  • 怎样实现软件自动化部署,实现自动化部署的关键几点是什么/li>

  • 怎样处理配置文件
  • 怎样排除不必要或者不希望部署的文件
  • 怎样实现增量部署
  • 怎样实现差异部署
  • 怎样部署大文件,例如视频等。问题:有一个文件有500M,内容随时有修改,也会不定期追加,怎样实现差异部署,而不是再次发布一个500M的文件。
  • 怎样部署编译软件
  • 怎样备份
  • 怎样部署windows程序
  • 怎样快速回撤,切换时间点或者指定的版本。
  • 以上不允许使用GIT/SVN实现自动部署。要求自动化不是在30秒内完成。


    插件有几部分组成

  • 如何实现插件安装,卸载,启用,禁用/li>
  • 安装,卸载,启用,禁用怎样实现不停机,不关闭服务的情况进行/li>

    怎样实现 URL 路由

  • 怎样实现控制器
  • 怎样实现视图
  • 怎样实现模型
  • 框架分为几个部分/li>

  • 采用什么协议与框架通信/li>
  • 如果考虑到性能使用二进制协议你怎样实现/li>
  • 如何解决并发冲突/li>
  • 如何支持事务/li>
  • 你怎样与消息队列集成或者通信/li>

    背景:计划任务即周期或定时运行的程序,我们要解决单点故障问题与负载均衡的问题,在一个分布式系统中单节点是不允许的。

    设计要求:能够实现高可用,负载均衡,横向扩展

      怎样处理同时运行产生的冲突问题/li>
    1. 怎样排队运行/li>
    2. 任务如何持久化/li>
    3. 一个节点宕机,另一个节点怎么接管没有完成的任务/li>
    4. 如何横向扩展/li>
    5. 扩展,收缩,维护如果能做到不停机,不影响业务/li>

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

  • 上一篇 2017年9月16日
    下一篇 2017年9月16日

    相关推荐