前言 最近写了很多数据库相关的文章,大家基本上对数据库也有了很多的了解,数据库本身有所了解了,我们是不是应该回归业务本身呢? 大家去了解过自己企业数据库的部署方式么?是怎么部署的,又是部署在哪里的?部署过程中可能会出现的问题有哪些? 是主从?还是双主?有没有分库?大的表做了分表没?等等...部署方式大概率也都是分库的,表数量级超千万基本上都开始分表了,考虑周全的企业,肯定也有数据库的冷备,热备,灾备,以及异地容灾等等. 我还记得我大学做项目,学校就是买了很多物理机,我们的项目和数据库都是部署在自…
struts神马的不过是对servlet.filter的封装而已,hibernate神马的也不过是对jdbc的封装而已,他们只是把一些常见的操作流程化了,如果不懂servlet.filter,不懂jdbc,使用struts和hibernate出问题了都不知道是怎么回事.…
maven系列目标:从入门开始开始掌握一个高级开发所需要的maven技能. 这是maven系列第8篇. 整个maven系列的内容前后是有依赖的,如果之前没有接触过maven,建议从第一篇看起,本文尾部有maven完整系列的连接. 本篇涉及到的内容属于神技能,多数使用maven的人都经常想要的一种功能,但是大多数人都不知道如何使用,废话不多说,上干货. 需求背景 我们需要做一个电商项目,一般都会做成微服务的形式,按业务进行划分,本次我们主要以账户业务和订单业务为例,我们将这两块业务分别作为2个大的…
面试官:你连RESTful都不知道我怎么敢要你?文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接口4.一致的数据格式4.系统分层5.可缓存6.按需编码.可定制代码(可选)03 RESTful的7个最佳实践1. 版本2.参数命名规范3.url命名规范4. 统一返回数据格式5. http状态码6. 合理使用query parameter7. 多表.多参数连接查询如何设计URL…
小明和小强都是张老师的学生,张老师的生日是M月N日,2人都知道张老师的生日 是下列10组中的一天,张老师把M值告诉了小明,把N值告诉了小强,张老师问他们知道他的生日是那一天吗? 3月4日 3月5日 3月8日 6月4日 6月7日 9月1日 9月5日 12月1日 12月2日 12月8日 小明说:如果我不知道的话,小强肯定也不知道 小强说:本来我也不知道,但是现在我知道了 小明说:哦,那我也知道了 请根据以上对话推断出张老师的生日是哪一天?? 网上有这题的答案,靠,原本我懂的都被他说的不懂了,强烈谴责…
前言 只有光头才能变强 前一阵子写过一篇COW(Copy On Write)文章,结果阅读量很低啊...COW奶牛!Copy On Write机制了解一下 可能大家对这个技术比较陌生吧,但这项技术是挺多应用场景的.除了上文所说的Linux.文件系统外,其实在Java也有其身影. 大家对线程安全容器可能最熟悉的就是ConcurrentHashMap了,因为这个容器经常会在面试的时候考查. 比如说,一个常见的面试场景: 面试官问:"HashMap是线程安全的吗?如果HashMap线程不安全的话,那有…
简介 对于许多开始学习编程的人来说,Python已经成为他们的首选.Python有非常直观的语法和支持动态类型的灵活性.此外,它是一种解释语言,这使得使用交互式控制台进行学习成为可能.基本上,我们只需使用命令行工具(如Mac中的Terminal)来启动Python学习,因为Python在macOS中是默认附带安装的. 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这三类人…
前言 不知道大家在使用Spring Boot开发的日常中有没有用过@Conditionalxxx注解,比如@ConditionalOnMissingBean.相信看过Spring Boot源码的朋友一定不陌生. @Conditionalxxx这类注解表示某种判断条件成立时才会执行相关操作.掌握该类注解,有助于日常开发,框架的搭建. 今天这篇文章就从前世今生介绍一下该类注解. Spring Boot 版本 本文基于的Spring Boot的版本是2.3.4.RELEASE. @Conditiona…
前言 写作本文起源于知乎的一个问题:[CSS Grid 布局那么好,为什么至今没有人开发出基于 Grid 布局的前端框架呢?] 这篇文章拖沓了两个月,是因为真的不知道从哪里说好.这个问题的所有回答几乎都没有切中问题的本质,而且对 CSS Grid 也有很深的误解.另外这个问题的描述可能不太恰当,因为基于 CSS Grid 的框架已经有了.感兴趣的朋友可以了解一下 Flex-Layout,它是一个基于指令布局的神器.大家不要被项目名误导,虽然叫 flex-layout,其实有 flex 和 gri…
最近发现很多人投资了 EOS,却并不关心 EOS 目前的开发进度和技术细节,如果你投资了 EOS, 还有一定的技术基础,那就更应该关心 EOS 的开发情况了,下面我们就从 EOS 的源代码说起:   Github 是目前最流行的源码管理网站,无数明星项目都在 Github 上开发,这其中当然也包括了 EOS. EOS 在 Github 上的地址: https://github.com/EOSIO/   里面有多个目录,首先就是白皮书,这是区块链项目的根基: https://github.com/…
Google规范的原文链接大家可以访问:http://google-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml 1.协议头: 建议在指向图片或其他媒体文件.样式表和脚本的URL地址中省略http:https:协议部分,除非已知相应文件不能同时兼容2个协议. 注:这个倒是真正平日不注意的,只要是绝对地址,http:总是带着.如果仔细想一想,还真有道理. 2.缩进:每次缩进使用双空格 不要使用tab制表符或制表符加空格的混合方式缩进 3.…
目录 01 前言 02 RESTful的来源 03 RESTful6大原则 1. C-S架构 2. 无状态 3.统一的接口 4.一致的数据格式 4.系统分层 5.可缓存 6.按需编码.可定制代码(可选) 03 RESTful的7个最佳实践 1. 版本 2.参数命名规范 3.url命名规范 4. 统一返回数据格式 5. http状态码 7. 多表.多参数连接查询如何设计URL 面试官:了解RESTful吗? 我:听说过. 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是R…
对于工程设计师来说加班通宵赶图改图是常有的事情,如何绘制一套合格的施工图?这是很多工程设计师都会问的问题. 绘制一套合格的施工图,你需要注意以下四点: 一.明确施工图的作用和目的 1. 工程设计的细化与体现. 2. 方便制作工程所需的预算报价. 3. 指导现场施工. 二.施工图的构成 在提交施工图的时候有些材料施工图是必须要具备的,如下: 1. 图纸目录:图纸目录主要是方便查阅图纸. 2. 设计说明:设计说明主要是帮助工程师熟悉图纸中的重点,说明工程的概况和总的要求. 3. 平面图:主要是说明设…
1. 前言 这两天工作遇到了一个挺有意思的Spring循环依赖的问题,但是这个和以往遇到的循环依赖问题都不太一样,隐藏的相当隐蔽,网络上也很少看到有其他人遇到类似的问题.这里权且称他非典型Spring循环依赖问题.但是我相信我肯定不是第一个踩这个坑的,也一定不是最后一个,可能只是因为踩过的人比较少.鲜有记录罢了.因此这里权且记录一下这个坑,方便后人查看. 正如鲁迅(我)说过,“这个世上本没有坑,踩的人多了,也便成了坑”. 2. 典型场景 经常听很多人在Review别人代码的时候有如下的评论:“你…
面向对象编程(OOP)给软件开发领域带来了新的设计思想.很多开发人员在进行面向对象编程过程中,往往会在一个类中将具有相同目的/功能的代码放在一起,力求以最快的方式解决当下的问题.但是,这种编程方式会导致程序代码混乱和难以维护.因此,Robert C. Martin制定了面向对象编程的五项原则.这五个原则使得开发人员可以轻松创建可读性好且易于维护的程序. 这五个原则被称为SOLID原则. S:单一职责原则 O:开闭原理 L:里氏替换原则 I:接口隔离原理 D:依赖反转原理 我们下面将详细地展开来讨…
Python 是一门更注重可读性和效率的语言,尤其是相较于 Java,PHP 以及 C++ 这样的语言,它的这两个优势让其在开发者中大受欢迎. 诚然,它有点老了,但仍是 80 后啊 —— 至少没有 Cobol 或者 Fortran 那么老.而且,如果还能派上用场的话,为啥要折腾着改变它呢 (尤其在这个还有那么多方法可以提升它性能的时候)? 实际上这要看你怎么看待它,生命线长本身就是件好事 —— 说明它稳定且可靠. 如果你是像其他许多人一样都是从 Java,C 或者 Perl 开始进入职业生涯的,…
GitHub 14.5k Star 的Java工程师成神之路,开放阅读了! 相信很多程序员对于Linux系统都不陌生,即使自己的日常开发机器不是Linux,那么线上服务器也大部分都是的,所以,掌握常用的Linux命令也是程序员必备的技能. 但是,怕就怕很多人对于部分命令只是一知半解,使用不当就能导致线上故障. 前段时间,我们的线上应用报警,频繁FGC,需要紧急处理问题,于是有同事去线上重启机器(正常程序应该是先采集堆dump,然后再重启,方便排查是否存在内存泄露等问题). 但是在重启过程中,同事…
「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 不论新老朋友 我相信您都可以 从中获益.如果觉得 「不错」 的朋友,欢迎 「关注 + 留言 + 分享」,文末有完整的获取链接,您的支持是我前进的最大的动力! 特性总览 以下是 Java 9 中的引入的部分新特性.关于 Java 9 新特性更详细的介绍可参考这里. REPL(JShell) 不可变集合…
Java的流程控制 基础阶段 目录: 用户交互Scanner 顺序结构 选择结构 循环结构 break & continue 练习题 1.Scanner对象 之前我们学的基本语法中并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入.Java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入. 基本语法: Scanner s = new Scanner(System.in); 通过Scanner类的next()与nex…
前言 什么是线程:程序中负责执行的哪个东东就叫做线程(执行路线,进程内部的执行序列),或者说是进程的子任务. Java中实现多线程有几种方法 继承Thread类: 实现Runnable接口: 实现Callable接口通过FutureTask包装器来创建Thread线程: 使用ExecutorService.Callable.Future实现有返回结果的多线程(也就是使用了ExecutorService来管理前面的三种方式). 如何停止一个正在运行的线程 使用退出标志,使线程正常退出,也就是当ru…
Spring 1.1.1.1 创建一个bean package com.zt.spring; public class MyBean { private String userName; private Integer userAge; } 1.1.1.2 配置Config 配置bean package com.zt.spring; import org.springframework.context.annotation.Bean; import org.springframework.con…
前言 micrometer中自带了很多其他框架的指标信息,可以很方便的通过prometheus进行采集和监控,常用的有JVM的信息,Http请求的信息,Tomcat线程的信息等. 对于一些比较活跃的框架,有些还是不支持的,比如Dubbo.如果想监控Dubbo的一些指标,比如线程池的状况,我们需要手动去扩展,输出对应的线程池指标才行. 在这种情况下,肯定是没什么思路的,因为你不知道怎么去扩展,下面给大家介绍去做一件事情之前的思考,方式方法很重要. Dubbo有没有现成的实现? 参考micromet…
问题 怎么避免内存逃逸? 怎么答 在runtime/stubs.go:133有个函数叫noescape.noescape可以在逃逸分析中隐藏一个指针.让这个指针在逃逸分析中不会被检测为逃逸. // noescape hides a pointer from escape analysis. noescape is // the identity function but escape analysis doesn't think the // output depends on the inpu…
面试题 redis 的过期策略都有哪些?内存淘汰机制都有哪些?手写一下 LRU 代码实现? 面试官心理分析 如果你连这个问题都不知道,上来就懵了,回答不出来,那线上你写代码的时候,想当然的认为写进 redis 的数据就一定会存在,后面导致系统各种 bug,谁来负责? 常见的有两个问题: 往 redis 写入的数据怎么没了? 可能有同学会遇到,在生产环境的 redis 经常会丢掉一些数据,写进去了,过一会儿可能就没了.我的天,同学,你问这个问题就说明 redis 你就没用对啊.redis 是缓存,…
1.面试题 redis的过期策略都有哪些?内存淘汰机制都有哪些?手写一下LRU代码实现? 2.面试官心里分析 1)老师啊,我往redis里写的数据怎么没了? 之前有同学问过我,说我们生产环境的redis怎么经常会丢掉一些数据?写进去了,过一会儿可能就没了.我的天,同学,你问这个问题就说明redis你就没用对啊.redis是缓存,你给当存储了是吧? 啥叫缓存?用内存当缓存.内存是无限的吗,内存是很宝贵而且是有限的,磁盘是廉价而且是大量的.可能一台机器就几十个G的内存,但是可以有几个T的硬盘空间.r…
本文节选自美团创始人王兴内部讲话.在讲话中,王兴罕见地分享了他对全球和中国宏观经济的理解,谈了他对 TO B 业务的深度思考.全文近 15000 字,干货非常多,值得你花时间阅读. 我们今天讲一下餐饮生态业务部,以及对我们整个公司在整个业务发展过程中的思考. 首先我先讲下半场的意思,我估计大部分人应该对于下半场是什么意思是缺少概念的. 「下半场」这个词是去年上半年提出来的,而且这个词提出来之后,在整个行业,包括国家产生了比较大的反响.下半场到底是什么意思,为什么会有下半场这个说法? 这个下半场是…
作者:中华石杉 面试题 redis 的过期策略都有哪些?内存淘汰机制都有哪些?手写一下 LRU 代码实现? 面试官心理分析 如果你连这个问题都不知道,上来就懵了,回答不出来,那线上你写代码的时候,想当然的认为写进 redis 的数据就一定会存在,后面导致系统各种 bug,谁来负责? 常见的有两个问题: 往 redis 写入的数据怎么没了? 可能有同学会遇到,在生产环境的 redis 经常会丢掉一些数据,写进去了,过一会儿可能就没了.我的天,同学,你问这个问题就说明 redis 你就没用对啊.re…
本文节选自美团创始人王兴的内部讲话.在讲话中,王兴罕见地分享了他对全球和中国宏观经济的理解,谈了他对 TO B 业务的深度思考. 我们今天讲一下餐饮生态业务部,以及对我们整个公司在整个业务发展过程中的思考. 首先我先讲下半场的意思,我估计大部分人应该对于下半场是什么意思是缺少概念的. 「下半场」这个词是去年上半年提出来的,而且这个词提出来之后,在整个行业,包括国家产生了比较大的反响.下半场到底是什么意思,为什么会有下半场这个说法? 这个下半场是几个层面,一个是我们美团点评这家公司要进入下半场:一…
分辨率.DPI.PPI和屏幕尺寸 分辨率 DPI/PPI 坑爹的屏幕尺寸 Reference 手机开发中不免会遇到分辨率.DPI.PPI和屏幕尺寸等术语,那就弄弄清楚这些概念的真正含义. 分辨率 分辨率这个词在很多地方都有,比如相机.视频.扫描仪.这里说的就是显示器的分辨率.显示器是由一个个像素点(pixel)所组成的,一般所说的显示器分辨率是1280x720就表示这个显示器水平方向有1280个像素,垂直方向上有720个像素.但是并非分辨率越高屏幕显示效果越好,还需要根据屏幕的大小来决定.也就是…
业务需要一个在微信上能付款的功能,于是乎想到了最普遍的支付宝,坑爹的是T与A是水火不容啊,默默的还是接微信支付吧,没想到从此掉进了连环坑…… 网上写微信支付接口的还是很多,PHP官方有(鄙视源码作者,连参数对应都错了,能跑通才怪),NET版 微信支付--入门篇 这篇算是比较全的,java版. PHP的只能参考,终究还是先按NET版的还创建项目,不过文章里面也没具体写到如何前后台交互(偶用的MVC),对于初次接触的人来说只能问题来一个解决一个. 至于怎么从0开发就不用详细说明了,参考这位仁兄的 微…