01 前置声明
01 本文结构
02 本文作用
以初级工程师写代码的视角来进行写作,高效利用掘金资源。而不是配置环境,工具使用等等
02 应用
01 需求分析
写代码写到多了,都会很明确的两个东西。
分别是实践机制和知识体系化
- 实践机制是什么?
是基于自己长期写代码所形成的机制,这个机制用来规避自己以前犯过的错误,高效利用自己现有知识(不仅包括怎么用,还要结合原理底层逻辑进行高效使用),针对特定的业务场景的最佳实践。
- 知识体系化是什么?
是自己长期学习的各种知识点进行整理分类,来明确你自己现有掌握知识点,建立内在逻辑,结构清晰的知识网络。可以快速清晰了解不足或者可以优化地方
- 二者的作用是什么?
实践机制是帮助我们在面对复杂业务的场景,以一条逻辑线快速帮助我们梳理逻辑,快速知道我们要做什么,怎么宏观处理。
知识体系是知道我们有什么,毕竟人的脑容量有限,脑子也不可能全部装着编程的知识,在写代码的时候,可能会忘记某个知识点的使用,导致原本简单的事情需要复杂处理。回顾自己的知识体系,可以快速自己有什么东西可以用。
02 各方作用
那就要先将网课,书籍,AI三者的对于知识学习与实践作用先讲清楚,当然现实生活还有其他的渠道帮助我们学习与实践,不多赘述。
01 网课
- 网课大部分针对的层次和目的是什么?
是大部分针对小白,初级程序员,中级程序员。而且希望尽可能的压缩时间,简化知识的复杂度,简化复杂业务环境,尽可能让你快速上手的。
- 所以大部分网课的优点是什么?
可以快速帮你构建一个简单的知识体系,也可以快速知道程序运行的预期的作用与效果。
- 所以大部分网课的缺点是什么?
知识体系太过于简单,实际上有很多高阶知识没讲的,或者针对一个知识点纯粹的是投入时间不够多,有些知识的确需要很多时间来进行学习。说白了,知识体系还相对比较简单,也不够全面。
02 书籍
- 从初级知识输入方面来看,相对于网课或者课堂来讲,的确效率很低。更适合看完网课在巩固学习。
- 从知识输出方面来看,好的书籍会给你一个好的结构梳理方向(通过目录进行总结梳理)
- 高质量书籍,计算机底层原理全而详细,枯燥无味,但质量佳
03 Ai
- 名词解释角度 -- 能够快速了解相关概念
- 逻辑分析角度 -- 快速获取一些宏观方向或者简单流程方案
- 工具角度 -- 快速获取一些忘记的工具指令
- 代码分析角度 -- 可以快速分析代码的作用(当然在命名比较规范的时候)
- 编程角度 -- 快速获取一个demo,构建一个基本的框架,梳理一些基本的方向
04 所以博客作用
- 博客非常适合分享具体案例与实践经验,可谓是直面大家真实之痛,例如某项技术的实际应用、某个项目的开发过程等。
- 博客相对书籍和网课更加便捷观看与使用,但存在的问题在于零散化
- 博客基本上是起码基础知识有一定要求,不是真正完整面对小白的
03 掘金有什么
非技术类的宝贵经验:
- 有大家的生存经验和生活经验,人生感悟,年终总结
完善自己的知识体系的
- 有大量关于面试的
新工具
- 有大量新工具的介绍与使用
进阶知识与具体业务
- 有具体知识点的进阶使用
- 有针对具体场景的技术讨论与技术选型与具体解决
- 有针对具体场景的犯过错误与优化
原理底层
- 有工具或框架的底层原理讨论
04 具体怎么做
01 别只收藏,要看要吸收
这个很重要的,不能只是看一眼,觉得好,然后收藏之后,长时间不看了
这是不行的,要看要吸收,虽然我也没做到
02 两个宏观方向来吸收
看一个博客的时候,想好两个问题
它是否有助于自己的知识体系的搭建
他是否有助于将自己的写代码的实践机制形成好
03 扩展怎么做
本质上给自己提问题,不断为难自己
如果是知识应用类(把运用到具体场景的时候)
-
熟练度低的时候
- 抄,无脑的抄,本来自己能力有限。别人能搬出的解决方案一般都是作者要么深思熟虑的,要么就是在实践中使用的。
- 当然,你可以用薄弱的知识体系,想想作者用的一些知识原理是什么?他的写法规避那些问题?抄别人现成的解决方案,融入自己的知识体系和实践机制.
-
熟练度高的时候
- 那么作者为什么要选用这个技术栈?这个业务场景的要求是什么?是稳定性?还是一致性?。。。等等要思考的问题
- 你认为的优缺点是什么?使用这个技术栈可能会出现什么样的问题?可不可以用其他的技术栈进行代替?别的技术栈可能出现的问题是什么?
如果是知识原理类的
- 那你了解这个原理,违反这个原理常见的做法是什么?
- 你写代码的时候要怎么规避违反这个原理的做法呢?
- 写代码的时候怎么利用这个原理底层来提高自己代码的质量呢?
- 怎么融入自己个人的知识体系和实践机制?
犯错与注意事项类(别人犯错的经验教训)
- 如果是运用知识发生错误的经验分享,那作者的排除逻辑机制大概是什么?
- 怎么进行改错的?错误的原因又是什么?你自己留下具体的经验是什么?
- 怎么融入自己个人的知识体系和实践机制?
05 具体例子
01 具体文章
这是掘金作者志字辈小蚂蚁的一篇文章
这是掘金Ai的总结文章文字稿
文章围绕SpringBoot启动慢的原因展开。先从宏观路线指出prepareEnvironment和refreshContext耗时最多。细节上,前者主要是内存处理,后者是Bean加载核心流程。生产级项目因多容器环境、配置监听、大量Bean加载等更慢。还给出统计源码。总结表明,外部资源加载如Client连接和配置读取最耗时,后续将关注新版本及其他组件的解决办法。
02 思考逻辑
Q:这是什么类型的知识文章?
A:这是知识原理的类型
Q:违反这个原理常见的做法是什么?
A:导入无意义的依赖包,包里有无意义的装配类或者自己写一个无意义的装配类,更或者有没有使用资源链接
Q:你写代码的时候要怎么规避违反这个原理的做法呢?
A:
- 尽可能多了解使用依赖包,尽可能排除无意义的依赖包。
- 如果是包封装的装配类没有使用或者自己写的,启动类里面 Exclude 掉,限制扫描的范围
- 自己不太熟练处理是否会资源资源连接,只能无脑懒加载
Q:怎么融入自己个人的知识体系和实践机制?
A: 融入自己的实践机制。当正式运行自己的项目的时候,对自己以下反问?
- 进行包查询,反问自己每一个依赖包是否都使用?
- 包里的装配类是否都使用了?能不能排除无必要的?
- 资源链接方面,
App.java是否使用懒加载注解?
03 迭代优化
01 能优化的
html 格式优化
02 具体的迭代
第01版于2025年4月23日,基本搭建初步的框架