我在我的日常高级软件工程师工作中如何使用Chat GPT?
如何提高编程效率的不同方式是什么?
1. POJO类自动转换为JSON模式
在实现REST API之后进行测试是很常见的做法,为了加快生成请求主体的速度,您可以使用ChatGPT作为一个示例。
你能将这些类别 [body request classes] 转为含有一些虚拟值的JSON吗?
例子:
我向ChatGPT提问了:
data class Menu(
val menu: List<MenuItem>
)
data class MenuItem(
val id: Int,
val name: String,
val price: Double,
val category: String
)
data class Order(
val orderId: Int,
val items: List<OrderItem>,
val totalPrice: Double,
val customerName: String,
val deliveryAddress: String
)
data class OrderItem(
val itemId: Int,
val quantity: Int
)
在第二个ChatGPT中,生成适用于Postman或curl的正确JSON。
{
"menu": [
{
"id": 1,
"name": "Margherita Pizza",
"price": 12.99,
"category": "Pizza"
},
{
"id": 2,
"name": "Veggie Burger",
"price": 9.99,
"category": "Burger"
},
{
"id": 3,
"name": "Caesar Salad",
"price": 8.99,
"category": "Salad"
}
],
"order": {
"orderId": 12345,
"items": [
{
"itemId": 1,
"quantity": 2
},
{
"itemId": 3,
"quantity": 1
}
],
"totalPrice": 34.97,
"customerName": "John Doe",
"deliveryAddress": "1234 Elm Street, Anytown, AN 12345"
}
}
2. 从JSON定义生成POJO类
当然,它是双向工作的,所以想象一下当你要使用一个新的外部API并获取由庞大的JSON描述的数据时,你可以轻松地创建数据类。
你能将这个 JSON 文件转换成 Kotlin 的数据类吗?
使用与前一个示例相同的JSON,Chat将在Kotlin或任何其他您需要的语言中创建一堆数据类。
3. 创建实时模板
如果您使用JetBrains的IntelliJ IDEA,则可能熟悉Live Templates。我认为这是该IDE的最佳功能之一,而有了ChatGPT支持生成模板,您可以轻松获得它们。
你能用这个格式为Intellij Idea测试生成实时模板吗?
@Test
fun `name`() {
// given
// when
val result = underTest.toBeTested()
// then
Assertions.assertEquals(result, 1)
}
当然,Chat不仅创作模板,还描述了如何将该模板转换为IDE中的步骤。
简单的单元测试并不是唯一的例子,我经常使用这个功能。
- GWT 简单单元测试
- 参数化测试的ms方法来源
- pt参数化测试
- post/put/get/deleteM会为我生成适当的端点处理程序
它还可以与文件一起工作,这样您就可以自动化并加速创建存储库、服务、REST控制器等的过程。
4. 流程或系统设计的图表生成
更多的自定义GPT,更多的可能性,特别是在数据可视化领域。图表:展示我创建的图表、架构可视化、流程图、思维导图、方案。这个GPT允许在不同的格式(如Markmap或PlantUML)中进行可视化,甚至您还可以在Miro和美人鱼中进行编辑。
你能否生成关于高级软件安全主题的思维导图?
基于SQL的数据库图没有任何问题。
5. 个人调试器
如果我们在谈论寻找错误时,聊天是无价的,从简单的堆栈跟踪中,它可以给出多个异常发生的原因,以及解决它们的多种方法。
最近我花了很多时间在 Project Reactor 上,Chat 在关于响应式发布者、操作符和最佳实践的解释方面非常有帮助。
6. 设计/开发方案的验证
不时之间,我需要设计一些高级方法,并将其纳入现有的架构中,除了创建一堆图表以供后续演示之外,聊天是我思想的良好伴侣。请看我的提示:
你是否注意到使用InfluxDB + Spring堆栈作为Grafana的数据源可能存在潜在问题?
答案:
使用InfluxDB与Spring(可能是用于构建微服务或Web应用程序的Spring Boot)作为Grafana的数据源是监控和可视化时间序列数据的常见而有效的堆栈。然而,像任何技术堆栈一样,您可能会遇到一些潜在的注意事项或挑战:
在集成方面的复杂性:虽然InfluxDB与Grafana的集成非常好,但要在Spring应用程序中无缝集成它可能需要额外的配置和对Spring和InfluxDB API的了解。
性能开销:InfluxDB作为一种时间序列数据库,针对写入密集的工作负载进行了优化。然而,如果您的Spring应用程序生成了极高数量的数据点,可能会影响性能。确保InfluxDB实例的适当调整和配置至关重要。
数据结构和模式设计:在InfluxDB中为时序数据设计合适的模式非常重要。糟糕的模式设计可能导致查询效率低下,从而影响InfluxDB和Spring应用程序的性能。
…
当我需要计算SLI时,这非常有用。
您能计算一个服务和一个数据库的系统可靠性水平吗?服务有两个实例(99.999%)。
并且结果总是附有计算方法的解释。