arrow
Return

Understanding code smells in Elixir functional language

delete2023-07-07
delete2
PRE
AI
L
Lucas Francisco da Matta Vegi *
M
Marco Túlio Valente
DOI:10.1007/s10664-023-10343-6delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
Elixir is a functional programming language created in 2012, whose popularity is growing in the industry. Despite this fact, and to the best of our knowledge, there are few works in the literature focused on studying the internal quality of systems implemented with this language. In a preliminary and previous study, we conducted a grey literature review to provide an initial list of Elixir-specific code smells. Aiming to expand the results of this preliminary study, in this work we use a mixed methodology, based on the interaction with the Elixir developer community and on the mining of issues, commits, pull requests, and the source code in GitHub repositories to prospect and document new code smells for this language. As a result, we propose a catalog composed of 35 code smells, 23 of them are new and specific to Elixir, and 12 of them are traditional code smells, as cataloged by Fowler and Beck, which also affect Elixir systems. We validated this catalog by conducting a survey with 181 experienced Elixir developers from 37 countries and all continents. In this survey, we assessed the levels of relevance and prevalence of each smell in the catalog. We show that most smells in Elixir have relevance levels capable of impacting the readability, maintainability, and evolution of Elixir systems. Furthermore, most of the smells are not uncommon in production code. Our results have practical implications related to the prevention and removal of code smells in Elixir.
Keywords:
Code smells
Elixir
Functional programming
Grey literature
Mining software repositories
GitHub

Journal

Empirical Software Engineering cover
Empirical Software Engineering
IF:
3.6
Papers:
2.0K
Citations:
5.3K

Organization

U
Universidade Federal de Minas Gerais
Scholars:
2.5W
Papers: 1.5W
Citations: 1.4W
Cited Papers

Cited Papers

?-1,4-Glucosidase activity in infertile oligoasthenozoospermic men with and without varicocele
err2007-02-01
err0
errOAAI
errM. M. F. Roaiah; T. Mostafa; D. Salem; A. R. El-Nashar; I. I. Kamel; M. S. El-Kashlan
errShare
errSave
On the Definition of Microservice Bad Smells
err2018-05-01
err145
PREAI
errTaibi, Davide; Lenarduzzi, Valentina
errShare
errSave
Omphalocele and gastroschisis and associated malformations
err2008-04-03
err0
PREAI
errClaude Stoll; Yves Alembik; Beatrice Dott; Marie‐Paule Roth
errShare
errSave
Electricity market prices for day-ahead ancillary services and energy: Texas
err2019-01-01
err0
PREAI
errJay Zarnikau; C.K. Woo; Shuangshuang Zhu; Ross Baldick; Chen-Hao Tsai; Jingwei Meng
errShare
errSave
Grey Literature in Software Engineering: A critical review
err2021-10-01
err25
errOAAI
errKamei, Fernando; Wiese, Igor; Lima, Crescencio; Polato, Ivanilton; Nepomuceno, Vilmar; Ferreira, Waldemar; Ribeiro, Marcio; Pena, Carolline; Cartaxo, Bruno; Pinto, Gustavo; Soares, Sergio
errShare
errSave
Preparation and Size Control of Efficient and Safe Nanopesticides by Anodic Aluminum Oxide Templates-Assisted Method
err2021-08-03
err0
errOAAI
errChunxin Wang; Bo Cui; Yan Wang; Mengjie Wang; Zhanghua Zeng; Fei Gao; Changjiao Sun; Liang Guo; Xiang Zhao; Haixin Cui
errShare
errSave
Single-Center Experience Using Selexipag in a Pediatric Population
err2017-07-13
err0
PREAI
errRoberto Gallotti; Diana E. Drogalis-Kim; Gary Satou; Juan Alejos
errShare
errSave
researcher View more