arrow
返回

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
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

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.
Keyword:
Code smells
Elixir
Functional programming
Grey literature
Mining software repositories
GitHub

期刊

Empirical Software Engineering 封面图
Empirical Software Engineering
IF:
3.6
论文数:
2.0K
被引数:
5.3K

机构

U
Universidade Federal de Minas Gerais
学者数:
2.5W
论文数: 1.5W
被引数: 1.4W
引用论文

引用论文

?-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
err分享
err收藏
On the Definition of Microservice Bad Smells
err2018-05-01
err145
PREAI
errTaibi, Davide; Lenarduzzi, Valentina
err分享
err收藏
Omphalocele and gastroschisis and associated malformations
err2008-04-03
err0
PREAI
errClaude Stoll; Yves Alembik; Beatrice Dott; Marie‐Paule Roth
err分享
err收藏
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
err分享
err收藏
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
err分享
err收藏
Single-Center Experience Using Selexipag in a Pediatric Population
err2017-07-13
err0
PREAI
errRoberto Gallotti; Diana E. Drogalis-Kim; Gary Satou; Juan Alejos
err分享
err收藏
学者 查看更多内容