#我的求职经验分享#实习岗位,岗位是.net开发,没有笔试直接去面试,大约面了一个半小时,其中一半时间是用英语面试。基本上问的都是都是技术问题,没有什么废话。首先问了我对.net和c#有什么了解,还有visual studio用的什么版本。还有问了和依赖注入有关的问题。还有问我用过什么数据库,说一下MySQL和SQL Server的区别。还有问了一些项目上问题,还有里式替换和solid原则,还有restful api,还有给了我一个英文的需求文档,让我说一下用户的具体需求。还有问了git,讲一下spring boot的框架,说一下mybatis和mybatis plus的区别。还有问我什么是测试驱动开发怎么理解。最后问了一下能否接受转技术栈(我学的是Java),因为平时开会和文档都是英文,能否静下心来学习英语。接下来是我的一些复盘总结:里氏替换原则:通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。也就是说:子类继承父类时,除添加新的方法完成新增功能外,尽量不要重写父类的方法。优点:1、代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性;里氏替换原则通俗来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。也就是说:子类继承父类时,除添加新的方法完成新增功能外,尽量不要重写父类的方法。2、提高代码的重用性;3、子类可以形似父类,但又异于父类,“龙生龙,凤生凤,老鼠生来会打洞”是说子拥有父的“种”,4、“世界上没有两片完全相同的叶子”是指明子与父的不同;5、提高代码的可扩展性,实现父类的方法就可以“为所欲为”了,君不见很多开源框架的扩展接口他都是通过继承父类来完成的;6、提高产品或项目的开放性SOLID原则介绍:单一功能原则,开闭原则,里氏替换原则,依赖倒置原则,接口分离原则。设计模式七大原则介绍:单一职责原则(Single responsibility principle)即一个类应该只负责一项职责。如类A负责两个不同职责:职责1,职责2。当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要将类A的粒度分解为A1、A2。单一职责原则注意事项和细节降低类的复杂度,一个类只负责一项职责。提高类的可读性,可维护性降低变更引起的风险通常情况下,我们应当遵守单一职责原则,只有逻辑足够简单,才可以在代码级违反单一职责原则;只有类中方法数量足够少,可以在方法级别保持单一职责原则接口隔离原则(Interface Segregation Principle)即客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上。依赖倒转原则(Dependence Inversion Principle)依赖倒转(倒置)的中心思想是面向接口编程,所谓“倒转”是指抽象不应该依赖细节,而是细节应该依赖抽象。也就是高层模块不应该依赖低层模块,二者都应该依赖其抽象。因为相对于细节的多变性,抽象的东西要稳定的多。比如有个Person类,可以接受Email、QQ和微信的消息。如果都为其提供一个专门的方法,就会让代码非常的冗余,可以引入一个IReceiver接口,让Person类依赖该接口。这样QQ、微信和Email各自实现IReceiver里面的方法即可.里氏替换原则(Liskov Substitution Principle)见上开闭原则(Open Closed Principle)一个软件实体如类,模块和函数应该对扩展开放(对提供方),对修改关闭(对使用方)。也就是当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。用抽象构建框架,用实现扩展细节。开闭原则是编程中最基础、最重要的设计原则。编程中遵循其它原则,以及使用设计模式的目的就是遵循开闭原则.迪米特法则(Demeter Principle)又叫最少知道原则,即一个类对自己依赖的类知道的越少越好,核心是降低类之间的耦合。也就是说,对于被依赖的类不管多么复杂,都尽量将逻辑封装在类的内部。对外除了提供的public 方法,不对外泄露任何信息。避免与非直接朋友的耦合,只与直接的朋友通信,所谓的直接朋友是出现成员变量,方法参数,方法返回值中的类。而出现在局部变量中的类不是直接的朋友。也就是说,陌生的类最好不要以局部变量的形式出现在类的内部。合成复用原则(Composite Reuse Principle)就是是尽量使用合成/聚合的方式,而不是使用继承。spring的依赖注入:http://t.csdn.cn/TNiBq这篇博客写的很好可以参考.mysql/sqlServer/Oracle的区别:MySQL:瑞典MYSQLAB推出,关系型数据库,开源免费,适用于WEB网站、日志管理、数据仓库和嵌入式系统等小型系统。SQLServer:微软Microsoft推出,关系型数据库,可视化、安全性与稳定性较好,适用于企业级海量数据存储查询。Oracle:美国甲骨文公司推出,关系型数据库,跨平台,安全稳定,结构复杂,对管理员要求高,常用于金融、电信领域。MyBatis和MyBatis Plus区别:MyBatis和MyBatis Plus是两个Java持久化框架,它们都基于MyBatis的核心思想和功能,但在一些方面有所不同。配置方式:MyBatis使用XML或注解来进行配置,而MyBatis Plus提供了更简洁的基于注解的配置方式。MyBatis Plus通过自动生成代码的方式,减少了手动编写重复的CRUD操作的工作量。功能增强:MyBatis Plus在MyBatis的基础上进行了功能增强。它提供了一些便捷的方法和工具,如通用Mapper、分页插件、代码生成器等,可以简化开发过程。MyBatis Plus还支持多种数据库的操作,包括MySQL、Oracle、SQL Server等。CRUD操作:MyBatis Plus简化了CRUD操作的编写。它提供了通用的Mapper接口和封装好的方法,可以直接进行增删改查操作,无需手动编写SQL语句。同时,MyBatis Plus支持Lambda表达式的方式进行条件构造,使得查询条件更加灵活和易于维护。社区支持:MyBatis是一个非常受欢迎的Java持久化框架,有着庞大的社区支持和活跃的开发者群体。MyBatis Plus则是在MyBatis的基础上发展而来,继承了MyBatis的优点,并吸引了越来越多的开发者参与其中,形成了自己的社区和生态系统。总的来说,MyBatis Plus是在MyBatis的基础上进行了功能增强和开发便利性的提升。它提供了更简洁的配置方式和便捷的CRUD操作,同时也拥有强大的社区支持。选择使用哪个框架取决于你的具体需求和个人偏好。
点赞 9
评论 4
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务