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
28
Apoiando pessoas programadoras com deficiência: Lições aprendidas na Zup Innovation
gustavopinto
0
71
5 coisas que todo dev deveria saber Para criar aplicações com GenAI
gustavopinto
0
88
Large Language Models for Education: Grading Open-Ended Questions Using ChatGPT
gustavopinto
0
95
Cognitive Driven Development: A Research Agenda
gustavopinto
0
110
The Infinite Academic Game
gustavopinto
0
63
[ESEM 2022] To What Extent Cognitive Driven Development Improves Code Readability
gustavopinto
0
97
Caminhos e desafios para a pesquisa em Computação (ou como se manter produtivo) na Região Norte
gustavopinto
2
320
How Open is the SBES PC Community
gustavopinto
0
100
Other Decks in Research
See All in Research
Creation and environmental applications of 15-year daily inundation and vegetation maps for Siberia by integrating satellite and meteorological datasets
satai
3
140
A multimodal data fusion model for accurate and interpretable urban land use mapping with uncertainty analysis
satai
3
230
Type Theory as a Formal Basis of Natural Language Semantics
daikimatsuoka
1
250
Sosiaalisen median katsaus 03/2025 + tekoäly
hponka
0
1.4k
時系列データに対する解釈可能な 決定木クラスタリング
mickey_kubo
2
770
心理言語学の視点から再考する言語モデルの学習過程
chemical_tree
2
450
Google Agent Development Kit (ADK) 入門 🚀
mickey_kubo
2
1.2k
Adaptive fusion of multi-modal remote sensing data for optimal sub-field crop yield prediction
satai
3
220
【緊急警告】日本の未来設計図 ~沈没か、再生か。国民と断行するラストチャンス~
yuutakasan
0
140
在庫管理のための機械学習と最適化の融合
mickey_kubo
3
1.1k
公立高校入試等に対する受入保留アルゴリズム(DA)導入の提言
shunyanoda
0
6.1k
Streamlit 総合解説 ~ PythonistaのためのWebアプリ開発 ~
mickey_kubo
1
1.1k
Featured
See All Featured
Faster Mobile Websites
deanohume
308
31k
Practical Orchestrator
shlominoach
189
11k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Why Our Code Smells
bkeepers
PRO
337
57k
How to Ace a Technical Interview
jacobian
278
23k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Thoughts on Productivity
jonyablonski
69
4.7k
A Modern Web Designer's Workflow
chriscoyier
695
190k
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