系统架构面试题(1)基础知识
面向对象优点和缺点有哪些,哪些场合不适合面向对象?软件设计领域有哪些设计模式?你常用哪几种设计模式,适应哪些场景,优缺点是什么?公司级应用有哪些特别要求?怎么进行子系统划分?你如何看待服务化,什么样的业务需要做服务化?
面向对象优点和缺点有哪些,哪些场合不适合面向对象?软件设计领域有哪些设计模式?你常用哪几种设计模式,适应哪些场景,优缺点是什么?公司级应用有哪些特别要求?怎么进行子系统划分?你如何看待服务化,什么样的业务需要做服务化?
我们总以为学习一定会有收获,其实方法不当,既让人身心疲惫,也没有切实的回报。不少人每天都看技术文章,第二天就忘干净了。面试官问技术方案,明明心里清楚,口述出来却前言不搭后语。面试官再问底层算法,你说看过但是忘记了。他不在乎你看没看过,答不上就是零分。正如男女相亲,平时男方挺能说,关键时候却支支吾吾,姑娘必然认为他不行。学到的东西,无法说出来让他人理解,本质是没有真正的弄懂。高效学习的诀窍是:把自己当成一台计算机,既有输入,也要有输出,用输出倒逼输入。
广义的开放平台是个庞大的结构,它站在核心业务系统的前面,承接着所有的流量。公司所有的客户端比如Web站点、手机APP、智能硬件都对接开放平台API,只是各自的权限不同,可以访问的资源不同。狭义的开放平台只是打开了一扇门,让合作伙伴进来参与业务互动。从业务层面上看,开放平台属于流量渠道之一。本文重点讨论的是狭义的开放平台。
我已经工作十多年,从事过多年的业务研发和技术管理工作,也有过短暂的创业经历。由于工作需要,我曾经阅读过上千份简历,面试过上百个求职者,在程序员求职招聘领域积累了丰富的经验。本专栏融入了真实面试经验和技巧,譬如怎样写简历、谈项目经验、谈薪资等等。
Canal[kə’næl]是由Alibaba开发的数据同步中间件,译为水道/管道/沟渠,通过解析MySQL数据库增量日志,提供数据订阅和消费,主要使用场景:创建数据库镜像、数据库实时备份、索引构建和实时维护、按需刷新业务cache、按业务逻辑需要处理增量数据、同步构建其他数据源。相比MySQL本身的主从机制,有下面几点优势:让架构更灵活,多机房同步比较简单;异构表之间也可以同步,可以控制不同步DDL以免出现数据丢失和不一致;Canal可以实现一个表一线程,多个表多线程的同步,速度更快。