保存成功
订阅成功
保存失败,请重试
提交成功
最新热门
严选

在代码开发的路上怎么评判代码的好坏

一般在代码的过程中我们经常会有一个疑问,怎样的代码才是好代码,怎么评估写的这段代码是否有水平,在项目重构的中需要达到什么目标才可以,在写业务代码时怎么才能摆脱 CRUD 的简单代码。所述都是差一个代码开发规范,设计原则提供基础设计思路,设计模式提供设计模板;设计代码也需要有度,不能过渡设计,会适得其反;复杂的项目怎么做设计,代码开发完成之后又怎么保证代码质量,所以需要一个衡量的标准。 在本场 Chat 中,会讲到如下内容: 1. SOLID 设计原则 2. 其它设计原则 3. 设计模式 4. 过渡设计/设计不足怎么衡量 5. 复杂项目的设计思想 6. 怎么保证代码质量 适合人群: 对基础框架研发人员、业务人员、项目重构人员适用
...... · 架构师
3 订阅

Docker 从入门到精通

本场 Chat 将会深入浅出的介绍 Docker 相关内容,Docker 从入门到精通,本场 Chat 有如下内容。 1. 初识 Docker 与容器之 Docker 入门。 2. Docker 核心概念与安装配置之 Docker 初步认识。 3. 使用 Docker 镜像之 Docker 认识加深。 4. 操作 Docker 容器之 Docker 深入了解。 5. 访问 Docker 仓库之 Docker 再次加深。 6. Docker 数据管理之 Docker 逐步深入。 7. Docker 端口映射与容器互联之 Docker 精通一半。 8. 使用 DockerFile 创建镜像之 Docker 彻底精通。
小小小小 · 阿里云社区认证专家
1 订阅

Spring Data JPA 实践 + 源码分析

Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的一套 JPA 应用框架,底层使用了 Hibernate 的 JPA 技术实现,可使开发者用极简的代码即可实现对数据的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 Spring Data JPA 可以极大提高开发效率。 本文将从源码分析的角度,剖析 Spring Data JPA 的各个功能。 本场 Chat 内容将涉及如下: 1. 快速上手; 2. 条件查询封装; 3. 如何执行自定义 SQL; 4. 源码解析。
九哥九哥 · .
16 订阅

Spring Boot 快速构建多租户 SaaS 平台

SaaS 软件及服务,是一种软件构建模型。它让多个不同环境的用户使用同一套应用程序,且保证用户之间的数据相互隔离。 对于企业来说,只需要简单注册即可。企业无需再配备IT方面的专业技术人员,同时又能得到最新的技术应用,满足企业对信息管理的需求。 从维护和管理方面来看:由于企业采取租用的方式来进行物流业务管理,不需要专门的维护和管理人员,也不需要为维护和管理人员支付额外费用。很大程度上缓解企业在人力、财力上的压力,使其能够集中资金对核心业务进行有效的运营。 本文将基于 Spring Boot,提供一种代码侵入性极低、可快速将传统应用切换到 SaaS 应用的解决方案。 本 Chat 你将会获得以下知识: 1. SaaS 的基本介绍 2. 数据隔离方案 3. 租户维护方案
九哥九哥 · .
24 订阅

学习并掌握 Oracle 数据库的点滴知识

Oracle 数据库系统是目前世界上流行的关系型数据管理库系统,使用方便、功能强、高效率等等,日常学习或办公也是会接触到,了解学习它的相关知识、使用方法也是显得尤为重要的。时不我待,码不停蹄吧! **下面内容将分为五个层次呈现:** 1. Linux 服务器 (Minimal Centos) 安装 Oracle 11g 数据库: * 详细演示 Centos6.8 安装 Oracle 数据库(Word 文档图解提供详细步骤); * 本地连接 Oracle 数据库的客户端工具(PL/SQL Developer (汉化版的)安装与配置、使用技巧) ; * Oracle 数据库名/实例名/服务名、虚拟表 dual、表空间、用户创建、权限分配等等相关知识介绍。 2. Oracle 的基本知识: * 数据定义: 建表(Create table)、改表(Alter table)、增/修/删字段、删表、清空表数据等等; * 数据类型: NUMBER、FLOAT、CHAR、LONG、VARCHAR2、NVARCHAR2、DATE、CLOB、NCLOB 等等; * 数据修改: INSERT 、INSERT INTO SELECT、INSERT ALL、UPDATE 、DELETE 等等; * 数据操作: 数据查询、连接表、过滤数据、分组数据、排序数据等等。(select=>from=>join=>on=>where=>group by=>order by); 3. Oracle 常用的函数讲解(示例呈现): * 字符串函数:CONCAT(X,Y)、INSTR()、LENGTH(X)、LOWER(X)、UPPER(X)、TRIM()、REPLACE(X,old,new)、SUBSTR()、CASE WHEN、||运算符等等; * 日期函数:SYSDATE(当前系统时间)、ADD_MONTHS(d,n)、LAST_DAY(d)、EXTRACT(fmt FROM d) 等等; * 转换函数: TO_CHAR()、TO_DATE()、TO_NUMBER() 等; * 数值函数: CEIL(X)、ROUND(X[,Y])、MOD(X,Y)、TRUNC(X[,Y]) 等等; * 其他函数: NVL(X,Y)、NVL2(X,Y1,Y2)、DECODE()、WM_CONCAT()、ROW_NUMBER()OVER() 等等。 4. 其他内容学习: * 视图定义/创建、五种约束、创建/删除索引; * 触发器事件/类型、存储过程创建/执行; * Oracle 事务处理:事务特性、事务处理、事务锁等等。 5. Oracle 知识技能梳理: * 查看当前连接的会话数; * 查询表的创建时间、最后修改时间; * 查询表是否有主键; * 查询表/视图字段字段、数据类型、注释; * 查询表的占用空间的大小; * 查询当前用户下所有表; * 查询该表下有哪些视图; * 查询表空间利用率; * 查询表是否被锁、及如何解锁(Oracle 锁的级别); * Oracle 数据库用户登录方式; * Oracle 常见错误 ORA 分析; * Oracle 插入超大文本; * Oracle 数据类型与 MySQL 数据类型比较; * Oracle 软链接操作(跨库链接); * 等等。 *Life was a box of chocolates,you never know what you're gonna get.*
码不停蹄码不停蹄 · 三十而立
7 订阅

从底层重学 Java 之两大浮点类型

从底层,从原理,我们来重学一次 Java。两大 Java 浮点类 Double、Float 是我们比较常用的对象,他们的源码及实现是怎样的呢? 本系列秉承所有结论尽量从源码中来,没有源码的尽量标明出处。相关源码会附着在文章中,读本文即可,不用再自行查找源码及资料学习,方便大家充分利用路上的碎片时间。 本篇 Chat 对两大浮点类型的常量、构造函数、常用函数等进行逐一源码分析,帮助大家深入理解和学习 JDK 源码的牛掰优化。 本文包含以下内容: - Double - IEEE 754 Double 的存储原理 - 符号位 - 指数位 - 尾数位 - 示例 25.375 - 二进制转换 - 转成科学计数法 - 拆分 - 存储 - 浮点字面值(FloatingPointLiteral) - 十进制浮点字面值(DecimalFloatingPointLiteral) - 十六进制浮点字面值(HexadecimalFloatingPointLiteral) - 常量 - 构造函数 - parseDouble(String s) - FloatingDecimal.parseDouble(s) - 特殊值判断 - boolean isNaN() - boolean isInfinite() - static boolean isInfinite(double v) - static boolean isFinite(double d) - valueOf - Double valueOf(double d) - Double valueOf(String s) - 类型转换 - toString - String toString() - String toString(double d) - hashCode - int hashCode() - static int hashCode(double value) - static long doubleToLongBits(double value) - static native long doubleToRawLongBits(double value) - 计算比较 - boolean equals(Object obj) - double sum(double a, double b) - double max(double a, double b) - Math.max(double a, double b) - double min(double a, double b) - double Math.min(double a, double b) - Float - IEEE 754 Float 的存储原理 - 符号位 - 指数位 - 尾数位 - 示例 25.375 - 二进制转换 - 转成科学计数法 - 拆分 - 存储 - 浮点字面值(FloatingPointLiteral) - 十进制浮点字面值(DecimalFloatingPointLiteral) - 十六进制浮点字面值(HexadecimalFloatingPointLiteral) - 常量 - 构造函数 - Float(float value) - Float(double value) - Float(String s) - float parseFloat(String s) - FloatingDecimal.parseFloat(String s) - 特殊值判断 - boolean isNaN() - boolean isInfinite() - static boolean isInfinite(float v) - static boolean isFinite(float d) - valueOf - Float valueOf(float d) - Float valueOf(String s) - 类型转换 - toString - String toString() - String toString(float d) - hashCode - int hashCode() - static int hashCode(float value) - static int floatToIntBits(float value) - static native int floatToRawIntBits(float value) - 计算比较 - boolean equals(Object obj) - float sum(float a, float b) - float max(float a, float b) - Math.max(float a, float b) - float min(float a, float b) - Math.min(float a, float b) **适用人群**:有一些 Java 基础的人群。
草宝虫草宝虫 · 架构师
29 订阅

翻译 class 文件

“一零一零一一零,零一零一零零一”,这些看似杂乱无章,实则井然有序的数字中,究竟是什么含义。想要了解,JVM 如何工作的,首先要了解,class 文件的文件格式,这场 Chat 中,我会解释什么是跨平台的语言,什么又是跨语言的平台,Groovy、Kotlin 为何能与 Java 成文近亲。最后我们会徒手翻译一个 class 文件,让读者明白理解 class 文件的结构。 本场 Chat 会分享的几个点: 1. 跨语言的平台 2. class 字节码文件结构 3. idea 中分享 class 的工具 本篇 Chat 所需基础 1. Java 基础 2. 了解二进制,十六进制
浩子浩子 · 工程师
17 订阅

常用的 ES5 和 ES6 中对象的导出和导入的差异之处

1. export 与export default 均可用于导出常量、函数、文件、模块等 2. 你可以在其它文件或模块中通过 import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用 3. 在一个文件或模块中,export、import 可以有多个,export default 仅有一个 4. 通过 export 方式导出,在导入时要加{ },export default 则不需要
JackieDYHJackieDYH ·
ES6 · 9 订阅

微服务 Spring Cloud 之注册中心 Eureka 详解和使用

微服务架构中最核心的部分是服务治理,服务治理最基础的组件是注册中心。本文将带领大家一起进入 Spring Cloud Netflix 微服务套件Eureka,通过本文我们将学习到以下知识点: 1. 什么是服务注册? 2. 什么是服务发现? 3. 什么是注册中心,注册中心的作用? 4. 什么是注册,拉取? 5. Eureka 的自我保护机制和健康检查。 6. 为什么要使用服务注册和服务发现? 7. 什么是 Eureka,有什么作用? 8. Eureka 架构详解。 9. Eureka 的工作流程。 10. 实战 Eureka 注册中心的部署。
java架构师java架构师 · 高级开发工程师
20 订阅

揭秘 !Tomcat 启动流程和请求处理流程源码剖析

现在 Spring Boot 这么流行,为什么还要学习 Tomcat ? 确实 Spring Boot 内置 Tomcat 了,不再需要我们进行配置就可以访问 Web 项目。但是正因为 Spring Boot 使用了内置 Tomcat。我们才更需要了解 Tomcat 的核心原理。这样在报错的情况下才能快速定位到问题。 这篇文章给大家带来 Tomcat 源码解读。主要解读 Tomcat 在启动阶段是怎样执行的,以及启动完成后,怎样监听请求以及处理请求的。 学习本场 Chat 您将了解到: 1. Tomcat 源码环境搭建 2. Tomcat 启动流程 3. Tomcat 启动流程源码剖析 4. 请求访问 Tomcat 执行流程 5. 请求流程源码剖析
酸奶酸奶 · java 高级开发工程师
20 订阅

手写迷你版 Tomcat

现在 Spring Boot 这么流行,为什么还要学习 Tomcat ? 确实 Spring Boot 内置 Tomcat 了,不再需要我们进行配置就可以访问 web 项目。但是正因为 Spring Boot 使用了内置 Tomcat。我们才更需要了解 Tomcat 的核心原理。这样在报错的情况下才能快速定位到问题。 所以本篇文章就带领大家手写一个迷你版 Tomcat 。让我们了解一下 Tomcat 的核心实现以及核心流程。本文一个完成 5 个需求,一步步的完善,思路清晰,让你也能手写一个 Tomcat 。 学习本场 Chat 您将了解到: 1. 请求迷你 Tomcat ,返回固定的内容 2. 请求迷你 Tomcat ,返回 HTML 静态文件 3. 可以请求动态资源(Servlet) 4. 迷你 Tomcat 支持多线程访问 5. 迷你 Tomcat 支持多项目部署访问
酸奶酸奶 · java 高级开发工程师
21 订阅

MySQL 你可能会忽略的问题

这篇文章带你了解常见 MySQL 可能会忽略的问题,包括 MySQL 常见索引的选择,MySQL 数据类型的选择,字符集的选择。
程序员cxuan程序员cxuan · Java开发工程师
MySQL · 32 订阅

Android 事件响应入门

事件响应可帮助你制定应对网络安全事件的计划,并帮助你阻止将来可能会遇到的威胁。在本次 Chat 中,我将重点介绍一些非常基础的技术,用于对关键的 Android 日志进行分类,以帮助你进行分析恶意 App 对你设备的威胁程度。说人话就是: 如果你怀疑你安装的某个 App 它在做一些奇奇怪怪的事情,你想找出那个在做奇奇怪怪事情的 App,那么这次 Chat 很适合你。 预定本场活动,我将会讲到如下内容: 1. 环境的搭建 2. 信息收集, 比如列出正在运行应用以及列出网络流量 3. 发现所有 APK 的位置并将它们提取出来 4. 分析 APK 的权限 5. 从设备中删除此恶意应用 适合人群:对网络安全感兴趣的人,有需求请预订
flag_c0flag_c0 · 网络安全相关
6 订阅

Android App 渗透测试

安卓是世界上使用最广泛的设备操作系统。在安卓世界中开发的 App 面临的各种各样的威胁。因此,我决定用一个 Chat 来解释一下安卓中的 App 中常见的漏洞。 预定本场活动,我将会讲到如下内容: 1. 工具的准备 2. 不安全的日志记录 3. 硬编码问题 4. 不安全的数据存储 5. 不安全的输入验证 6. 访问控制 适合人群:开发人员,渗透测试人员,漏洞赏金猎人,以及针对网络安全感兴趣的人,有需求请预订
flag_c0flag_c0 · 网络安全相关
9 订阅

基于 MovieLens 的简单推荐系统算法验证

简介:本文基于 MovieLens 数据集构造了用户-电影项目评价矩阵,并基于评价矩阵计算两用户间的相似度,取出相似度最高的 N 个用户作为候选用户序列。接着筛选出这 N 个候选用户的高分电影项目且当前用户尚未观看,并根据这高分候选电影项目集合的电影类型,与当前用户所观影的全部电影类型做一个标签共现,预测当前用户对这些高分电影项目的评分,把预测评分最高的 M 个电影项目推荐给当前用户。 哦对了,本文是给纯小白入门用的,浅浅打代码确实菜的一批,这次的推荐系统算法验证没有用很花哨的程序实现,一行行带小白入门好了,顺带着我也做个总结,为毕业设计中的一个小模块贡献出自己绵薄的力量呜呜呜,这样子一说就感觉自己形象变高大了呢! 关键词:协同过滤;标签共现;电影推荐;Demo实战验证
浅浅浅浅 · 喜欢维和的网瘾青少年
40 订阅

蚂蚁金服网络通信框架 SOFABolt 功能介绍及协议框架解析 | 开源

为了让中间件开发者能将更多的精力放在产品功能特性实现上,而不是重复地一遍遍制造通信框架的轮子,SOFABolt 应运而生。 这些年,在微服务与消息中间件在网络通信上,蚂蚁集团解决过很多问题、积累了很多经验并持续进行着优化和完善,我们把总结的解决方案沉淀到 SOFABolt 这个基础组件里并反馈到开源社区,希望能够让更多使用网络通信的场景受益。 今天我们来聊一下蚂蚁集团开源的网络通信框架 SOFABolt 的框架解析以及功能介绍,将从以下四个方面展开: • SOFABolt 简介; • 基础通信能力解析; • 协议框架解析; • 私有协议实现解析;
SOFAStackSOFAStack · 技术专家
SOFA · 10 订阅

程序员赚钱实操课

程序员是一种使用不超过寿命 10 年的编程工具。作为程序员你的月薪有达到 50k 吗,如何突破 50k 月薪,还需要多久能达到?不是你不够勤奋,不是你不够努力,不是你学习热情不高,不是你技术不行,更不是你时间管理有问题。靠写代码赚钱,技术再牛逼,能突破 50k 的有几个人? 在我 13 年的程序员经历中,曾经也迷茫过,曾经也走过很多弯路,尝试过各种职业和赚钱的方法。今天把这些经验和自己的实操拿出来和大家一起交流。 在本场 Chat 中,会讲述如下内容: 1. 我的经历 - 三年内从负债到买三套房 - 做淘宝 - 摆地摊 - 办编程培训学校 - 开互联网公司 2. 赚钱实操 - 短视频赚钱实操 - 付费音频 - 付费文章 - 付费技术课程
陆通陆通 · 技术主管
84 订阅

ClickHouse 系列之入门及数据准备

ClickHouse是什么?为何说其是 OLAP 最好的数据库?在众多大厂如今日头条,腾讯,携程,快手等都尝试使用部署 ClickHouse 到生产环境,用来支持高性能计算和数据存储处理需求的情况下,你还不想了解究竟 ClickHouse 有什么吸引人的优势吗? 本篇 Chat 是系列中的第一篇,带你了解 ClickHouse 的优势,以及真实开发中的数据准备部分,当然还有各种坑在里面。 在本场 Chat 中,会讲到如下内容: 1. 什么是 ClickHouse 2. 为什么要用 ClickHouse 3. ClickHouse 的核心特性(向量化引擎、关系模型、本地表和分布式表等) 4. 数据导入(CH 命令和 Waterdrop) 5. 数据定义 适合人群: 对高效构建 ClickHouse 有兴趣的技术人员
KaneKane · 高级大数据工程师
18 订阅

Redisson 分布式锁详解与可视化监控方案

在分布式系统中为了保证共享资源的线程安全,就需要使用分布式锁来保证原子性;Redisson 是目前基于 Redis 实现的分布式锁中最完美的一个开源框架,里面提供了非常完善的锁功能实现。 Redis 分布式锁通常都需要设置 **waitTime** 最大等待锁时间来防止线程一直等待,与 **leaseTime** 最大持锁时间来防止死锁,不同的业务逻辑这两个参数都不一样但是实际上开发都是自己根据个人经验设置的并不一定正确;所以在线上环境中使用分布式锁就需要有 **可视化监控** 来协助我们分析。 在本场 Chat 中,会包含以下内容: * Redisson 基本用法与各种加锁方式 * Redisson 锁的续期原理 * Redisson **所有类型的锁**详解 * 如何使用 * 原理解析 * 使用场景 * 分布式锁的可视化监控方案 * 每天分布式锁的请求量是多少? * 某资源锁的取锁等待平均时间与最大时间是多少? * 某资源锁的持锁平均时间与最大时间是多少? * ...... **适合人群**: Java开发者,对分布式相关技术、Redis相关技术有兴趣的技术人员
陶陶陶陶 · 软件架构师
44 订阅

Spring Boot 2.x: 定时给对象发送天气

不知不觉,又到了雨季,你对象是不是经常忘记带伞呢,这个时候写一个自动定时发送邮件的程序,提醒她带伞,会不会对你崇拜有加呢,当然,如果你对象是一位攻城狮,当我没讲~
互联网盲流子互联网盲流子 · 软件安装助理
Spring Boot · 21 订阅
-- 我们是有底线的 --