2019-11-22 14:05
单例模式,简而言之就是在整个应用程序里面有且仅有一个实例,在程序的任何时候,任何地方获取到的该对象都是同一个对象。单例模式解决了一个全局的类被频繁创建和销毁的,或者每次创建或销毁都需要消耗大量cpu资源的对象的问题。单例模式总的可以分为懒汉模式和饿汉模式,顾名思义,懒汉模式是一个非常懒的汉子,只要你没有使用到它,它就永远不会实例化。饿汉模式的意思就是,汉子非常饥渴,只要在程序的编译阶段就给你分配内存,创建好对象。
将懒汉模式和饿汉模式细分,又可以分为:
1、懒汉模式
2、饿汉模式
...
2019-11-22 14:33
目录
商品分类&轮播广告
商品分类|ProductCategory
需求分析
开发梳理
编码实现
轮播广告|SlideAD
需求分析
开发梳理
编码实现
福利讲解
源码下载
下节预告
商品分类&轮播广告
因最近又被困在了OSGI技术POC,更新进度有点慢,希望大家不要怪罪哦。
上节 我们实现了登录之后前端的展示,如:
登录展示效果
子分类
接着,我们来实现左侧分类栏目的功能。
商品分类|ProductCategory
从上图我们可以看出,商品的分类其实是有层级关系的,而且这种关系一般都是无限层级。在我们的实现中,为了效果的展示,我们仅仅是展示3级分类,在大多数的中小型电商系统中,三级分类完全足够应对SKU的分类。
...
2019-11-22 11:36
上次有人留言说,技术博客是程序员的标配,但据我所知绝大部分技术同学到现在仍然没有自己的技术博客。原因有很多,有的是懒的写,有的是怕写不好,还有的是一直想憋个大招,幻想做到完美再发出来,结果一直胎死腹中。但其实更多程序员是不知道如何去搭建一个博客,其实如今搭建一个个人技术博客非常简单,其中最简单搭建方式莫属使用 GitHub Pages + Jekyll 了,我的博客就是使用这种技术。...
2019-11-22 11:05
Spring Boot 中的数据持久化方案前面给大伙介绍了两种了,一个是 JdbcTemplate,还有一个 MyBatis,JdbcTemplate 配置简单,使用也简单,但是功能也非常有限,MyBatis 则比较灵活,功能也很强大,据我所知,公司采用 MyBatis 做数据持久化的相当多,但是 MyBatis 并不是唯一的解决方案,除了 MyBatis 之外,还有另外一个东西,那就是 Jpa,松哥也有一些朋友在公司里使用 Jpa 来做数据持久化,本文就和大伙来说说 Jpa 如何实现数据持久化。
...
2019-11-22 11:00
前言
开发多页应用的时候,如果不对webpack打包进行优化,当某个模块被多个入口模块引用时,它就会被打包多次(在最终打包出来的某几个文件里,它们都会有一份相同的代码)。当项目业务越来越复杂,打包出来的代码会非常冗余,文件体积会非常庞大。大体积文件会增加编译时间,影响开发效率;如果直接上线,还会拉长请求和加载时长,影响网站体验。作为一个追求极致体验的攻城狮,是不能忍的。所以在多页应用中优化打包尤为必要。那么如何优化webpack打包呢?
一、概念
在一切开始前,有必要先理清一下这三个概念:
module: 模块,在webpack眼里,任何可以被导入导出的文件都是一个模块。
...
2019-11-22 11:26
本篇介绍笔者接触的第一个后台系统,从自身见闻出发,因此涉及的内容相对比较基础,后台大牛请自觉略过。什么是好友系统?...
2019-11-22 11:54
系列博客,原文在笔者所维护的github上:https://aka.ms/beginnerAI,
点击star加星不要吝啬,星越多笔者越努力。
前言
For things I don't know how to build, I don't understand.
如果我不能亲手搭建起来一个东西,那么我就不能理解它。 -- 美国物理学家理查德·费曼
在互联网发达的今天,很多知识都可以从网络上找到,但是网络上的博客、文章的质量参差不齐,或者重点不明确,或者直接把别人的博客抄袭过来。这种状况使得广大的初学者们学习起来很困难,甚至误入歧途,增加了学习曲线的陡峭程度。当然也有很多博主非常非常负责任,文章质量很高,只是连续度不够,正看得过瘾的时候,没有后续章节了,无法形成知识体系。
...
2019-11-22 11:53
目录
Q1. 同步代码里的错误捕获方式
Q2. 普通的异步回调里的错误捕获方式(Promise时代以前)
Q3. Promise里的错误捕获方式
Q4.async/await里的错误捕获方式
Q5.在全局环境下如何监听错误
Q6.在React16以上如何监听错误
Sentry简单介绍
在JavaScript中使用Sentry
Sentry的核心功能总结
正文
怎么捕获错误并且处理,是一门语言必备的知识。在JavaScript中也是如此。
那怎么捕获错误呢?初看好像很简单,try-catch就可以了嘛!但是有的时候我们发现情况却繁多复杂。
...
2019-11-22 11:32
## 特别特别严肃的申明 (正经的)
未免引起误解,标题已修改。
我一开始写这篇文章,也纯粹是有感而发。实在没想到会引起如此多的关注。甚至还被社区大佬翻牌。说实话,诚惶诚恐。
再次申明一遍,我写的也仅仅只是我个人的感受,我就是万万千千的普通码农中的一个,所写文章也仅仅是从自我角度出发。
不具备任何普适性参考性。请大家看清标题,只是个人感受,不适用.net整个行业。尤其请大家不要拿我的经历作为语言选择的参考。
。net也好,java也好,每个语言都有自己的生态,选择语言之前请先确认自己的能力,请不要抱怨语言害了你,请先审视自己是否一直在努力进步,还是只是在随大流。
...
2019-11-22 11:56
1. synchronized使用#
1.1 synchronized介绍#
在多线程并发编程中synchronized一直是元老级角色,很多人都会称呼它为重量级锁。但是,随着Java SE 1.6对synchronized进行了各种优化之后,有些情况下它就并不那么重了。
synchronized可以修饰普通方法,静态方法和代码块。当synchronized修饰一个方法或者一个代码块的时候,它能够保证在同一时刻最多只有一个线程执行该段代码。
对于普通同步方法,锁是当前实例对象(不同实例对象之间的锁互不影响)。
...