主要内容:1.迪米特法则,2.高内聚,3.松耦合,4.代码,5.总结1.迪米特法则 迪米特法则的英文翻译是:Law of Demeter,缩写是 LOD。 单从这个名字上来看,我们完全猜不出这个原则讲的是什么。不过,它还有另外一个更加达意的名字,叫作最小知识原则,英文翻译为:The Least Knowledge Principle。 它不像 SOLID、KISS、DRY 原则那样,人尽皆知,但它却非常实用。利用这个原则,能够帮我们实现代码的“高内聚、松耦合” “
主要内容:1.Kiss原则,2.Kiss原则意义,3.Kiss原则落地1.Kiss原则 Keep It Simple and Stupid Keep It Short and Simple Keep It Simple and Straightforward. 2.Kiss原则意义 KISS 原则算是一个万金油类型的设计原则,可以应用在很多场景中。它不仅经常用来指导软件开发,还经常用来指导更加广泛的系统设计、产品设计等,比如,冰箱、建筑、iPhone 手机的设计等等
主要内容:1.DRY 原则,2.实现逻辑重复,3.功能语义重复,4.代码执行重复,5.注释重复,6.数据重复,7.提高代码复用性1.DRY 原则 它的英文描述为:Don’t Repeat Yourself。中文直译为:不要重复自己。将它应用在编程中,可以理解为:不要写重复的代码。 很多人对这条原则存在的误解。实际上,重复的代码不一定违反 DRY 原则,而且。 DRY不是只代码重复,而是“知识”的重复,意思是指业务逻辑。例如由于沟通不足,两个程序员用两种不同的方法实现同样功能的校验。 2.实现逻辑
主要内容:1.订单系统在企业中的角色,2.订单系统与各业务系统的关系,3.订单系统上下游关系,4.订单系统的业务架构1.订单系统在企业中的角色 在搭建企业订单系统之前,需要先梳理企业整体业务系统之间的关系和订单系统上下游关系,只有划分清业务系统边界,才能确定订单系统的职责与功能,进而保证各系统之间高效简洁的工作。 2.订单系统与各业务系统的关系 2.1 对外系统 所有给企业外部用户使用的系统都在这一层,包括官网、普通用户使用的C端,还包括给商户使用的商家后台和在各个销售渠道进行分销的系统,比如与
主要内容:1.消费消息的性能优化手段,2.消费者组1.消费消息的性能优化手段 1.1 稀疏索引 Kafka 利用offset 和 timestamp 查到消息。 B Tree 类的索引并不适用于 Kafka。哈希索引看起来却非常合适。 为了加快读操作,如果只需要在内存中维护一个「从 offset 到日志文件偏移量」的映射关系即可,每次根据 offset 查找消息时,从哈希表中得到偏移量,再去读文件即可。(根据 timestamp 查消息也可以采用
主要内容:1. 存储消息的性能优化手段1. 存储消息的性能优化手段 存储消息属于 Broker 端的核心功能 IO多路复用, 磁盘顺序写, page缓存, 分区分段结构 1.1 IO 多路复用 对于 Kafka Broker 来说,要做到高性能,首先要考虑的是:设计出一个高效的网络通信模型,用来处理它和 Producer 以及 Consumer 之间的消息传递问题。 SocketServer : Kafka采用的是Reactor 网络
主要内容:1. 如何理解高性能设计,2. Kafka 高性能设计的全景图,3. 生产消息的性能优化手段,4.Kafka源码分析Kafka 的高性能设计可以说是全方位的,从 Prodcuer 、到 Broker、再到 Consumer, 1. 如何理解高性能设计 对于线程池、多级缓存、IO 多路复用、零拷贝等技术是一个系统性的问题,至少需要深入到操作系统层面。从 CPU 和存储入手,去了解底层的实现机制,然后再自底往上,一层一层去解密和贯穿起来。 高性能设计离不开的就是计算和IO 计算: 1、让更
主要内容:1.Spring IOC容器的设计,2.BeanFactory和ApplicationContext的区别,3.BeanFactory容器的设计原理,4.BeanFactory的详细介绍,5.ApplicationContext容器的设计原理,6.ApplicationContext的详细介绍,7.ApplicationContext容器扩展功能详解介绍1.Spring IOC容器的设计 实现BeanFactory接口的简单容器 实现ApplicationContext接口的高级容器
团队负责人面 大概25min 1.自我介绍 2.提问环节 Q1:你最后一个实习是在字节国际支付部门,离职原因是?当时的Mentor是谁? Q2:我看见当时面试官对你的面试评价,那如果我们找他了解一下关于你的反馈,方便吗?(有点背调的味道) Q3:你在字节和快手都有实习过,快手实习时间稍微长一点,那你对这两家公司能做一个比较吗?(A:工作氛围都很扁平化;实习的岗位不同、偏重点不同,带来的收获也不同;
网不太好所以面试官是个说话不太清楚的小哥哥 1.自我介绍,问了之前实习的城市以及现在在哪里上学 2.开始介绍作品集,讲一小段就会被打断,详细讲解了每个页面需要改的地方(不花钱上了一个小时的课) 3.艺术和UI的区别? 4.平时上了什么关于UI的课程,以及学到了什么? 5.职业规划 6.可以实习的时间? 7.上一段实习做了哪些工作?
今天去了LOHO眼镜公司面试,接下来是我的一个面试流程。只是客观的陈述,希望对要去面试的人有帮助。 在邀约面试之前,已经和HR做了简单的线上沟通。我面试的是设计主创,但后面沟通说是创意设计,其实都还好。 首先,HR和我做了个简单的面试,算是入门吧!后面才是重头戏。HR问的问题都是比较普通和常见的,相信一般人去都没太大问题。HR人非常好,非常热情。 然后第二轮,一个品牌策划人员和我面试,当时听到,额
理念 Yearning自2.1.7版本之后采用权限组的方式进行权限授权,权限最低下放至数据源。 Yearning中用户先以角色的形式分为三大类,分别为 提交人/操作人/超级管理员。其中超级管理员角色为可见管理页面角色, 提交人/操作人为非可见管理页面角色。通过角色Yearning在细粒度权限划分之前先将用户分类。使管理类权限不会出现在使用者细粒度权限划分中 可根据每个用户的实际需求配置相应ddl/
在 Highcharts 中,所有的布局及样式均可通过配置来自定义。 一、布局及位置 Highcharts 图表中大部分元素都可以通过 x 和 y 参数设置偏移量来改变其位置,偏移是相对其水平对齐和竖直对齐方式的;水平对齐可用的值有 “left”、“right” 和 “center”,默认是 “left”;竖直对齐可用在值有 “top”、“bottom” 和 “middle”。 1、图表布局 Hi
本文主要讨论 Apache Spark 的设计与实现,重点关注其设计思想、运行原理、实现架构及性能调优,附带讨论与 Hadoop MapReduce 在设计与实现上的区别。不喜欢将该文档称之为“源码分析”,因为本文的主要目的不是去解读实现代码,而是尽量有逻辑地,从设计与实现原理的角度,来理解 job 从产生到执行完成的整个过程,进而去理解整个系统。 讨论系统的设计与实现有很多方法,本文选择 问题驱
问题内容: 如我们所知,如果要使用传统的IO来构建服务器,则它必须在某个位置阻塞,因此我们必须使用循环或单线程的一种套接字模式,因此nio似乎是更好的选择。所以我想知道nio是否永远是更好的选择? 问题答案: 恕我直言,阻塞IO通常是最简单的使用方法,除非您有特定的要求,而这又需要系统中的更多要求,否则您应该坚持最简单的选择。 下一个最简单的选择是阻止NIO,如果我想要比IO更高的效率或控制能力,