掌握“复制-粘贴-改”的IT技能

2018-04-03 Management

“Stop Trying to Reinvent the Wheel(不要重复造轮子 )”, 可能是每个程序员入行被告知的第一条准则。在公司里面,我也会对团队里面每个新进的成员反复灌输这个理念。但要真正做到这一点也非易事。





Spring Boot 使用 Redis 提升天气预报应用的并发访问能力

2018-02-10 Spring Boot Redis

有时,为了提升整个网站的性能,我们会将经常需要访问数据缓存起来,这样,在下次查询的时候,能快速的找到这些数据。 缓存的使用与系统的时效性有着非常大的关系。当我们的系统时效性要求不高时,则选择使用缓存是极好的。当系统要求的时效性比较高时,则并不适合用缓存。 本文,我们将演示如何通过集成 Redis 服务器来进行数据的缓存,以提高微服务的并发访问能力。




基于 MongoDB 的文件服务器 MongoDB File Server 1.0.0 发布!

2018-01-22 MongoDB MongoDB File Server

欣喜的告诉大家,基于 MongoDB 的文件服务器 MongoDB File Server 1.0.0 发布了!MongoDB File Server 致力于小型文件的存储,比如博客中图片、普通文档等。由于MongoDB 支持多种数据格式的存储,对于二进制的存储自然也是不话下,所以可以很方便的用于存储文件。由于 MongoDB 的 BSON 文档对于数据量大小的限制(每个文档不超过16M),所以本文件服务器主要针对的是小型文件的存储。对于大型文件的存储(比如超过16M),MongoDB 官方已经提供了成熟的产品 GridFS,读者朋友可以自行了解。


《基于Spring Cloud的微服务实战》课程发布

2018-01-22 Java Spring Cloud Spring Boot Eureka Ribbon OpenFeign Zuul Config Hystrix Gradle Apache HttpClient Redis Quartz Scheduler Thymeleaf Bootstrap Spring Data

接到慕课网的通知,本人所设计的视频教程《基于Spring Cloud的微服务实战》于 2018年1月22日下午发布了!课程地址:https://coding.imooc.com/class/177.html。 课程从策划、编码、录制到后期制作,差不多花费了4-5个月的时间。课程中的每行代码都是笔者亲自敲的,光写代码都也要好几个月时间。编码期间也是遇到了很多技术问题,埋了很多坑,其中心酸只有自知。

那么,这门课程到底是怎么样的?






基于消息队列的分布式任务分配系统

2017-12-14 Distributed Message

最新在公司承担一个供需匹配模拟引擎的项目。该项目在最近上线的版本中,由于数据量和计算量暴增,原本在测试环境中没有发现的问题,在生产环境中暴露了出来。基于消息队列的分布式任务分配系统可以有效解决该问题。





使用 Eureka 实现服务注册与发现

2017-09-17 Eureka Spring Cloud

Eureka 是 Netflix 出品的用于实现服务注册和发现的工具。 Spring Cloud 集成了 Eureka,并提供了开箱即用的支持。其中, Eureka 又可细分为 Eureka Server 和 Eureka Client。

本例子将演示如何通过 Spring Cloud Eureka 来快速实现服务的注册和发现。


Markdown 转为 Word 格式文档

2017-09-13 Markdown Pandoc Writage

平时都有用 Markdown 写书、写博客的习惯。很享受 Markdown 带来的纯粹撰写文字,而无须纠结格式所带来的快感。但有时,某些场合下,Word 文件又是必须的格式(比如,编辑部校稿,公司会议等),此时,就很有必要将Markdown 转为 Word 格式文档。

本文演示了几种方面将 Markdown 转为 Word 格式文档的方法。


基于Spring Boot的天气预报服务

2017-09-05 Spring Boot

本文,我们将基于 Spring Boot 技术来实现一个微服务天气预报服务接口——micro-weather-basic。micro-weather-basic 的作用是实现简单的天气预报功能,可以根据不同的城市,查询该城市的实时天气情况。


将HTML页面制作成为CHM格式的帮助手册

2017-08-23 CHM

CHM是英语“Compiled Help Manual”的简写,即“已编译的帮助文件”。CHM是微软新一代的帮助文件格式,利用HTML作源文,把帮助内容以类似数据库的形式编译储存。

但有时,市面上并不能总是能找到我们需要的CHM文档,这个时候,就需要自己动手丰衣足食了。


Git导出某个分支的干净文件

2017-08-06 Git

经常需要将某个分支的文件打包发送,而且是干净的(不带版本控制信息),下面的语句很重要哦:

>git archive --format zip --output "./2.0.0-20170806.zip" 2.0.0-20170806

《基于Spring Boot 企业级博客系统实战》课程发布

2017-08-01 Java Spring Boot Gradle Elasticsearch Thymeleaf Spring Spring MVC Spring Security Hiberate MySQL H2 Bootstrap jQuery HTML5 JavaScript CSS NewStarBlog

接到慕课网的通知,本人所设计的视频教程《基于Spring Boot 企业级博客系统实战》于 2017年7月31日中午发布了!课程地址:http://coding.imooc.com/class/125.html。 课程从策划、编码、录制到后期制作,差不多花费了4-5个月的时间。 课程中的每行代码都是笔者亲自敲的,光写代码都要个把个月时间。编码期间也是遇到了很多技术问题,埋了很多坑,其中心酸只有自知。



使用 Webix 创建 Email 客户端

2017-06-24 Webix

Webix 是一个JavaScript UI 库,提供了多达88个UI小部件和功能丰富的 CSS/HTML5 JavaScript 控件。使用 Webix 可以有效地加快 Web 应用的开发。文本将演示了如何通过 Webix 框架,来创建一个 Email 客户端原型。



Gradle Wrapper 引用本地的发布包

2017-06-04 Gradle

Gradle Wrapper 免去了用户在使用 Gradle 进行项目构建时需要安装 Gradle 的繁琐步骤。 每个 Gradle Wrapper 都绑定到一个特定版本的 Gradle,所以当你第一次在给定 Gradle 版本下运行上面的命令之一时,它将下载相应的 Gradle 发布包,并使用它来执行构建。默认,Gradle Wrapper 的发布包是指向的官网的 Web 服务地址,有时候,下载这个发布包比较慢甚至不成功,本文演示了加速下载发布包的方式。


基于 MongoDB 及 Spring Boot 的文件服务器的实现

2017-06-03 MongoDB Spring Boot

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

本文将介绍通过 MongoDB 存储二进制文件,从而实现一个文件服务器 MongoDB File Server。


Keepalived 软件架构设计

2017-05-22 Keepalived Architecture

Keepalived 顾名思义,就是保持存活、保持在线了, 也就是用来实现服务的高可用(high availably)或热备,从而避免单点故障的发生。本文对 Keepalived 架构设计进行讲解。


NGINX 简明教程

2017-05-21 NGINX

NGINX 是一款来自俄罗斯的HTTP 和反向代理(reverse proxy)服务器、邮件服务器,以及通用的 TCP/UDP 代理服务器,以其高性能被业界广泛采用。本文通过最简洁的方式,将 NGINX 核心应用做下介绍。


分布式系统常见的事务处理机制

2017-04-13 Distributed Transaction

为保障系统的可用性、可靠性以及性能,在分布式系统中,往往会设置数据冗余,即对数据进行复制。举例来说,当一个数据库的副本被破环以后,那么系统只需要转换到其他数据副本就能继续运行下去。另外一个例子,当访问单一服务器管理的数据的进程数不断增加时,系统就需要对服务器的数量进行扩充,此时,对服务器进行复制,随后让它们分担工作负荷,就可以提高性能。但同时,如何保障多个数据节点之间数据的一致以及如何处理分布式事务,将成为为一个复杂的话题。本文将介绍常用的事务处理机制。


OAuth 2.0 认证的原理与实践

2017-03-24 OAuth2 Spring Security GitHub

使用 OAuth 2.0 认证的的好处是显然易见的。你只需要用同一个账号密码,就能在各个网站进行访问,而免去了在每个网站都进行注册的繁琐过程。 本文将介绍 OAuth 2.0 的原理,并基于 Spring Security 和 GitHub 账号,来演示 OAuth 2.0 的认证的过程。


Spring Data + Thymeleaf 3 + Bootstrap 4 实现分页器

2017-03-05 Spring Spring Data Thymeleaf Bootstrap

实际上分页器或者分页组件在现实中都有广泛着的应用,照理来说老卫没有必要单独撰文来提这茬。事实是,我近期刚好在写一门关于Spring Data、Thymeleaf 3、Bootstrap 4 的应用课程,所以用了Bootstrap 4的样式,结果之前很多例如 Bootstrap 3 的表格、分页器啊之类的插件都不能很好的兼容,百度谷歌无果,而且 Bootstrap 4 还没有出稳定版本,官网的示例也是少的可怜,最终下决心要自己写个分页器了,所用到的技术就是 Spring Data、Thymeleaf 3、Bootstrap 4 。


用大白话聊聊分布式系统

2017-03-05 Distributed

一提起“分布式系统”,大家的第一感觉就是好高大上啊,深不可测,看各类大牛关于分布式系统的演讲或者书籍,也大多是一脸懵逼。本文期望用浅显易懂的大白话来就什么是分布式系统、分布式系统有哪些优势、分布式系统会面临哪里挑战、如何来设计分布式等方面的话题来展开讨论。


Thymeleaf 3 引入了新的解析系统

2017-02-19 Thymeleaf

如果你的代码使用了 HTML5 的标准,而Thymeleaf 版本来停留在 2.x ,那么如果没有把<input>闭合,如下:

<form>
 First name:<br>
<input type="text" name="firstname">
<br>
 Last name:<br>
<input type="text" name="lastname">
</form> 

就会抛出如下错误。

org.xml.sax.SAXParseException: 元素类型 "input" 必须由匹配的结束标记 "</input>" 终止。

使用 GFM Eclipse 插件时,不在项目里面生成 HTML 文件

2017-02-19 GFM

GFM 是 GitHub Flavored Markdown Viewer 的简称,是一款对 GitHub 友好的 Markdown 编辑器 ,在 Eclipse中可以以插件形式安装。

在使用过程中,我们发现对使用 GFM 编辑过的.md文件,都会在同个目录下生成.md.html的同名文件。显然,很多时候,我们并不需要保存.md.html文件,我们只想把.md文件存储到代码库。


使用 PMD Eclipse插件

2017-02-14 PMD

PMD 是一个源代码分析器。 它发现常见的编程缺陷,如未使用的变量、空 catch 块、不必要的对象创建等等。 它支持Java、JavaScript、Salesforce.com Apex、PLSQL、Apache Velocity、XML、XSL 等。

此外,它包括 CPD(copy-paste-detector,复制粘贴检测器)。 CPD 在Java、C、C++、C#、Groovy、PHP、Ruby、Fortran、JavaScript、PLSQL、Apache Velocity、Scala、Objective C、Matlab、Python、Go、Swift 和 Salesforce.com Apex 中能够发现重复的代码。

本文介绍了如何在 Eclipse 里面安装、使用 PMD 插件的过程。


使用 Eclipse Checkstyle Plugin

2017-02-13 Checkstyle

Checkstyle是一个开发工具,帮助程序员编写符合编码标准的Java代码。 好的代码规范,在一个项目协作的团队中尤为重要。Checkstyle 能够自动化检查Java代码的过程,免去了人工校验的繁琐。 同时,Checkstyle是高度可配置的,可以支持几乎任何编码标准。 只需要提供了一个示例配置文件,就能支持代码的约定。

本文介绍了如何在 Eclipse 里面安装、使用 Checkstyle 插件的过程。


Way Lau

Software Engineer and Full Stack Developer, now work and live in Shenzhen, China. Detail

Donate

See the list of Donors.