zengyufei 最近的时间轴更新
zengyufei

zengyufei

V2EX 第 459965 号会员,加入于 2019-12-18 14:26:35 +08:00
zengyufei 最近回复了
9 天前
回复了 Need4more 创建的主题 程序员 轻量级 k8s: uncloud
两台我都直接上 k3s ,都是 txt 文件整理好 shell 命令脚本直接粘贴执行,生成执行脚本&&运行。

再整个可视化界面,去上面调整。

放着 k8s k3s 不用,我整它干嘛,又不是超越了,拍在沙滩上了。

再说无论是运维还是开发,学习运维本来就慢和苦,掌握 k3s 和 k8s 就足够了,一个 512Mb 就能部署 k3s ,一个大规模集群 k8 。
最简单入门书籍推荐《第一行代码 Android 第 3 版》郭霖-人邮-2020
11 天前
回复了 livc 创建的主题 Android 电脑如何远程控制华为手机
不对吧,我记得华为鸿蒙是能装 rustdesk 的,把纯净模式关闭掉,忽略警告就可以的
11 天前
回复了 livc 创建的主题 Android 电脑如何远程控制华为手机
rustdesk 报毒装不上的问题,可以通过安装 Shizuku + 电脑 USB 线激活 + InstallerX 解决,长按安装包,其他方式打开,找到 InstallerX ,进行安装。

原理:使用第三方安装器代替自带 APK 安装器。

路绕了一点,但是是可行的方案。
我们来溯源一下源码的设计是如何来的。

源码有啥,有算法、有设计模式、有封装、抽象、继承、多态,大概组成结构是这样子的。

一开始你只会 java 代码。
假设你是一个 java 基础通关的初学者,让你看源码,能得到什么结果?天书吧,我就是这样过来的。

那我是否该深耕源码获得下探深度的进步呢?答案是肯定的,但是我无法主动去做。
从他人分析源码那博文才知道,原来源码有那么多算法和设计模式,这些都属于抽象范畴,怪不得一开始我看不懂。

如果把算法和设计模式单独拎出来,其实可以跟 java 无关,可以中立的通用的东西,能应用到其他编程语言去,这是否意味着需要投入大量时间进行专项学习和实践,如同‘三年练习生’般持续磨砺?。

非系统性的长时间积累了不少知识点,我变得也能看得懂源码了,但是细节记不住,哪有那么多记性,天天忙着生活和 CURD 。

回过头来看,发现 java 就是一门编程语言,各种好用的库用了不同的算法和结构,封装成了不同的生态,兜兜转转,我似乎也只停留在应用层面。。

但是我知道我大概了解源码里部分做法,就跟做一道菜,需要备什么原料,用什么火力,用什么锅,如何炒制;我吃的好好的,让我去复现做出来,也可以,但没法完全复制,细节太多忽略的。只是了解知识点的我能干嘛,可以在工作中探索应用边界,可以用去面试,用去吹牛逼。

java 是我花了时间和代价学习的主力编程语言,我也想下探技术的深度,但是 java 在应用层面太多花活了,什么奇淫技巧,什么 lambda 新写法,什么新流行技术栈脚手架比较吸引我,我便去研究它们去了,研究它们得到的成就感比看源码多得多,也爽得多。

回头看,我已经掌握了不少抽象概念知识,发现源码并不神秘,但是也不好阅读,如果你把算法和设计模式了解了,源码大概就是套“公式”那么简单,但是你需要的是从源码分离出抽象的“公式”,那就需要学习一下应用于 java 但不是 java 独有的东西了。

脚手架也是,如果你研究众多脚手架,你会发现,大家其实也就是套“公式”,简单说就是 ctrl+c/v ,复制粘贴改改就能用,需要的是花时间而已。

AI 打破了固有的局面,以前我们追求的设计模式、封装抽象、代码整洁、注释完善,在现在这个时代好像都不值一提,现在写代码,看着 AI 一行行给你生成好,比你写得都好,默默纪念逝去的头发吧。

AI 的出现给我们带来更多可能性,终身学习的对象和终身的劳工,问必答,叫必做,我们要做的是,问它,学习它(成为它?)、纠正它。

最后寄言:

无论什么年限,记事、记错以及不间断写 demo ,量变积累质变。
利用技术提升生活宽度或深度:

1 、如果喜欢娱乐类,小说/音乐/电视剧/电影/动画/片,可扩展一下自己的爬虫能力。

2 、如果喜欢生活自动化多一些,爬虫/HOOK/外挂/AutoJS 之类学习一下。

3 、如果想助力自己或他人学习,做一些知识收集系统、知识整理系统、知识输出系统,如 JAVA 面试专题、Anki 卡片生成等。

如前面 @dfkjgklfdjg 老哥说的,自驱动+小需求+小玩具+直接开撸=满足感和快乐。

学习与 Java 不相关的东西或使 Java 技术落后于人?不存在的。

一理通百理,
只会 Java ,不懂的 kotlin 的先进,回过头来看 Java ,发现 Java 真落后,但写 Java 变更简洁明了了。
只会 Java ,不懂 C++的指针,回过头来看 Java ,发现 Java 真简单,但更懂 Java 堆栈的用法了。
只会 Java ,不懂 Python 的方便,回过头来看 Java ,发现 Java 真笨重,但更懂 Java 封装的重要性了。

借助中医方面的一些概念,头痛医头,脚痛医脚是指只医治疼痛的部位,不追究病根。比喻处理问题不从全局考其根本,什么地方有问题就在什么地方解决,临时应付。

这些看似提升不了什么 Java 技术,但你会发现,从前看不下去的技术书籍,不过原来如此。

当你发现瓶颈期,可能不是当前技术知识储备不够,可能是其他技术知识储备不够。
网易 uu 远程,带宽肯定大于 3M ,感官有 5M 以上,还免费,还能局域网。
72 天前
回复了 iv8d 创建的主题 Java 如何 mybatisplus 项目中覆盖 jar 中的 mapper.xml 文件
1. classpath: 与 classpath*: 的区别

classpath: 只会加载 第一个 匹配到的资源,按类加载器顺序查找,一旦找到就停止搜索。

classpath*: 会加载所有匹配到的资源,包括 JAR 包内和工程内的,可能导致重复加载导致冲突。

2. 配置 mybatis.mapper-locations
在 Spring Boot 项目中,你可以通过 application.properties (或 application.yml )显式设置:

# application.yml
mybatis:
mapper-locations:
- classpath:mapper/local/**/*.xml # 本地优先
- classpath*:mapper/**/*.xml # 备选加载所有(含 JAR )
93 天前
回复了 Limexb 创建的主题 分享创造 [独立开发] 为了看漫画,我做了个软件!
为啥不考虑部署一个 Komga ?
182 天前
回复了 Hatter 创建的主题 Java 请教下 Java 的 volatile 以及一点多线程的疑问
针对 Thread.sleep 有无导致结果不同,我也从 GPT 那里得到了答案。

忙循环导致子线程 a 无暇从主线程 a 那里得到更新。

大白话就是:我一直在忙,没有空去新的东西。

给你对比实验感知一下这个事情:

1 、不加 volatile
2 、Thread.sleep(100); 这句留着
即与你图片的代码完全一致即可。

运行只能 thread1 打印了一下。

对比实验动作 1:thread2 的 while 循环代码块加入 Thread.sleep(1);
为什么先从 thread2 开始加,因为你 thread1 执行完毕 a+1 了,下一个肯定是 thread2 先执行。
你可以先加 thread3 ,运行结果肯定没变化。
先从 thread2 开始加,会得到结果 thread2 也打印了语句。

对比实验动作 2:thread3 的 while 循环代码块加入 Thread.sleep(1);
运行结果大概打印 3-20 条,具体看概率。
因为 System.out.println 会模仿 volatile 功能,导致 thread1 偶尔会更新 a ,最后 thread1 会陷入忙循环。

对比实验动作 3:最后 thread1 的 while 循环代码块加入 Thread.sleep(1);
运行,你会正确打印 1-100 ,这是程序最初的目的。

最后,你自己总结一下。
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2536 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 10ms · UTC 13:02 · PVG 21:02 · LAX 06:02 · JFK 09:02
Developed with CodeLauncher
♥ Do have faith in what you're doing.