首页 文章 精选 留言 我的

精选列表

搜索[HTTP/3],共10000篇文章
优秀的个人博客,低调大师

3年Java开发10面阿里、京东、拼多多

拼多多 地点:2号线娄山关路地铁站(金虹桥国际中心)环境:新的写字楼,环境很好,有种高大上的感觉。大厅进入后需要登记,然后进闸机。电梯是需要刷卡才能使用的。会议室都是用城市名称命名,例如杭州、香港等,每个会议室都配了很多纯净水等,感觉不差钱。约的是晚上面试,所以正好碰到员工吃饭时间,感觉就像赶集一样,人特别多,11 11 6的作息时间你懂得。面试流程:前台登记,填写个人信息表,然后等面试官,面试流程是2轮技术面试+HR面试,其中两轮技术面试分业务面试+技术问题面试。业务面试问的问题基本是围绕当前做过的项目为例,一些实际问题的处理方式,例如分布式事务如何保证。技术面试基本是围绕java技术和中间件的原理实现。另外可能会有算法题。整体评价:拼多多的氛围感觉像打了鸡血一样,很有激情的一个公司。唯一在公司门口有保安的。难度级别:四星 京东到家 地点:4号线杨树浦路地铁站(东方渔人码头国际中心),下地铁后需要步行20-30分钟,骑单车要5分钟左右。说实话有点不方便。环境:东方渔人码头国际中心写字楼,公司装修比较新,环境是互联网公司的简约风格。投递方式:猎头推荐面试流程:前台登记,填写个人信息,等面试官。面试分二轮技术面试+HR面试。两轮技术面试应该是部门交叉面试,基本都是分两部分,第一部分是当前做过的项目的技术架构,详细介绍同时一些问题的处理方式。第二部分是围绕当前主流的一些中间件的实现原理,例如zookeeper实现原理、redis集群等。问题难度一般,最后可能会写一个基本算法,例如arrayList的实现。HR面试是聊个人职业规划,谈薪等。整体评价:公司感觉比较新,应该是刚搬过去不久,公司氛围也是偏互联网化,加班情况属于一般。业务发展目前看应该属于一个上升期吧。没有亮点,也没有缺点。难度级别:四星 欢迎关注我的公中浩【程序员追风】,文章都会在里面更新,整理的资料也都会放在里面。 蚂蚁金服 地点:电话面试环境:无面试流程:蚂蚁的整个面试流程,基本是分四轮,其中三轮技术面试+HR面试。前两轮基本是电话面试,第三轮有可能是电话,也可能去现场面试,看情况。基本第一、二轮面试会针对技术、业务全面展开,技术问题会比较深入,技术的实现原理,一些使用场景等。业务方面会针对一个你当前做过的项目举例,然后围绕这个项目的一些问题点,逐个追问,遇到的问题,使用的解决方案,有没有更好的优化方案等。基本是由浅入深、环环相扣。整体评价:蚂蚁面试是这几家公司面试中,问题算比较难的一个,而且深度会比较深一些。难度级别:五星 最后欢迎大家一起交流,喜欢文章记得点个赞哟,感谢支持!

优秀的个人博客,低调大师

Python3入门(十四)正则表达式

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python自1.5版本起增加了re模块,它提供Perl风格的正则表达式模式。re模块使Python语言拥有全部的正则表达式功能。compile函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。re模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。 本文将给大家介绍Python中常用的正则表达式处理函数 一、正则表达式修饰符-可选标志 正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位OR(|)它们来指定。如re.I | re.M被设置成I和M标志 修饰符 描述 re.I 使匹配对大小写不敏感 re.L 做本地

优秀的个人博客,低调大师

(3) 基于领域分析设计的架构规范-读写隔离

本系列目录: 改变与优势 领域分析基础 读写隔离 充血模型之实体 充血模型之Service 关于重构与落地 思想概述 读取操作必须是无害的,暂时不考虑大并发把服务器压垮这种极端场景,就一般而言,我们可以说,一个合格的查询接口所达到的效果应该是: 无论你执行多少次查询,系统的数据都是不会发生变化的 所以,对于一个陌生的系统,如果对方给了你【增删改查】四个接口,那么再没有深入了解业务的情况下,你首先进行测试的接口,一定是查询接口 为了达到一个合格的查询接口,对于系统的开发者的来说,必须保证所有的查询业务接口里,不能有任何对业务实体的修改操作,换句话说,所有的查询操作,只是对系统瞬时的一个快照,不对数据产生修改,自然对整个系统的业务运转也不产生任何变动。 实现策略 我们常说的读写分离,那是在应对性能问题时的一种解决方案。而我们这里特意换成了读写隔离,就是为了区分开两者。而这个隔离,是从更高层面来设计整个架构规范,是在项目设计刚开始的时候就考虑进去的。而且,实现难度小。 即使是基于现有的代码做重构,也只要挪代码块就行了,也没有什么业务风险,这个我们之后会再提到。 那么,很自然的,通过@Transactional(readOnly = true)的控制,可以非常好的达到这个目的,这样,即使有开发人员不小心在其中做了修改操作,也会执行报错,给予很好的安全提示,这时,我们就需要重新审视这个需求,是否需要将修改操作分离出来。 import org.springframework.stereotype.Service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; /** * 以订单为主体的查询业务处理类 */ @Service @Transactional(readOnly = true) public class OrderFinder { @Autowired OrderRepository orderRepository; @Autowired UserRepository userRepository; /** 批量查询订单 */ List queryOrderByIds(List<Long> orderIds) /** 运营控制台订单分页查询 */ List pagingOrdersOnConsole(int pageSize,int pageNumber) /** APP端用户订单分页查询 */ List pagingOrdersOnApp(Long userId,int pageSize,int pageNumber) // more methods and fields .. } · 有一些问题直得探讨: Finder就等同于将Repository里的查询方法挪过来吗? 并不是,首先,Finder是一个查询业务的处理类。一个查询业务,意味着从调用端发起请求到结果返回,本次过程是进行一次完整的查询操作,更直观的来说,像是下面这样 //..在一个入口层中,比如SpringMVC中的@Controller @Autowired private OrderFinder orderFinder; @GetMapping("/paging/") public CustomPagingResponse pagingOrders(int pageSize,int pageNumber){ return orderFinder.paging(pageSize,pageNumber); } 而并非另外一种为了删改某一个实体而通过主键或其他特定查询SQL来做出的查询操作,这种操作,将会在一个命令业务中直接通过Repository去做,比如 //..假定是在订单删除业务OrderDeleteService中的一部分 public void deleteOrder(Long orderId){ //根据条件定位到需要进行操作的Entity,这个过程,是命令操作的一部分,所以,它不是一个完整的查询业务,这个时候,不会用到Finder Order order = orderRepository.getById(orderId); //...接下来对order进行操作,省略 } 而且,往往在一个较为复杂的查询业务中,不仅仅需要从数据库中获取数据,往往可能还需要通过各类协议的远程接口获取数据,进行整合,这就更加需要Finder来进行归纳处理了。 · 每个实体(Entity)类都需要有一个Finder吗? 并不一定,因为并不是每个实体都会有这种业务需求。比如我们很容易想到,对于订单,会有很多终端需要通过各类条件查询订单列表,也会有某一条订单的详细信息。但相比之下,订单变更记录,可能唯一会被查询到的地方只会是在订单详情中的一个小列表,那么,实现的写法更倾向于如下这种: public void OrderFinder{ @Autowired private OrderTrackRepository orderTrackRepository; //它依旧出现在 OrderFinder 中 public OrderDetailView queryOrderDetail(Long orderId){ //首先查询order基础数据 //然后补充查询订单变更数据 List<OrderTrack> orderTracks = orderTrackRepository.getByOrderId(orderId) //然后整合,返回整个View } } 所以,由于它只会存在于订单View中的一部分,自然不需要单独一个OrderDetailFinder。当然如果未来OrderDetail的代码量陡增,那是可以考虑重构的。 效果 其实大家回看自己现有的项目,里面有很多诸如【报表】,【采购单】,【详细信息】等等,其实,都是系统某一个侧面的快照而已。 将这些东西都一一隔离出来,这个时候,再去审视整个系统,你会有一种云开雾散,柳暗花明又一村的感觉。 因为剩下的命令操作,就是整个系统的脉动了。 详细参看之后的章节~ 下一篇 充血模型之实体

优秀的个人博客,低调大师

3分钟,了解阿里云热门产品 ZooKeeper

本文来自畅销书《从 Paxos 到 Zookeeper》作者倪超,讲述了其对阿里云最新发布的微服务引擎 MSE 产品的使用初体验。 (图片来自《从 Paxos 到 ZooKeeper 》一书的封面) 屏幕前的读者朋友们 如果 正在为运维 ZooKeeper 这份至关重要,但繁琐而枯燥 甚至心里没底的活 而烦恼 如果 正在为自己的应用 找寻一个高可用,且免运维的 ZooKeeper 那么,它来了 阿里云全托管的 ZooKeeper 集群产品 微服务引擎 MSE 读者可以在任何搜索引擎搜索“微服务引擎 MSE”,即可直达产品官网。 阿里巴巴和 ZooKeeper 的结缘 从微服务引擎 MSE 的官方网站上,了解到,自 2010 年左右第一次引入以来,Apache ZooKeeper 目前在阿里巴巴集团内部已经有了将近 10 年的发展,使用的场景非常广泛,基于 ZooK

优秀的个人博客,低调大师

阿里云云计算ACP认证重点梳理3—弹性伸缩

弹性伸缩:弹性伸缩是根据用户的业务需求和策略,自动调整其弹性计算资源的管理服务。其能够在业务增长时自动增加 ECS 实例,并在业务下降时自动减少 ECS 实例。 伸缩组:伸缩组是具有相同应用场景的 ECS 实例的集合。伸缩组定义了组内 ECS 实例数的最大值、最小值及其相关联的负载均衡实例和 RDS 实例等属性。 伸缩配置:伸缩配置定义了用于弹性伸缩的 ECS 实例的配置信息。 伸缩规则:伸缩规则定义了具体的扩展或收缩操作,例如加入或移出 N 个 ECS 实例。 伸缩活动:伸缩规则成功触发后,就会产生一条伸缩活动。伸缩活动主要用来描述伸缩组内 ECS 实例的变化情况。 伸缩触发任务:用于触发伸缩规则的任务,如定时任务、云监控的报警任务。 冷却时间:冷却时间是指,在同一伸缩组内,一个伸缩活动执行完成后的一段锁定时间。在这段锁定时间内,该伸缩组不

优秀的个人博客,低调大师

Eclipse教程1 - 3分钟理清Maven依赖

作者: 韩勇 日期: 2018-12-02 前言 大学学习 Java 时开始接触 Eclipse,喜欢其强大和方便,并立志成为一名 Java 开发。然而近几年 Eclipse 的流行度开始下滑,一方面有 Eclipse 自身的不足(安装插件需要科学上网,新版卡顿、报错),一方面我在想是不是 Eclipse 更适合我这样熟练使用 Eclipse 的用户,而不是普通 Java 开发。我觉得我应该写一些教程,帮助大家了解和使用 Eclipse,作为对 Eclipse 社区的回馈。 安装 Eclipse 首先需要安装 JDK,Linux(或 Cygwin)下可使用 sdkman 安装(需要科学上网)。 sdk install java 8.0.191-oracle 下载解压 Eclipse Java 开发软件包,可从国内镜像加速下载,如

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册