分布式场景下的ID生成解决方案

在服务设计中,经常遇到的一个问题就是如何生成一个全局唯一的ID,例如订单号,流水号等。对于ID的要求主要有以下几点:全局唯一,不会存在冲突;快速生成,能够满足高并发场景下的需求;能够满足分布式场景下的业务需求;ID生成服务能够方便的扩容缩容。最好基本有序;能够附加一些业务信息,例如时间,系统标识等;能够应对测试环境的一些特殊需求,如跳日,日期回拨等。我们简单分析下常见的实现方式:UUID最熟悉的应
分类: 编程语言 发布时间: 02-19 21:33 阅读次数: 0

深入理解 Java 函数式编程(3): Java 8 的 Lambda 表达式和流处理

在本系列的前两篇文章中,已经对函数式编程的思想和函数式编程的重要概念做了介绍。本文将介绍 Java 平台本身对函数式编程的支持,着重介绍 Lambda 表达式和流(Stream)。Lambda 表达式当提到 Java 8 的时候,Lambda 表达式总是第一个提到的新特性。Lambda 表达式把函数式编程风格引入到了 Java 平台上,可以极大的提高 Java 开发人员的效率。这也是 Java
分类: 编程语言 发布时间: 02-19 21:33 阅读次数: 0

Java 代码精简之道 (上)

1.利用语法1.1.利用三元表达式普通:String title;if (isMember(phone)) {    title = "会员";} else {    title = "游客";}精简:String title = isMember(phone) ? "会员" : "游客";注意:对于包装类型的算术计算,需要注意避免拆包时的空指针问题。1.2.利用 for-each 语句从 Jav
分类: 编程语言 发布时间: 02-19 21:33 阅读次数: 0

深入理解 Java 函数式编程(2): 函数式编程中的重要概念

本系列的上一篇文章对函数式编程思想进行了概述,本文将系统地介绍函数式编程中的常见概念。这些概念对大多数开发人员来说可能并不陌生,在日常的编程实践中也比较常见。函数式编程范式的意义在众多的编程范式中,大多数开发人员比较熟悉的是面向对象编程范式。一方面是由于面向对象编程语言比较流行,与之相关的资源比较丰富;另外一方面是由于大部分学校和培训机构的课程设置,都选择流行的面向对象编程语言。面向对象编程范式的
分类: 编程语言 发布时间: 02-19 21:33 阅读次数: 0

DevOps解决方案 | 红绿发布

适用于软件开发者的产品和解决方案,方便开发者快速、可靠的构建和交付产品。颠覆基础设施预置和管理流程,改变传统应用程序代码交付方式,加强软件发布流程的自动化,让开发过程环环相扣场景描述1. 熬夜加班也没有搞定新版本升级,想回滚到老的服务却发现已经不可能了?2. 评估服务稳定程度,需要几个小时甚至几天,黄花菜都凉了?3. 还在为手工或脚本方式保证不中断服务而导致的易出错、费时而苦恼?蓝绿发布,在发布的
分类: 编程语言 发布时间: 02-19 21:33 阅读次数: 0

深入理解 Java 函数式编程(1):函数式编程思想概论

前言在讨论函数式编程(Functional Programming)的具体内容之前,我们首先看一下函数式编程的含义。在维基百科上,函数式编程的定义如下:"函数式编程是一种编程范式。它把计算当成是数学函数的求值,从而避免改变状态和使用可变数据。它是一种声明式的编程范式,通过表达式和声明而不是语句来编程。" (见 Functional Programming)函数式编程的思想在软件开发领域由来已
分类: 编程语言 发布时间: 02-19 21:33 阅读次数: 0

DevOps解决方案 | 持续交付解决

适用于软件开发者的产品和解决方案,方便开发者快速、可靠的构建和交付产品。颠覆基础设施预置和管理流程,改变传统应用程序代码交付方式,加强软件发布流程的自动化,让开发过程环环相扣场景描述1. 搭建一个支持多种语言编译环境的CICD环境很麻烦?2. CD环境还要完美支持部署到Docker运行环境,配置起来也很麻烦?3. 从CD环境支持灰度发布,需要大量的脚本和运维,复杂且容易出错?持续交付是一种敏捷交付
分类: 编程语言 发布时间: 02-19 21:33 阅读次数: 0

奈雪的茶的成功之道

近几年来,我国新式茶饮市场呈井喷式发展,一轮轮新资本竞相涌入,各类茶饮品牌层出不穷,茶饮已经成为了现代人们社交必不可少的一部分。奈雪的茶作为其中佼佼者之一,消费者在门店大排长龙,社交网照片打卡的盛况已经不足为奇。  奈雪的茶创立于2015年,隶属于深圳市品道餐饮管理有限公司。创新打造“茶+软欧包”的形式,以20-35岁年轻女性为主要客群,坚持茶底4小时一换,软欧包不过夜。截至2020年2月,奈雪的
分类: 编程语言 发布时间: 02-19 21:33 阅读次数: 0

解读阿里巴巴 Java 代码规范(2): 从代码处理等方面解读阿里巴巴 Java 代码规范

前言2017 年阿里云栖大会,阿里发布了针对 Java 程序员的《阿里巴巴 Java 开发手册(终极版)》,这篇文档作为阿里数千位 Java 程序员的经验积累呈现给公众,并随之发布了适用于 Eclipse 和 Intellim 的代码检查插件。为了能够深入了解 Java 程序员编码规范,也为了深入理解为什么阿里这样规定,是否规定有误,本文以阿里发布的这篇文档作为分析起源,扩大范围至业界其他公
分类: 编程语言 发布时间: 02-19 21:33 阅读次数: 0

10分钟了解DevOps及常用工具集

目前在国外,互联网巨头如Google、Facebook、Amazon、LinkedIn、Netflix、Airbnb,传统软件公司如Adobe、IBM、Microsoft、SAP等,亦或是网络业务非核心企业如苹果、沃尔玛、索尼影视娱乐、星巴克等都在采用DevOps或提供相关支持产品。那么DevOps究竟是怎样一回事?DevOps的概念DevOps(Development和Operations的组合
分类: 编程语言 发布时间: 02-19 21:33 阅读次数: 0

再获D轮10亿元融资!看钱大妈如何玩转生鲜市场?

品牌介绍钱大妈是广州钱大妈农产品有限公司旗下一家专注于生鲜肉菜市场的连锁服务商,推行“不卖隔夜肉”价值主张和B2B新型供应链模式,致力于打造生鲜社区O2O服务。从最开始在东莞长安一家猪肉专卖店,到如今在华南、华中、华东、成都和香港拥有自己的门店。钱大妈正在以大步阔进之势席卷中国。 1 生鲜市场整体环境现代社会,人们对生鲜肉菜的需求愈来愈大,促使大量资本涌入这个所谓的蓝海市场,如大众熟知的京东到家、
分类: 编程语言 发布时间: 02-19 21:33 阅读次数: 0

解读阿里巴巴 Java 代码规范(1):从命名风格等方面解读阿里巴巴 Java 代码规范

前言2017 年阿里云栖大会,阿里发布了针对 Java 程序员的《阿里巴巴 Java 开发手册(终极版)》,这篇文档作为阿里数千位 Java 程序员的经验积累呈现给公众,并随之发布了适用于 Eclipse 和 Intellim 的代码检查插件。为了能够深入了解 Java 程序员编码规范,也为了深入理解为什么阿里这样规定,是否规定有误,本文以阿里发布的这篇文档作为分析起源,扩大范围至业界其他公
分类: 编程语言 发布时间: 02-19 21:33 阅读次数: 0

Spring Boot 基础:使用 Spring Boot 编写能直接运行的 Spring 应用程序

Spring Boot 是一个轻量级框架,可以完成基于 Spring 的应用程序的大部分配置工作。在本教程中,将学习如何使用 Spring Boot 的 starter、特性和可执行 JAR 文件结构,快速创建能直接运行的基于 Spring 的应用程序。简单介绍 Spring Boot 后,我将引导您设置并运行两个 Spring Boot 应用程序:一个简单的 “Hello, World” 应
分类: 编程语言 发布时间: 02-19 21:33 阅读次数: 0

Java 12 新特性概述

Java 12 已如期于 3 月 19 日正式发布,此次更新是 Java 11 这一长期支持版本发布之后的一次常规更新,截至目前,Java 半年为发布周期,并且不会跳票承诺的发布模式,已经成功运行一年多了。通过这样的方式,Java 开发团队能够将一些重要特性尽早的合并到 Java Release 版本中,以便快速得到开发者的反馈,避免出现类似 Java 9 发布时的两次延期的情况。Java
分类: 编程语言 发布时间: 02-19 21:33 阅读次数: 0

Java 8 习惯用语(11):函数纯度

函数管道和 Stream API我们使用 Stream 在 Java™ 中构建函数管道。在函数式代码中使用 Stream 有 3 个好处:Stream 简洁、富于表达、非常优雅,而且代码读起来就像是问题陈述。Stream 采用了惰性计算,这使得它在您的程序中非常高效。它可以并行使用。在本系列中,您已详细了解了优雅和简洁的代码的好处。在本文中,我们将重点介绍其他两个好处。效率是您在使用函数管道时寻求
分类: 编程语言 发布时间: 02-19 21:33 阅读次数: 0

Java 8 习惯用语(10):使用闭包捕获状态

在 Java™ 编程中,我们以不严格地使用术语 lambda 表达式来表示 lambda 表达式和闭包。但在某些情况下,理解它们的区别很重要。lambda 表达式是无状态的,而闭包是带有状态的。将 lambda 表达式替换为闭包,是一种管理函数式程序中的状态的好方法。无状态的生活我们在本系列中大量介绍了 lambda 表达式,您应该已经对它们有非常透彻的了解。它们是小巧的匿名函数,接受可选的参数,
分类: 编程语言 发布时间: 02-19 21:33 阅读次数: 0

Java 8 习惯用语(9):级联 lambda 表达式

在函数式编程中,函数既可以接收也可以返回其他函数。函数不再像传统的面向对象编程中一样,只是一个对象的工厂或生成器,它也能够创建和返回另一个函数。返回函数的函数可以变成级联 lambda 表达式,特别值得注意的是代码非常简短。尽管此语法初看起来可能非常陌生,但它有自己的用途。本文将帮助您认识级联 lambda 表达式,理解它们的性质和在代码中的用途。神秘的语法您是否看到过类似这样的代码段?x -&g
分类: 编程语言 发布时间: 02-19 21:33 阅读次数: 0

Java 8 习惯用语(8):Java 知道您的类型

Java™8 是第一个支持类型推断的 Java 版本,而且它仅对 lambda 表达式支持此功能。在 lambda 表达式中使用类型推断具有强大的作用,它将帮助您做好准备以应对未来的 Java 版本,在今后的版本中还会将类型推断用于变量等更多可能。这里的诀窍在于恰当地命名参数,相信 Java 编译器会推断出剩余的信息。大多数时候,编译器完全能够推断类型。在它无法推断出来的时候,就会报错。了解
分类: 编程语言 发布时间: 02-19 21:33 阅读次数: 0

Java 8 习惯用语(7):函数接口

lambda 表达式的类型是什么?一些语言使用函数值或函数对象来表示 lambda 表达式,但 Java™ 语言没有这么做。Java 使用函数接口来表示 lambda 表达式类型。乍一看似乎有点奇怪,但事实上这是一种确保对 Java 语言旧版本的向后兼容性的有效途径。您应该非常熟悉下面这段代码:Thread thread = new Thread(new Runnable() {  public 
分类: 编程语言 发布时间: 02-19 21:32 阅读次数: 0

华为接入S5700-LI 脚本配置

之前项目中经常会涉及到批量配置交换机的场景,现分享给大家。华为交换机S5700-LI接入模板配置如下(x.x.x.x为ip,xxxxxxx为密码):systemsysnamexxxx-S5700-LI-14clocktimezoneBJadd08:00:00snmp-agentcommunityreadabcdtestsnmp-agentsys-infoversionv2cv3dhcpenable
分类: 企业开发 发布时间: 02-19 21:32 阅读次数: 0