Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Detecting and Reporting Object-Relational Mappi...
Search
Gustavo Pinto
September 19, 2019
Research
1
190
Detecting and Reporting Object-Relational MappingProblems: An Industrial Report
Gustavo Pinto
September 19, 2019
Tweet
Share
More Decks by Gustavo Pinto
See All by Gustavo Pinto
Developer Experiences with a Contextualized AI Coding Assistant: Usability Expectations, and Outcomes
gustavopinto
0
34
Apoiando pessoas programadoras com deficiência: Lições aprendidas na Zup Innovation
gustavopinto
0
76
5 coisas que todo dev deveria saber Para criar aplicações com GenAI
gustavopinto
0
93
Large Language Models for Education: Grading Open-Ended Questions Using ChatGPT
gustavopinto
0
100
Cognitive Driven Development: A Research Agenda
gustavopinto
0
110
The Infinite Academic Game
gustavopinto
0
68
[ESEM 2022] To What Extent Cognitive Driven Development Improves Code Readability
gustavopinto
0
100
Caminhos e desafios para a pesquisa em Computação (ou como se manter produtivo) na Região Norte
gustavopinto
2
330
How Open is the SBES PC Community
gustavopinto
0
110
Other Decks in Research
See All in Research
IMC の細かすぎる話 2025
smly
2
630
When Submarine Cables Go Dark: Examining the Web Services Resilience Amid Global Internet Disruptions
irvin
0
300
AlphaEarth Foundations: An embedding field model for accurate and efficient global mapping from sparse label data
satai
1
210
一人称視点映像解析の最先端(MIRU2025 チュートリアル)
takumayagi
6
3.5k
Combinatorial Search with Generators
kei18
0
770
20250624_熊本経済同友会6月例会講演
trafficbrain
1
610
数理最適化と機械学習の融合
mickey_kubo
16
9.3k
SegEarth-OV: Towards Training-Free Open-Vocabulary Segmentation for Remote Sensing Images
satai
3
180
MetaEarth: A Generative Foundation Model for Global-Scale Remote Sensing Image Generation
satai
4
200
Learning to (Learn at Test Time): RNNs with Expressive Hidden States
kurita
0
170
Towards a More Efficient Reasoning LLM: AIMO2 Solution Summary and Introduction to Fast-Math Models
analokmaus
2
800
[RSJ25] Enhancing VLA Performance in Understanding and Executing Free-form Instructions via Visual Prompt-based Paraphrasing
keio_smilab
PRO
0
110
Featured
See All Featured
The Invisible Side of Design
smashingmag
301
51k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
Optimizing for Happiness
mojombo
379
70k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Building an army of robots
kneath
306
46k
Site-Speed That Sticks
csswizardry
10
820
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Practical Orchestrator
shlominoach
190
11k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
51
5.6k
Transcript
Detecting and Reporting Object-Relational Mapping Problems: An Industrial Report Marcos
Nazário @gustavopinto Gustavo Pinto Rodrigo Bonifácio Eduardo Guerra
@gustavopinto ORM Application Code Database
@gustavopinto @Entity public class Color { private String code; private
String name; private Boolean enable; }
@gustavopinto @Entity @Table(schema = "public", name = "COLOR") public class
Color { private String code; private String name; private Boolean enable; }
@gustavopinto @Entity @Table(schema = "public", name = "COLOR") public class
Color { @Column private String code; @Column private String name; @Column private Boolean enable; }
@gustavopinto @Entity @Table(schema = "public", name = "COLOR") public class
Color { @Column(name = "CODE", nullable = false) private String code; @Column(name = "NAME", length = 80, nullable = false) private String name; @Column(name = "ENABLE", nullable = false) private Boolean enable; }
@gustavopinto @Entity @Table(schema = "public", name = "COLOR") public class
Color { @Column(name = "CODE", nullable = false) private String code; @Column(name = "NAME", length = 80, nullable = false) private String name; @Column(name = "ENABLE", nullable = false) private Boolean enable; }
@gustavopinto @Entity @Table(schema = "public", name = "COLOR") public class
Color { @Column(name = "CODE", nullable = false) private String code; @Column(name = "NAME", length = 80, nullable = false) private String name; @Column(name = "ENABLE", nullable = false) private Boolean enable; }
@gustavopinto @Entity @Table(schema = "public", name = "COLOR") public class
Color { @Column(name = "CODE", nullable = false) private String code; @Column(name = "NAME", length = 80, nullable = false) private String name; @Column(name = "ENABLE", nullable = false) private Boolean enable; }
@gustavopinto @Entity @Table(schema = "public", name = "COLOR") public class
Color { @Id @Column(name = "CODE", nullable = false) private String code; @Column(name = "NAME", length = 80, nullable = false) private String name; @Column(name = "ENABLE", nullable = false) private Boolean enable; }
@gustavopinto @Entity @Table(schema = "public", name = "COLOR") public class
Color { @Id @Column(name = "CODE", nullable = false) private String code; @Column(name = "NAME", length = 80, nullable = false) private String name; @Column(name = "ENABLE", nullable = false) private Boolean enable; }
@gustavopinto @Entity @Table(schema = "public", name = "COLOR") public class
Color { @Id @Column(name = "CODE", nullable = false) private String code; @Column(name = "NAME", length = 80, nullable = false) private String name; @Column(name = "ENABLE", nullable = false) private Boolean enable; }
@gustavopinto @Entity @Table(schema = "public", name = "COLOR") public class
Color implements Serializable { @Id @Column(name = "CODE", nullable = false) private String code; @Column(name = "NAME", length = 80, nullable = false) private String name; @Column(name = "ENABLE", nullable = false) private Boolean enable; }
@gustavopinto We catalogued 12 ORM-related problems
@gustavopinto We implemented this catalog in a static analysis tool
@gustavopinto We implemented this catalog in a static analysis tool
Finds the problems Suggests the fix
@gustavopinto We implemented this catalog in a static analysis tool
We are using this tool for over 5 years now Finds the problems Suggests the fix
@gustavopinto Could others take advantage of our tool?
@gustavopinto
@gustavopinto We conducted a developer experience (DX) study with 13
developers
@gustavopinto We conducted a developer experience (DX) study with 13
developers 3 students, 10 from industry 6 with 7+ years with ORM experience 2 with no previous ORM experience
@gustavopinto
@gustavopinto 6 ORM tasks
@gustavopinto 6 ORM tasks
@gustavopinto 6 ORM tasks
@gustavopinto All participants completed the experiment
@gustavopinto eases ORM modeling Every day I do object-relational mapping,
and this tool could help me to remember what is missing “ ”
@gustavopinto eases ORM modeling the tool is precise forces best
practices
@gustavopinto Little docs I found it quite difficult to find
help in the documentation. There is nothing on the web “ ”
@gustavopinto Little docs Custom annotations were not intuitive The tool
poses many constraints
None
None
None
None
None
None