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

HarmonyOS应用开发入门到实战

鸿蒙系统是一款「面向未来」、面向全场景的分布式操作系统,是一个国产的系统,作为开发者或者计算机专业的人建议了解并且学习一下。 采用了多种分布式技术,使得应用程序的开发实现与不同终端设备的形态差异无关。这能够让开发者聚焦上层业务逻辑,更加便捷地开发应用。 如果你想入门鸿蒙开发,并且通过鸿蒙开发找到一个工作,那就快来一起学习吧,入门级别教程绝对实用。 在本场 Chat 中,会讲到如下内容: 1,鸿蒙概念和应用架构解析 2,开发环境搭建 3,开发工具的预览功能实用和模拟器/在线真机的实用(超实用) 4,开发组件的介绍(基础,容器,高级,网络,数据库等)-核心技能 5,实现一个天气查询的实战应用(JS篇) 适合人群: 初入开发行列的应届生和开发小白,对鸿蒙感兴趣的开发者,想入门鸿蒙开发的人员,。
程序视界程序视界 · /职场规划/产品经理/副业赚钱
预订中 · 23 订阅

HarmonyOS应用开发入门到实战

鸿蒙系统是一款「面向未来」、面向全场景的分布式操作系统,是一个国产的系统,作为开发者或者计算机专业的人建议了解并且学习一下。 采用了多种分布式技术,使得应用程序的开发实现与不同终端设备的形态差异无关。这能够让开发者聚焦上层业务逻辑,更加便捷地开发应用。 如果你想入门鸿蒙开发,并且通过鸿蒙开发找到一个工作,那就快来一起学习吧,入门级别教程绝对实用。 在本场 Chat 中,会讲到如下内容: 1,鸿蒙概念和应用架构解析 2,开发环境搭建 3,开发工具的预览功能实用和模拟器/在线真机的实用(超实用) 4,开发组件的介绍(基础,容器,高级,网络,数据库等)-核心技能 5,实现一个天气查询的实战应用(JS篇) 适合人群: 初入开发行列的应届生和开发小白,对鸿蒙感兴趣的开发者,想入门鸿蒙开发的人员,。
程序视界程序视界 · /职场规划/产品经理/副业赚钱
预订中 · 5 订阅

如何做到管理好碎片化时间,提高时间效率

经常听到这样的话,时间太少了,要是能有更多的时间多好啊?如果再给我些时间我就能完成一件事等等。 你真的没有更多时间吗?你的时间真的合理利用了吗?还是你浪费了呢? 宝贵的东西往往是一些容易被我们忽视的东西。 做一个会管理时间,合理利用时间的人,提高自己的工作效率和强度,让自己做更多喜爱和感兴趣的事情。 作为上班族,管理好时间可以让你的工作事半功倍,更高效。 如果你想在不影响主业情况下发展副业,管理好碎片化时间,可以让你在业余时间经营好你的副业,让我们的选择更多一些,让我们距离成功更近一步。 在本场 Chat 中,会讲到如下内容: 1,我们需要碎片化时间吗? 1, 有哪些碎片化时间可以利用 2, 如何做合理的计划管理时间 3, 如何养成合理利用碎片化时间的习惯 适合人群: 对时间没有概念,容易忽视时间重要性的人,想通过业余时间发展副业,总感觉自己缺乏时间的人群,对管理碎片化时间感兴趣的人。
程序视界程序视界 · /职场规划/产品经理/副业赚钱
预订中 · 10 订阅

简单聊聊数据分析在业务链路中的价值体现

在大数据的烘托下,数据分析成为了众人耳熟能详的“名词”。然而,大多数同学对数据分析也只是停留在字面意思的理解上——对数据进行分析。那么,数据分析都是在分析些什么呢?它是怎样在业务链路中运作的呢?又是如何产生价值的呢? 本文会逐步引导,让你对数据分析怎么玩的,有一个体感。从而帮助想要学习数据分析、或者转岗数据分析的同学构建初步思路。 在本场 Chat 中,会通过不同的案例来讲解数据分析在业务上的作用和价值,主要涉及: - 什么是数据分析? - 数据分析在CDN场景下的应用 - 数据分析在OLAP任务性能优化场景下的应用 - 一些关于数据分析工作的心里话 适宜人群:想要学习数据分析、或者转岗数据分析的同学。
北北也是程序员北北也是程序员 · 数据:抽丝剥茧,探索解释。
预订中 · 12 订阅

数据治理是如何贯穿数仓建设来体现价值的?

数据仓库建设,都有一个通识的规则,分层、分域(主题)进行建模。但是,随着业务不断迭代发展,数据资产越来越多,存储、成本、质量如何来进行保障呢?通过本文,你可以了解到数据治理的手段有哪些?又是如何贯穿数仓建设过程中,进行有效监管治理的。
北北也是程序员北北也是程序员 · 数据:抽丝剥茧,探索解释。
预订中 · 12 订阅

XtraBackup介绍与使用教程

Percona XtraBackup是一款基于MySQL的服务器的开源热备份实用程序,在备份过程中不会锁定数据库。它可以备份来自MySQL5.1,5.5,5.6和5.7服务器上的InnoDB,XtraDB和MyISAM表的数据,以及带有XtraDB的Percona服务器。 Percona XtraBackup为所有版本的Percona Server,MySQL和MariaDB进行MySQL热备份。它执行流,压缩和增量MySQL备份。 功能: 在不暂停数据库的情况下创建热的InnoDB备份 进行MySQL的增量备份 将压缩的MySQL备份传输到另一台服务器 在MySQL服务器之间移动表格 轻松创建新的MySQL复制从站 在不增加服务器负载的情况下备份MySQL Xtrabackup特点: (1)备份过程快速、可靠 (2)备份过程不会打断正在执行的事务 (3)能够基于压缩等功能节约磁盘空间和流量 (4)自动实现备份检验 (5)还原速度快
*简简单单的小生活*简简单单的小生活 · 数据库架构师
预订中 · 11 订阅

从底层重学 Java 之 String 字符串

从底层,从原理,我们来重学一次 Java。String 是字符串类,包含比特流与字符串的互转,字符串的常用切割、定位、相等判断,他的源码及实现是怎样的呢? 本系列秉承所有结论尽量从源码中来,没有源码的尽量标明出处。相关源码会附着在文章中,读本文即可,不用再自行查找源码及资料学习,方便大家充分利用路上的碎片时间。 本篇 Chat 对 String 的属性、构造函数、常用字符串处理进行逐一源码分析,帮助大家深入理解和学习 JDK 源码的牛掰优化。 本文包含以下内容: - 类信息 - 类的定义 - 类的继承结构 - 局部变量 - value - hash - 构造函数 - String() - String(String original) - String(StringBuffer buffer) - String(StringBuilder builder) - String(char value[]) - String(char[] value, boolean share) - String(char value[], int offset, int count) - String(int[] codePoints, int offset, int count) - Character.isBmpCodePoint(int codePoint) - Character.isValidCodePoint(int codePoint) - Character.toSurrogates(int codePoint, char[] dst, int index) - Character.highSurrogate(int codePoint) - Character.lowSurrogate(int codePoint) - String(byte bytes[], int offset, int length, String charsetName) - checkBounds(byte[] bytes, int offset, int length) - StringCoding.decode(String charsetName, byte[] ba, int off, int len) - StringCoding.deref(ThreadLocal<SoftReference<T>> tl) - StringCoding.lookupCharset(String csn) - StringCoding.StringDecoder - StringCoding.set(ThreadLocal<SoftReference<T>> tl, T ob) - CharSequence - 接口定义 - length() - charAt(int index) - subSequence(int start, int end) - toString() - chars() - codePoints() - length() - isEmpty() - charAt(int index) - getBytes(String charsetName) - getBytes(Charset charset) - getBytes() - StringCoding.encode(char[] ca, int off, int len) - System.exit(int status) - StringCoding.encode(String charsetName, char[] ca, int off, int len) - StringCoding.deref - StringCoding.set - StringCoding.lookupCharset(String csn) - StringCoding.set(ThreadLocal tl, T ob) - StringCoding.StringEncoder - StringCoding.safeTrim(byte[] ba, int len, Charset cs, boolean isTrusted) - Arrays.copyOf(byte[] original, int newLength) - CharsetEncoder.encode(CharBuffer in, ByteBuffer out, boolean endOfInput) - CharsetEncoder.flush(ByteBuffer out) - equals(Object anObject) - 为什么“==”不行呢? - contentEquals(StringBuffer sb) - contentEquals(CharSequence cs) - equalsIgnoreCase(String anotherString) - regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) - regionMatches(int toffset, String other, int ooffset, int len) - compareTo(String anotherString) - CASE_INSENSITIVE_ORDER - compareToIgnoreCase(String str) - startsWith(String prefix, int toffset) - startsWith(String prefix) - endsWith(String suffix) - hashCode() - indexOf(int ch) - indexOf(int ch, int fromIndex) - lastIndexOf(int ch) - lastIndexOf(int ch, int fromIndex) - indexOf(String str) - indexOf(String str, int fromIndex) - indexOf(char[] source, int sourceOffset, int sourceCount, String target, int fromIndex) - indexOf(char[] source, int sourceOffset, int sourceCount, char[] target, int targetOffset, int targetCount, int fromIndex) - lastIndexOf(String str) - lastIndexOf(String str, int fromIndex) - lastIndexOf(char[] source, int sourceOffset, int sourceCount, String target, int fromIndex) - lastIndexOf(char[] source, int sourceOffset, int sourceCount, char[] target, int targetOffset, int targetCount, int fromIndex) - substring(int beginIndex) - substring(int beginIndex, int endIndex) - subSequence(int beginIndex, int endIndex) - concat(String str) - getChars(char dst[], int dstBegin) - replace(char oldChar, char newChar) - matches(String regex) - contains(CharSequence s) - replaceFirst(String regex, String replacement) - replaceAll(String regex, String replacement) - replace(CharSequence target, CharSequence replacement) - split(String regex, int limit) - split(String regex) - join(CharSequence delimiter, CharSequence... elements) - join(CharSequence delimiter, Iterable<? extends CharSequence> elements) - StringJoiner - StringJoiner(CharSequence delimiter) - StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix) - setEmptyValue(CharSequence emptyValue) - toString() - add(CharSequence newElement) - merge(StringJoiner other) - prepareBuilder() - length() - toLowerCase(Locale locale) - toLowerCase() - ConditionalSpecialCasing - toLowerCaseEx(String src, int index, Locale locale) - toUpperCaseEx(String src, int index, Locale locale) - toLowerCaseCharArray(String src, int index, Locale locale) - toUpperCaseCharArray(String src, int index, Locale locale) - lookUpTable(String src, int index, Locale locale, boolean bLowerCasing) - Entry - entry - entryTable - toUpperCase(Locale locale) - toUpperCase() - trim() - toString() - toCharArray() - format(String format, Object... args) - format(Locale l, String format, Object... args) - valueOf - valueOf(char data[]) - valueOf(char data[], int offset, int count) - copyValueOf(char data[], int offset, int count) - copyValueOf(char data[]) - valueOf(boolean b) - valueOf(char c) - valueOf(int i) - valueOf(long l) - valueOf(float f) - valueOf(double d) - intern() **适用人群**:有一些 Java 基础的人群。
草宝虫草宝虫 · 架构师
预订中 · 13 订阅

Hyperledger indy 的使用

Hyperledger Indy是一个专门用于去中心化身份管理的分布式账本技术平台。它提供基于区块链或其他分布式账本技术的工具、代码库和模块化组件用于独立的数字主权身份,真正实现跨账本、跨区块链应用的不同身份之间的互操作。 在本场 Chat 中,会讲到如下内容: 1.去中心化的概念。 2.共识机制。 3.ubuntu部署indy。 4.DID,schema,credential等概念。 5.indy身份管理流程。 5.indy使用案例(java)。 适合人群: 对indy 技术有兴趣的技术人员
兴趣互联兴趣互联 · 工程师
预订中 · 6 订阅

Spring boot 集成dwr

本char会讲到如下内容: 1:dwr是什么,会应用到那种场景 2:dwr工作原理 3:dwr配置 4:springboot集成dwr 5:实现dwr推送服务 适用人群:需要实现服务端往客户端推送信息。在线聊天。等。
LiuzhiBoyLiuzhiBoy · 工程师
预订中 · 9 订阅

Linux系统下安装文件存储服务器

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。 FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。 在本chat中会讲到如下内容: 1. Linux 下安装部署 FastDFS、Nginx-FastDFS-Module 2. 安装 FastDFS 中 Storage、Tracker 3. Nginx 创建软连接以及实现负载均衡 4. 设置防火墙策略以及开机自启动
LiuzhiBoyLiuzhiBoy · 工程师
预订中 · 5 订阅

逐行解读Hikari连接池原理

几年前,我最开始接触的数据库连接池是 C3P0,后来工作后用的是阿里的 Druid,但随着 Springboot 2.0 选择 HikariCP 作为默认数据库连接池之后,HikariCP 作为一个后起之秀出现在大众的视野中,以其速度快,性能高等特点受到越来越多人青睐。 在实际开发工作中,数据库一直是引发报警的重灾区,而与数据库打交道的就是 Hikari 连接池,分析 Hikari 报警日志并定位异常原因,是日常工作中必不可少的技能! 本文以 Hikari 2.7.9 版本源码进行分析,带大家理解 Hikari 原理,学会处理线上问题! 在本场 Chat 中,会讲到如下内容: - Hikari 配置校验与矫正 - Hikari 连接池初始化 - Hikari 连接获取流程 - Hikari 空闲线程原理 - Hikair 存活时间原理 - Hikari 连接泄露原理 - Hikari 连接池核心原理 - 线上报警实战分析两例 适合人群:使用或对 Hikari 连接池有兴趣的技术同学
薛师兄薛师兄 · 高级研发工程师
预订中 · 30 订阅

不知道如何分库分表,看完这篇文章,轻松应对工作面试

在互联网公司中,随着业务量逐渐增大,数据量随之剧增。当单表数据量超过5千万条,任何SQL优化技巧都无法起作用,这时候需要进行分库分表。 所以无论是面试或者工作中,都需要学习如何分库分表。大家在平时或多或少了解一些分库分表相关的知识,不过都是零散不成体系的。导致工作中遇到分库分表的问题不知道如何下手,面试中回答分库分表相关问题,又是逻辑不清、回答不全。 本Chat通俗易懂,图文并茂,精心总结分库分表遇到的所有问题。 作者精心制作了大量插图,不枯燥,生动有趣,而且全是干货,细节满满。 本Chat你将会学到以下知识: - 为什么需要分库分表? - 什么情况下需要分库?什么情况下需要分表? - 分库分表有哪些拆分方式? - 如何进行分库?如何进行分表? - 垂直分库引入的问题如何解决? - 如何进行跨库join关联查询? - 同时操作多个库,如何实现事务? - 垂直分表引入的问题如何解决? - 如何一次查询出多张表的数据? - 水平分表引入的问题如何解决? - 当where中没有分片键的时候,如何实现分页、排序的功能? - 出现数据倾斜如何解决? - 分库分表,具体如何编码实现?每种框架有何优缺点? - 例如:Mybatis、TDDL、ShardingJDBC、MySQL Router、MyCat等。
一灯架构一灯架构 · 开发专家
预订达标 · 51 订阅

Go语言从入门到熟练使用

Go语言作为一门年轻的语言目前在大型互联网公司逐渐在核心业务实践方面占有一席之地,相对于Java被SpringBoot一统天下、Python执行效率优化空间着实有限、PHP的江河日下,Go语言作为一门年轻的语言最大的优点就是没有明显的缺点。另一方面,Go语言是一个入门简单、代码简洁、原生支持语言级并发和性能分析、拥抱云原生方面具有不可比拟的优势。 Go语言在各个生态方面目前处于百家争鸣的局面,如果之前没有了解过Go语言,可以先初步学习感受下Go语言带来的魅力。学习Go语言可以在工作中业务需求在技术选型方面多一个选择;另一方面互联网达大厂求职岗位多为Go语言,也为职业生涯多一份选择的可能。 ## 通过本次课程你将学习到 ### GO语言从HelloWorld到熟练掌握语法层面的基础操作 1、变量和常量 2、循环与条件分支 3、数组与Slice 4、Map使用 5、遍历数组和Map 6、函数与方法 7、指针和结构体 8、接口 9、错误处理 10、协程的使用 11、通道 12、通道缓冲和同步 13、通道方向和选择器 14、超时处理 15、非阻塞通道操作 16、通道的关闭 17、通道遍历 18、定时器和打点器 19、Panic和Defer 20、组合函数 ### GO语言常见的场景及最佳实践 1、并发相关 2、性能优化相关
SQL拼接工程师SQL拼接工程师 · 字节跳动后端开发工程师兼任日常SQL拼接工程师
预订中 · 23 订阅

接口调用之质量保障指标评估体系

该文章提供全面的接口调用的质量保障,掌握该评估体系在工作上能避免很多问题的发生,同时也能提高工作效率。 1、明确接口含义 2、安全性 3、性能 4、容量 5、可靠性 5、数据时效性
小码小码 · 资深工程师
预订中 · 28 订阅

如何快速排查处理Java线上故障?我总结了全套的方案流程

一个合格的程序员,不但写得一手好代码,更重要的是能快速定位处理线上问题,充当救火队长角色。 团队出了线上问题,JVM频繁Full GC报警,用户无法下单了,不解决的话,马上就会上升故障等级,年终奖岌岌可危。 领导急的抓耳挠腮,同事也都大眼瞪小眼。 这时候如果你跳出来,快速定位,并顺利解决了线上问题,升职加薪不给你给谁? 现实情况最好不要是: - 我先百度一下“Full GC是什么意思?” - “什么情况会触发Full GC?” - “Full GC该怎么解决?” 等到你百度出来解决方案,黄花菜都凉了,毕业证都给你发下来了。 所以赶紧未雨绸缪,学一下这篇精心制作的Java线上故障解决方案全教程,保证在工作中遇到任何线上问题,都能轻松化解。 别问我为什么总结的这么全,比一篇专栏还全,定价还这么低? 问就是“雷锋精神”。 本Chat你将会学到以下知识: JVM内存知识介绍: 1. JVM内存结构是什么样的? 2. 对象有什么构成? 3. Java8为什么用元空间替换永久代? 4. 创建对象的流程是什么样的? 5. 对象什么时候进入老年代 6. 什么情况会触发Young GC 7. 什么情况会触发Full GC 8. 怎样判断一个对象是否可回收? 9. 常见的垃圾收集算法 10. 不同垃圾收集器的优缺点和应用场景 线上故障处理流程: 1. 保留现场 - 摘除问题机器 - 保存堆栈信息 - 保存GC日志 - 保留业务日志 - 查看JVM运行状况 2. 重启或者回滚服务 线上常见问题及处理方案: 1. 频繁Full GC 2. 抛出OOM异常(java.lang.OutOfMemoryError) 2. 线程数过多报警 2. 堆内存溢出报警 2. 元空间不足报警 3. CPU利用率过高 4. 内存利用率过高 4. 磁盘利用率过高 排查问题工具介绍: 1. JVM自带工具介绍 - jps - jinfo - jstat - jstack - jmap 2. 日志查询工具介绍 - grep - find - awk 3. 性能分析工具介绍 - top - btrace - JProfiler - MAT
一灯架构一灯架构 · 开发专家
预订达标 · 51 订阅

Intellij IDEA 十倍提升开发效率教程

Intellij IDEA是当今最流行的编辑器,能否高效使用,对日常开发效率有着举足轻重的作用。 熟练使用Intellij IDEA不但可以提升开发效率,还有助于养成良好的编码习惯。让研发同学更专注于业务逻辑开发,减少bug,减轻开发工作量。 我结合自己多年的工作实战经验,全面系统的整理了这篇Intellij IDEA高效使用教程,全方位无死角介绍Intellij IDEA,保证学完之后开发效率提升十倍,一天的开发量2小时做完。 每个功能都有详细讲解和配图,对于复杂使用更有精美GIF动图,教程生动有趣、不枯燥。 对于常用快捷键,Windows和Mac系统都有介绍,满足不同平台用户。 本Chat你将会学到以下知识: 1. Intellij IDEA的高效配置 - 优化自动导包,自动删除无用的包,多个相同层级包用星号替换 - Tab页多行展示 - 让双斜杠注释紧跟代码头 - 无需全部选中,即可复制多行内容 - 代码联想,取消匹配大小写 - 优化版本控制的目录颜色 - 自定义文件头部信息 - 显示行号和方法分割线 2. Intellij IDEA高效使用 - 无需选中即可复制整行 - 水平/垂直打开多个tab页 - 妙用收藏夹,收藏常用文件方法 - 快速查看代码变更历史 - 自带模拟请求工具使用教程 - 自定义TODO 3. Intellij IDEA高效快捷键 - 选中多列 - 快速复制当前行 - 快速移动当前行 - 快速向上/向下跳转 - 跳转到指定行 - 查看最近浏览的文件 - 万能快捷键 Alt+Enter详细介绍 - 搜索文件/类/方法/变量 - 批量重命名变量名 - 提取变量/方法 - 快速复制/移动文件 - 查看类结构/类关系图 - 找出历史复制记录 4. Intellij IDEA高效插件 - 自动格式化代码插件 - 代码规范检查插件 - 代码潜在bug检查插件 - 快捷键提示插件 - 热部署插件 - JSON转成实体类插件 - Maven 辅助插件 - Mybatis 辅助插件 - Git 辅助插件 - 打印SQL日志插件 - 中英文翻译插件 - 成对儿括号用不同颜色展示插件 - 驼峰式命名和下划线命名转换插件 - 代码统计插件 - 代码缩略图插件 - 各种DTO属性快速转换插件 5. 代码智能提示插件(人工智能写代码?) - 四款总流行的代码智能提示插件介绍 - Codota - aiXcoder - Copilot - Alibaba Cloud AI Coding Assistant 6. Intellij IDEA界面美化插件 - 漂亮主题插件 - 高大上的Icon图标插件 - 全屏背景插件 - 卡哇伊加载进度条插件 - 动效带感的代码插件 6. 高效使用实时代码模板(Live Templates) - Live Templates的使用教程 - 30个常用的Live Templates介绍 - 玩转自定义Live Templates 7. 高效使用后缀完成代码模板(Postfix Completion) - Postfix Completion的使用教程 - 30个常用的Postfix Completion介绍 - 玩转自定义Postfix Completion
一灯架构一灯架构 · 开发专家
预订达标 · 43 订阅

如何成为一个好的Java程序员

笔者:王某 工作履历:8年开发经验(4年全栈 + 4年java) Java 是当今最流行和最受喜爱的开发语言之一,如果加入个人情感,可以去掉“之一”。 有人总结过许多应该学习Java的理由,包括“高薪(实在~)”,“易学”,“强大的社区”,“丰富的API”,“平台独立”,“免费”,等等。而其最诱人的地方主要在于“高薪” “易学”,就像一样商品同时满足了“物美” “价廉”一样,实属难得。 如今Java 越来越受到欢迎,尤其是在网站开发和移动端,可谓万物生长,这就需要感谢高司令(创始人),感谢Sun(创始公司),感谢Oracle(收购者),感谢安卓......对于我而言还要感谢这些年就职过的公司,感谢XX,感谢XXX,感谢XXXX(保密O(∩_∩)O),感谢Java赏饭吃,感谢这一切的一切。 回到正题,如何成为一个好的Java程序员 1. 夯实基础(合抱之树,起于毫末~) 现在有很多的入门教程,各种视频,尤其是各种公开课(慕课网,腾讯课堂,阿里云课程......)。我们当初也是看过马某某,韩某某等视频的。看视频可以更快的入门,更容易上手,有个感性的认识。但是视频毕竟是老师教的,自己也要勤加思考和动手,而看书也是不可少的。 笔者不建议那种“21天从入门到精通~”之类的,个人推荐永不落幕的《Java编程思想》。还有一些生动有趣的书,比如《Head First Java》,"Head first 系列" 活泼易懂又深入浅出。当然了, 最好是结合官网(官网链接:https://docs.oracle.com/javase/tutorial/)。官网是英文的,看起来可能有点头大,如果能坚持下去效果会很好(配合翻译词典)。 老老实实打好基础是以后成为程序员真正的的捷径,而一上来东一下西一下,堆砌各种框架,感觉很厉害而不了解其本质以后走不远。所以花时间慢慢打好基本功,一点一点来(勿欲速欲速则不达~),基础牢固后学习就会快起来了。 后续会陆陆续续总结相关知识点出来~
大地不语大地不语 · 高级程序员
预订中 · 16 订阅

作为前端开发工程师,不管是做网站还是管理系统中,都会用到javascript

,所以作为前端开发的人员,学好javascript,基本上你在以后的前端开发工作中会事半功倍,所以我在这里分享一下我的前端开发心得和开发前端工作应该作重点学习前端技术的部分。 如果你是刚入行的全前端开发者:我想对你说,你应该首先学习好前端开发中的“三剑客”,即html,css, js,其中你刚学html和css的时候你会感觉很简单,的确如此,可能你在学习js的时候你就会感觉很痛苦, 当时我初学前端的时候,在学习到javascript(即js)中的dom的时候也很痛苦,所以在学习js中的dom操作 的时候,首先应该学习dom操作的一些属性或者方法,然后在写代码之前应该想一想实现这个功能的思 路,第一步应该写什么,然后写什么,最后写什么,只有这样分步骤的实现和执行,你才可能写的出来, 这是做为刚入前端开发的时候,这样效果挺好,随着你写的越来越多的时候,这些都会很快就能写出来。 所以我在这里向刚学习前端的人员介绍一下学习前端的路线: html- css-js(重点dom)-jquery-ajax-vue/react(框架)。
lordlylordly · 前端工程师
预订中 · 3 订阅

js 拖拽实现

1. 例如: html部分: <div class="box"> </div> css部分: .box{ background-color: pink; width:200px; height:200px; border-radius: 50%; position: absolute; top:20px; left:100px; } js部分: var box = document.getElementsByClassName('box')[0]; function drag (ele){ ele.onmousedown = function(e){ var e = e || window.event; //此处是为了兼容IE,因为IE中事件对象是作为全局对象( window.event )存在的; var pageX = e.pageX || e.clientX + document.documentElement.scrollLeft; var pageY = e.pageY || e.clientY + document.documentElement.scrollTop; //获取鼠标相对盒子的位置; var boxX = pageX - box.offsetLeft; var boxY = pageY - box.offsetTop; document.onmousemove = function(e){ var e = e || window.event; var pageX = e.pageX || e.clientX + document.documentElement.scrollLeft; var pageY = e.pageY || e.clientY + document.documentElement.scrollTop; //将鼠标当前的坐标值减去鼠标相对盒子的位置,得到盒子当时的位置并将其赋值给盒子,实现移动效果 box.style.left = pageX - boxX +'px'; box.style.top = pageY - boxY + 'px'; } }; document.onmouseup = function () { //清除盒子的移动事件; document.onmousemove = null; }; } ; drag(box)
lordlylordly · 前端工程师
预订中 · 8 订阅

SpringBoot导出PDF文档的解决方案

在实际的项目开发中,经常会遇到生成pdf的功能,并且对pdf的样式有很高的要求,本文章给出了一种生成pdf的解决方案。 技术要求: 1、freemarker 2、itext7 方案思路: 1、通过freemarker定制pdf样式模板 2、模板填充数据后生成html文档 3、通过itext7把html转换为pdf文档 4、多个pdf文件压缩成zip 5、zip文件下载
星空星空 · 资深软件工程师
预订中 · 33 订阅
-- 我们是有底线的 --