自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员光剑

杭州某头部大厂资深程序员,AI大模型应用架构师。 主业写程序,佛系写博客,有灵感写诗。藏书数万册。 畅销书作者,代表作《ClickHouse入门实战与进阶》《Kotlin 极简教程》《Spring Boot开发实战》《Kotlin从入门到进阶实战》等。

  • 博客(27)
  • 资源 (9)
  • 问答 (1)
  • 收藏
  • 关注

原创 怎样修心?不乱于心,不困于情。

青山几度变黄山,世事纷飞总不干。眼内有尘三界窄,心头无事一床宽。水芙蓉怎样修心?不乱于心,不困于情?运动。多做跑步、游泳等体育活动可以使得你在运动中脑子不一直想着烦恼,运动之后身体和心里上的负面情绪发泄了出来,会使你重新获得快乐。读书。书籍是我们观阅前人思想的重要工具。想要拥有一颗平常心,需要积淀知识和文化,升华思想。要有胆有识,无所畏惧。听音...

2019-07-28 01:51:00 8809

原创 Kotlin 编码规约

Kotlin 编码规约编码规范本页包含当前 Kotlin 语言的编码风格。源代码组织命名规则格式化文档注释避免重复结构语言特性的惯用法库的编码规范应用风格指南如需根据本风格指南配置 IntelliJ 格式化程序,请安装 Kotlin 插件1.2.20 或更高版本,转到“Settings | Editor | Code Style...

2019-07-25 15:44:00 10493

原创 MyBatis 源代码阅读笔记 2 基于"注解"方式的代码编写

MyBatis 源代码阅读笔记 2 基于"注解"方式的代码编写源代码工程https://github.com/Jason-Chen-2017/source-code-reading代码详解:package com.light.sword;import org.apache.ibatis.datasource.DataSourceFactory;import org.apac...

2019-07-24 02:15:00 8553

原创 MyBatis 源代码阅读笔记 1 基于XML配置的代码编写 mybatis-config.xml

什么是 MyBatis?MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。快速开始示例...

2019-07-24 01:58:00 8468

原创 产品经理能力模型

产品经理能力模型基础素质学习能力(Learning Ability)有些东西不懂很正常,从不懂到懂,从懂到精通 在每次产品项目实践中的总结归纳,清楚的知道成功经验与失败教训。执行力(Execution)完成预定目标及任务的能力,包含完成任务的意愿,完成任务的方式方法,完成任务的程度。这对于产品新人来说,或许是最重要的,刚刚开始步入职场,没啥决策权,先按照领导要求做出来吧,当然,...

2019-07-21 02:27:00 9131

原创 IntelliJ IDEA - 查找代码提交人

IntelliJ IDEA - 查找代码提交人

2019-07-18 02:00:00 12672 1

原创 Java 中正则表达式如何匹配竖线(|) , 以及在 Kotlin 中是如何改进的?

Java 中正则表达式如何匹配竖线(|)在Java中直接调用String的split方法: val b = java.lang.String(a) val s3 = b.split("|") // ["a","b","c","|","1","2","3","4"] println(JSON.toJSONString(s3))因为 | 在正则表达式中是或的概念,...

2019-07-17 10:21:00 9921

原创 如何写出一个好的设计文档?

1.概要大部分的工程师都不重视设计文档的书写,对于一个需求,都是经过一些简单的讨论,写一个简单的方案甚至就是自己简单的想想就开始进行编码的工作。往往这种开发方式会导致开发人员对细节考虑不周,开发过程中会带来许多的坑,在今后采坑或者补坑的路上耗费大量的人力,轻则影响上线时间,重则上线了出现case,影响业务。写设计文档和是能够帮助开发人员完成 是什么->做什么->怎么做 的思...

2019-07-17 03:19:00 8488

原创 人人都是产品经理 : 如何写出一份优秀的 PRD ? 精于心简于形 !

人人都是产品经理 : 如何写出一份优秀的 PRD ? 精于心简于形 !在一个真正的产品经理眼里,世间万物,皆是产品。PRD(Product-Requirement-Document,产品需求文档)一份目录结构清晰的PRD 长什么样?一个好的prd框架结构应该至少包含以下内容:产品简介、产品概览、产品架构、产品原型、非功能性需求,如下图:如何用Axure输...

2019-07-17 03:03:00 9439

原创 史上最详尽 Java 8 集合类 HashMap : 底层实现和原理学习笔记(源码解析)

史上最详尽 Java 8 集合类 HashMap : 底层实现和原理学习笔记(源码解析)imageJava中Map接口集合类继承关系在 Java 中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。Hashmap实际上是一个数组和链表的结合体(在数据结构中,一般称之为“链表散列“),请看下图: [h...

2019-07-17 00:46:00 8608

原创 Java并发编程实战: AQS 源码 史上最详尽图解+逐行注释

Java并发编程实战: AQS 源码 史上最详尽图解+逐行注释引言: 学习一个java并发编程工具的时候,我们首先要抓住这三点:状态一般是一个state属性,它基本是整个工具的核心,通常整个工具都是在设置和修改状态,很多方法的操作都依赖于当前状态是什么。由于状态是全局共享的,一般会被设置成volatile类型,以保证其修改的可见性;队列队列通常是一个等待对象 Node 的集...

2019-07-13 16:33:00 9237

原创 ReentrantLock 实现原理笔记(一)

java.util.concurrent.locks.ReentrantLockexclusive : adj. (个人或集体) 专用的,专有的,独有的,独占的; 排外的; 不愿接收新成员(尤指较低社会阶层)的; 高档的; 豪华的; 高级的reentrant : 可重入; 可重入的; 重入; 可再入的; 重进入一切从 Thread 线程...

2019-07-12 01:35:00 8654

原创 并行执行任务的ForkJoin框架简介

Fork/Join框架简介从JDK1.7开始,Java提供Fork/Join框架用于并行执行任务,它的思想就是讲一个大任务分割成若干小任务,最终汇总每个小任务的结果得到这个大任务的结果。这种思想和MapReduce很像(input --> split --> map --> reduce --> output).主要有两步:...

2019-07-11 23:18:00 8549

原创 系统架构设计方法论——Zachman框架模型

驾驭复杂系统的整体设计整个体系的架构设计和价值事物背后的思考Zachman proposes a logical structure for classifying and organizing the descriptive representations of an enterprise, in different dimensions, ...

2019-07-11 23:15:00 10091

原创 Kotlin 并发编程之"协程"

Kotlin 并发编程之"协程"Kotlin协程简介Kotlin, as a language, provides only minimal low-level APIs in its standard library to enable various other libraries to utilize coroutines. Unlike man...

2019-07-11 23:13:00 8554

原创 json 反序列化多层嵌套泛型类与 java 中的Type类型笔记

json 反序列化多层嵌套泛型类与java中的Type类型笔记 val typeRef = TypeRef() val result = JSON.parseObject(json, typeRef) return result其中,class TypeRef : TypeReference<ResultDTO<List&...

2019-07-10 03:12:00 10298

原创 Java 并发编程中的死锁 ( Kotlin 语言讲解)

什么是死锁?在操作系统中的并发处理场景中, 进程对资源的持有与请求过程中,会产生死锁.Say, Process A has resource R1 , Process B has resource R2. If Process A request resource R2 and Process B requests resource R1, at the same time , then d...

2019-07-06 23:41:00 9129

原创 Choosing the object-to-lock in explicit locks (ReentrantLock example)

Choosing the object-to-lock in explicit locks (ReentrantLock example)https://coderanch.com/t/665262/java/Choosing-object-lock-explicit-locksSo, I just finished studying synchronized keyword (Block...

2019-07-06 23:09:00 8438

原创 【SpringBoot + Kotlin 服务端开发】(系列视频教程)

本系列课程介绍了基于 Gradle + Kotlin 、使用 Spring Boot 2.0 框架来开发企业级应用的最佳实践。我希望通过简练的表述、详细的演示,系统全面地介绍如何使用 Spring Boot 2.0 框架开发项目,以及如何 Kotlin 进行实际的服务端项目的开发。【SpringBoot + Kotlin 服务端开发】(系列视频教程)...

2019-07-06 00:44:00 8878

原创 怎样编写健壮的代码

怎样编写健壮的代码怎样编写健壮的代码.png代码的几种特性鲁棒性Robust(健壮性)系统在异常和危险情况下生存的关键容错性可移植性反例: 脆弱、僵化、顽固且粘滞性高如何构建高效、健壮、稳定且可扩展的优质API为什么使用API模块化减少代码重复消除硬编码假设解耦业务逻辑内部实现如何做到代码健壮且优雅?必须真...

2019-07-05 01:38:00 9022

原创 Kotlin 开发者社区: Kotlin collections (集合类)

Nicolas Fränkel is a Developer Advocate with 15+ years experience consulting for many different customers, in a wide range of contexts (such as telecoms, banking, insurances, large retail and publi...

2019-07-05 00:06:00 9143

原创 软件架构设计之: 分层架构

// TODOKotlin 开发者社区国内第一Kotlin 开发者社区公众号,主要分享、交流 Kotlin 编程语言、Spring Boot、Android、React.js/Node.js、函数式编程、编程思想等相关主题。...

2019-07-04 00:32:00 8610

原创 架构设计模式—6大设计原则

架构设计原则6大设计原则 Single Responsibility Principle  : 单一职责原则 Liskov Substitution Principle : 里氏替换原则 Dependence Inversion Principle :依赖倒置原则 Interface Segregation Principle : 接口隔离原则 L...

2019-07-03 22:53:00 11813

原创 《代码整洁之道》细节之中自有天地,整洁成就卓越代码 读书笔记

《代码整洁之道》细节之中自有天地,整洁成就卓越代码 读书笔记There are only two hard things in Computer Science: cache invalidation and naming things.-- Phil Karlton《代码整洁之道》主要讲述了一系列行之有效的整洁代码操作实践。软件质量,不但依赖于架构及项目管理,...

2019-07-03 22:51:00 8969

原创 A Kotlin Wishlist for Java ( 给Java开发者的Kotlin愿望清单) 中英文对照

毫无疑问,Java在编程语言方面享有优越的地位,被认为是最重要的开发语言之一。但是,在JVM之上开发了许多语言,比如 Kotlin。Kotlin是一种用于现代多平台应用程序的静态类型编程语言。虽然我在很长一段时间内都是Java开发人员,但是在项目数据匿名化方面的工作让我开始考虑使用Kotlin。这些是Kotlin的一些功能,我希望看到它在Java中占...

2019-07-03 22:48:00 8621

原创 Kotlin 树状结构的遍历 & 递归构建一棵树源代码实例

package com.ak47.cms.cms.treeimport com.ak47.cms.cms.vo.TreeVOobject TreeUtil { /** * 递归遍历树 * @param node 当前树节点 * @param visitor 游历函数 */ fun visitTree(node: TreeVO...

2019-07-03 22:46:00 9566

原创 给 Java 开发者的 Kotlin 快速上手教程(Kotlin for Java Developers)v0.1

Kotlin 概述: 开启 Kotlin 之旅Google在2017年的IO大会上宣布,将Android开发的官方语言更换为Kotlin。Java的辉煌与阴影1995年,当年如日中天的Sun公司发布了Java语言,引起了巨大的轰动,与当时主流的C语言和Basic语言比起来,Java语言简单、面向对象、稳定、与平台无关、解释型、多线程、动态等特点,就像是打开了一个新的世界,一时间风靡...

2019-07-03 00:23:00 8666

ClickHouse 高性能、可扩展和低成本的OLAP数据库 陈光剑 20230912

ClickHouse 设计哲学 具体问题具体分析 use good algorithms in a good context; 深入细节 dig into details; 度量指标 measure everything; 贴近生产环境 be close to production; 基准测试 do benchmarks, more of them; 不断试验、实践never stop experimenting; 大规模测试 test at scale; 大胆创新 do weird stuff; have fun! It is a database: A database has both a storage engine and a query engine. ClickHouse can efficiently ingest data from various sources and its query engine provides low-latency query responses. It is an OLAP database: An On-Line Analytic

2023-09-14

Will AI Fix Work? 工作节奏超过了我们的跟上能力 人工智能有望创造一种全新的工作方式

The pace of work is outpacing our ability to keep up. AI is poised to create a whole new way of working. 工作节奏超过了我们的跟上能力。人工智能有望创造一种全新的工作方式。 微软工作趋势指数年度报告( Work Trend Index Annual Report ) Key findings: The data points to three urgent insights business leaders must know now as they look to quickly and responsibly adopt AI. 1. Digital debt is costing us innovation: 64% of people have struggled with finding time and energy to get their work done, and those workers are 3.5x more likely to say they

2023-05-17

THE AI INDEX REPORT 人工智能指数报告 Measuring trends in Artificial Inte

THE AI INDEX REPORT 人工智能指数报告 Measuring trends in Artificial Intelligence 衡量人工智能的趋势 TOP TAKEAWAYS 最重要的要点 Industry races ahead of academia. 工业界领先于学术界。 Until 2014, most significant machine learning models were released by academia. Since then, industry has taken over. In 2022, there were 32 significant industry-produced machine learning models compared to just three produced by academia. Building state-of-the-art AI systems increasingly requires large amounts of data, compute, and money, resources

2023-04-06

四大常用限流算法原理详解:计数器固定窗口、计数器滑动窗口、漏桶、令牌桶算法.pdf

四大常用限流算法原理详解:计数器固定窗口、计数器滑动窗口、漏桶、令牌桶算法.pdf

2021-05-28

Kotlin Coroutines by Tutorials (1st Edition)

Kotlin Coroutines by Tutorials (1st Edition)

2021-04-28

Principles of programming languages by Gilles Dowek (auth.) (z-lib.org).pdf

Principles of programming languages by Gilles Dowek (auth.) (z-lib.org).pdf

2021-04-28

A Brief History of Artificial Intelligence

A Brief History of Artificial Intelligence What It Is, Where We Are, and Where We Are Going by Michael Wooldridge (z-lib.org).pdf

2021-04-28

An introduction to functional programming through lambda calculus.PDF.zip

Author: Michaelson, Greg Functional programming is rooted in lambda calculus, which constitutes the world's smallest programming language. This well-respected text offers an accessible introduction to functional programming concepts and techniques for students of mathematics and computer science. The treatment is as nontechnical as possible, and it assumes no prior knowledge of mathematics or functional programming. Cogent examples illuminate the central ideas, and numerous exercises appear throughout the text, offering reinforcement of key concepts. All problems feature complete solutions.

2019-09-22

《Kotlin项目实战开发》第3章+类型系统与可空类型

《Kotlin项目实战开发》 第3章 类型系统与可空类型 跟Java、C和C ++ 一样, Kotlin也是“静态类型编程语言”。 通常,编程语言中的类型系统中定义了  如何将数值和表达式归为不同的类型  如何操作这些类型  这些类型之间如何互相作用 我们在编程语言中使用类型的目的是为了让编译器能够确定类型所关联的对象需要分配多少空间。 在每一个编程语言中,都有一个特定的类型系统。静态类型在编译时期时,就能可靠地发现类型错误。因此通常能增进最终程序的可靠性。 类型系统在各种语言之间有非常大的不同,主要的差异存在于编译时期的语法,以及运行时期的操作实现方式。 本章我们简单介绍一下Kotlin的类型系统。

2017-09-30

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除