Skip to content

Commit 35327d0

Browse files
committed
add 2-java-starter
1 parent 1b20363 commit 35327d0

14 files changed

Lines changed: 137 additions & 14 deletions

content/docs/1-Site/3-add_content.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,17 @@ description: >
2121
这样的话,无法在编辑器中预览md了,有两种玩法如下:
2222

2323
- 可以使用一个临时目录,把图片和md文件放到同一目录,编写完毕后,再把图片和md文件放置上述合适的目录位置上。
24-
- 日常一直启用`hugo server`编写文章,放弃编辑器中预览md后面还会有别的坑....
24+
- 日常一直启用`hugo server`编写文章,放弃编辑器中预览md后面还会有别的坑....
2525

26-
推荐后者,本人日常使用VSCode编写md,和代码开发同款,这里推荐安装`mushan.vscode-paste-image`扩展,再额外如下配置:
26+
推荐后者,额外配合扩展插件,本人日常使用VSCode编写md,和代码开发同款,这里推荐安装`mushan.vscode-paste-image`扩展,再额外如下配置:
2727
```json
2828
"pasteImage.namePrefix": "${currentFileNameWithoutExt}-",
2929
"pasteImage.path": "${projectRoot}/static/images/",
3030
"pasteImage.basePath": "${projectRoot}",
3131
"pasteImage.insertPattern": "${imageSyntaxPrefix}/images/${imageFileName}${imageSyntaxSuffix}"
3232
```
3333

34-
日常编写文章,`Alt+A`截图,`Ctrl+Alt+A`粘贴到md文件,和hugo的配合,完美...
34+
日常编写文章,`Alt+A`截图,`Ctrl+Alt+A`粘贴到md文件,和在hugo中预览,完美...
3535

3636
### SEO优化关注点
3737
日常文章编写,如下部分要精准描述,Google搜索引擎推荐使用`description`的meta标签告诉它页面内容的,Docsy主题会自动把红框部分填充到`layouts/partials/head.html`中。

content/docs/3-DevOps/Javaer/1-go-to-java.md

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
tags: ["Dev"]
3-
title: "Go转Java必看, 跨越3大思维鸿沟"
4-
linkTitle: "Go转Java起手篇, 跨越3大思维鸿沟"
3+
title: "Go转Java万字总结, 要跨越哪些思维鸿沟"
4+
linkTitle: "Go转Java万字总结, 要跨越哪些思维鸿沟"
55
weight: 31
66
description: >
77
Goper如何快速转Java进行项目开发
@@ -21,11 +21,11 @@ description: >
2121

2222
Go的心智模式是过程式 + 轻量级面向对象 + 并发,从接需求开始,要识别结构体和关键方法,先实现小而美的功能点,再通过组合演进式地实现复杂功能。
2323
Java不用说了,主要是以重量级OOP为主的玩法,要从需求中先找实体,加行为,定关系,用设计模式实现更复杂的业务。
24-
> 现代Java也在拥抱轻量级设计
24+
> 不过现代Java也在拥抱轻量级设计, 而Go里也有设计模式,不过更倾于使用函数、闭包和通道等语言特性来解决。
2525
26-
Go里也有设计模式,不过更倾于使用函数、闭包和通道等语言特性来解决。先从直观语法上,总结有以下几种差异情况(只总结差异,不做优劣评价):
26+
先从直观语法上,总结有以下几种差异情况(只总结差异,不做优劣评价):
2727

28-
> Go: 极简主义​ - 少即是多, Go中有很多隐含的写法规则,在Java里则需要编写显式的修饰符(关键字)声明,比如某结构(类)中,首字母大写,是会暴露一个字段,在java则需要显示的使用public。
28+
Go: 极简主义​ - 少即是多, Go语法中有很多隐含的写法规则,在Java里则需要编写显式的修饰符(关键字)声明,比如某结构(类)中,首字母大写,是会暴露一个字段,在java则需要显示的使用public。
2929

3030
### 隐式规则与显式声明的碰撞
3131
Go的"命名即契约"哲学:
@@ -45,8 +45,8 @@ func (u *User) setName(name string) { // 私有方法
4545
}
4646
```
4747

48-
Java的"显式声明"文化:
49-
```Java
48+
Java语法层面的"显式声明"文化:
49+
```java
5050
// 每个成员都需要明确修饰符
5151
public class User {
5252
private Long id; // 必须指定private
@@ -1083,7 +1083,7 @@ public ReturnT<String> demoJobHandler(String param) {
10831083

10841084
核心差异一句话总结的话,Go生态强调的是“你构建调度器,精确控制每个细节”,Java则更强调的是“你声明任务,框架负责调度执行”。
10851085

1086-
单元测试、API文档、可观测、异常处理等等都是常见的开发需求,Go和Java都有对应的解决方案,此处不表。
1086+
> 单元测试、API文档、可观测、异常处理等等都是常见的开发需求,Go和Java都有对应的解决方案,此处不表。
10871087
10881088
## 总结
10891089
通过对Go和Java在设计思想、工程目录结构、典型框架使用三个维度的深入对比,我们可以提炼出两种语言生态在工程化理念上的本质差异:
@@ -1124,6 +1124,4 @@ Java是"约定优于配置"的工程哲学:通过注解、AOP、自动配置
11241124
- Java生态正在轻量化:Spring Boot 3.x、Quarkus、Micronaut等框架通过GraalVM原生编译、快速启动等特性,让Java应用更轻量、更云原生,同时保留其企业级能力。
11251125
- 多语言架构成为常态:在现代云原生架构中,Go和Java往往共存于同一技术栈:Go负责基础设施、CLI工具、高性能服务;Java负责核心业务逻辑、复杂事务处理。理解两种语言的优劣势,能够在正确的场景选择正确的工具。
11261126

1127-
> 语言只是工具,工程化才是本质。无论是Go的"显式控制"还是Java的"约定优于配置",最终目标都是构建高质量、可维护、可演进的软件系统。成功的工程师不是精通某一种语言,而是理解不同语言背后的设计哲学,并能够根据项目需求、团队技能、业务场景做出明智的技术选择。
1128-
1129-
在云原生时代,工程化能力比语言语法更重要。掌握如何设计良好的API、如何管理依赖、如何组织代码结构、如何保证质量,这些能力在任何语言中都是相通的。
1127+
> 语言只是工具,工程化才是本质。无论是Go的"显式控制"还是Java的"约定优于配置",最终目标都是构建高质量、可维护、可演进的软件系统。
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
---
2+
tags: ["Dev"]
3+
title: "AI时代下,Java该如何起手项目开发"
4+
linkTitle: "AI时代下,Java该如何起手项目开发"
5+
weight: 32
6+
description: >
7+
结合人工智能在软件工程领域大行其道的当下,该如何快速开启Java项目的设计开发
8+
---
9+
10+
{{% pageinfo %}}
11+
30多年来,开发者工具层面终于出现了革命者,本文主要结合人工智能在软件工程领域大行其道的当下,针对从零开始和迭代已有项目,介绍如何快速开启Java项目的设计开发。
12+
{{% /pageinfo %}}
13+
14+
最近常听到一句话,`AI不会替代你,但熟练使用AI的人可以轻松干废你`。 初听有点儿耸人听闻,实际却在发生中.... 甚至斯坦福大学最近也开设了[CS146S课程](https://themodernsoftware.dev/), 要求必须使用AI完成开发任务,作业是提交完成开发任务的提示词prompt。专门教授如何将大模型和AI工具(如编程智能体、AI IDE)集成到软件开发流程中,从而大幅提升开发者的生产力,并探讨了现代软件工程师的角色演变。课程大纲如下:
15+
16+
![](/images/2-java-starter-2025-12-18-08-58-40.png)
17+
18+
## 工欲善其事必先利其器
19+
20+
### 传统开发,必备神器IDEA
21+
下图是2025.3版本,安装包大小1G,包括java生态的大量工具插件,还内置了教学引导,默认给30天的免费旗舰试用期。
22+
![启动界面](/images/2-java-starter-2025-12-17-15-11-08.png)
23+
![教学导引](/images/2-java-starter-2025-12-17-15-57-41.png)
24+
25+
导引学习,主要介绍一些快捷键(包括any搜索、补全建议、重构)和调试技巧等。
26+
- Ctrl+Shift+A或者两次Shift按键,触发anything search。
27+
- Alt + Enter, 万能修复/提示
28+
- Ctrl + Shift + Space​,智能代码补全
29+
- Ctrl + Alt + L​,代码格式化
30+
31+
传统IDE中,补全是当初能让其迅速普及开的功能之一,而调试也是另一个极好的功能。在现代AI IDE中,调试似乎也不需要了,直接贴错误日志,就自动开始debug纠错了。
32+
33+
### 使用AI开发的现状
34+
35+
当下主流的使用AI开发模式有3种基本形态:
36+
- 一种是传统IDE + **编程插件助手**,代表有Lingma、Continue等,是属于渐进式拥抱AI辅助开发,从而提高生产力的方式。
37+
38+
- 另一种是基于开源IDE打造的**AI原生IDE**, 提供更沉浸式的AI编程体验,由AI自主完成分析、设计、编码乃至测试的完整流程,一般需要订阅收费。
39+
- 国外:Cursor(基于VS Code)
40+
- 国内:Trae.CN(字节)、CodeBuddy(腾讯),Qoder(阿里.新加坡团队)
41+
42+
- 还有一种**终端工具**,代表是Claude Code、Codex CLI等,可以灵活集成到以上两种模式和其他第三方CI/CD协作流水线中
43+
44+
现在市场参与者,基本都在布局各形态的开发场景,本文发稿时,通义lingma也在公测IDE了,CodeBuddy已实现插件、IDE、CLI三端全形态覆盖。
45+
46+
年初我个人也结合开源vscode+roocode插件,开发过一款自己的IDE,叫`aide`,基本功能也都具备,后面有时间可以整理发出来一篇手把手打造自己的AI原生IDE。
47+
![](/images/2-java-starter-2025-12-18-18-37-35.png)
48+
![](/images/2-java-starter-2025-12-18-18-40-54.png)
49+
> 不过github Copilot在国内市场才是比较可惜的,背靠微软(VS生态),手里有github,竟然在市场上,没有国外初创企业Cursor等的声势浩大。
50+
51+
这几种形态,反映了一个演进方向: 将AI集成到开发工具 ====> 将开发工具集成到AI中。人在其中的动手参与度逐步降低,后者看上去是最理想的终极形态,合理设置后,可以让AI把整个软件交付的全流程(需求分析->设计->编码->测试->部署上线)自动完成。
52+
53+
不过这里不应该存在谁更好的说法,最终要看你的团队运作模式,是单人全栈还是严格‘瀑布模式’下的团队模式,毕竟康威定律还在生效(技术问题的背后,往往是人的问题和组织问题)。这类AI原生IDE现在也基本支持个人版和企业版了,不过从业内的实践来看,在单人全栈模式下,AI原生IDE的优势会更明显。
54+
55+
由于本人工作行业限制,接触最多的是lingma,不过为了客观对比更高阶的形态,这里以Trae.CN为例
56+
57+
安装包大小204M,内置前端工具链,如涉及其他技术栈,需要自行安装插件。 支持两种模式(IDE和solo模式),就是前面提到的IDE+插件助手模式和AI原生IDE的形态。
58+
59+
![启动界面](/images/2-java-starter-2025-12-18-18-26-52.png)
60+
![solo模式](/images/2-java-starter-2025-12-18-18-31-25.png)
61+
62+
AI原生IDE,相对传统IDE,最大的区别是在软件工程中的参与阶段左移了,从需求分析开始就可以介入了,并且以AI为主导推理,自动调度集成MCP工具来推进工作。
63+
64+
65+
## Vibe Coding 氛围/AI结对编程
66+
67+
### 零开项目(避免重复造轮子)
68+
69+
java生态已经非常丰富,几乎每个领域都有对应成熟、经过验证的开源项目,遵循专业的事情找专业的工具干的原则(寻找轮子),避免让AI从零开始重复造轮子。
70+
71+
> 鉴于LLM的工作原理,预测Token,让AI从零开始重复造轮子,这是血亏的实践结论。。。应该利用已有成熟库,喂文档,进入迭代阶段。
72+
> 当前最佳STOA实践是Claude的Skills攻略,此处不介绍,如涉及复杂项目可考虑(个人还没试过)。
73+
74+
75+
推荐先要根据项目需求场景,直接驱动builder使用成熟脚手架或者传统IDE初始化一个项目基础架构。整理提示模版如下:
76+
77+
```bash
78+
我需要实现 [集成类系统的权限管理],请帮我:
79+
1. 分析这个需求可能涉及哪些技术领域,有没有成熟的库/项目已经做过类似的事?
80+
2. 确定使用Java技术栈,并使用mvn初始化合适的脚手架
81+
```
82+
83+
![](/images/2-java-starter-2025-12-22-17-34-08.png)
84+
85+
> 需要提前安装配置好JDK和Maven环境,此处不表。
86+
87+
如果公司有对应的研发规范,推荐使用rules规则,将提示模版作为rules规则,让AI根据规则进行架构设计选型。
88+
89+
![](/images/2-java-starter-2025-12-22-18-01-16.png)
90+
91+
### 迭代存量项目
92+
93+
打开已有项目的根目录,会自动判断项目技术栈,并推荐安装相应的插件。
94+
![推荐安装插件](/images/2-java-starter-2025-12-19-08-47-06.png)
95+
96+
IDE模式下,内置了4中智能体
97+
![](/images/2-java-starter-2025-12-19-09-48-27.png)
98+
99+
大多数情况下,builder就可以完成开发任务,要熟悉存量项目架构设计的话可以使用chat模型。建议先在buidler模式下,自动生成团队规范。提示词如下
100+
101+
```bash
102+
生成该项目的一个团队规范,存放于.trae\rules\project_rules.md文件中
103+
```
104+
105+
确认自动生成规范是否有误并合理。
106+
107+
迭代项目时,让AI根据规则进行架构设计选型和代码编写。 未完...后面单独开章分享。
108+
109+
110+
## 总结
111+
112+
要想真正在AI原生IDE中上手生产级系统开发,还是要掌握一些基础的编程技能,如数据结构、算法、设计模式、软件工程等等。
113+
114+
本文开头提到的CS146S课程,也是要求学生必须具备扎实的编程经验,才能报名的。不然,一是不知道如何让AI更好的替我们工作产出(prompt该如何写),二是不知道AI的产出是否存在隐患,很快就会进入AI“屎山”代码中,是你真的会看不懂一小时前的某段代码逻辑意图... 至少当下,会因为AI的易得性反而更容易欠下技术债务。软件还是要讲究可维护性的,不过话又说回来,不需要后续维护的,讲究快速原型的场景,确实是极好的。
115+
116+
AI协同并不简单,让开发人员最讨论的文档编写,直接上升到第一公民,变成**面向文档编程**了。协同原则总结:
117+
118+
- 人来负责“规划”,AI 负责“执行”
119+
- 绝不提交自己不理解的代码
120+
- 避免重复造轮子
121+
- 小步迭代,持续清理
122+
123+
参考资料:
124+
- Vibe Coding 指南 - https://github.com/tukuaiai/vibe-coding-cn
125+
- “AI 辅助编程”第一案 - https://zhuanlan.zhihu.com/p/1984901894875935875
50.1 KB
Loading
74.2 KB
Loading
177 KB
Loading
46 KB
Loading
50.9 KB
Loading
5.68 KB
Loading
41.4 KB
Loading

0 commit comments

Comments
 (0)