我在我的日常高级软件工程师工作中如何使用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%)。

并且结果总是附有计算方法的解释。

2024-02-01 04:24:19 AI中文站翻译自原文