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