My Ph.D. advisor and I are researching code smells in Elixir systems. This work resulted in the Catalog of Elixir-specific code smells, which has already become quite popular among GitHub users. (https://github.com/lucasvegi/Elixir-Code-Smells).
Now we need your help to identify what are the smells that appear most frequently and have the most negative impact on the maintenance of Elixir systems.
If you are interested in the quality of your code, could you please help us by answering this survey on code smells? (it should take 15-25 min) https://lucasvegi.github.io/Elixir-Code-Smells/
Thank you @lucasvegi! I have pinned to bring more visibility to it.
If anyone has 15-25mins to spare, prepare yourself a cup of coffee/tea and consider filling in the survey.
Thanks, @josevalim! I really do appreciate it!
TIL: my code stinks.
Can you say anything of your plans with this?
Hello! We have some possibilities with the results of this survey. For example:
Imagine that you have several code smells that are harming the maintenance of your code. Which one should you remove first? Maybe we can answer that question in a few months.
Tools like Credo could be adapted to detect the most frequent or harmful smells automatically. Our research can direct the effort to adapt a static code analyzer like Credo, implementing the detection of the most important smells first.
I think you may get more responses if it’s possible to preview the questions before submitting an email address and agreeing to the terms.
Hi Adam, you gave a great suggestion!
A member of the Elixir community (@adolfont) has already made a short video presenting the content of the survey. You can watch it at this link: A Survey on Code Smells in Elixir - YouTube (from 2min40 onwards the content of the form starts to be shown)
I know it may seem strange to provide some personal data like name or email, but when we do scientific research involving people, we have to follow some rules of the university ethics committee. This data is used for academic purposes only and will not be made public, as explained in our consent terms.
If you have any other questions, feel free to ask me, ok?
I took the survey. I think i just learned a lot about different code smells that i wasn’t really familiar with. Very eye opening to me
It’s tied to a google account. What if someone does not have a google account, or does not want the data to be tied with their account …
I’m taking the survey anyway
Unfortunately, this is a limitation of the tool we chose to use in our research. While we know this may be an issue for some interested in participating, we believe it will not have a significant impact on our research.
Anyway, I’m open to receive messages from everyone who wants to participate and for some problem they’re not able to
Off topic but still. The term „code smell“ always struck me as crude. Aren‘t there better terms for this ? Or is it just me who has a problem with this word ?
I don’t have a problem with this term, but English is not my first language. Anyway, quoting Wikipedia on the origins of it:
The term was popularised by Kent Beck on WardsWiki in the late 1990s. Usage of the term increased after it was featured in the 1999 book Refactoring: Improving the Design of Existing Code by Martin Fowler.
Exactly that Roger!
The term code (bad) smells were coined and popularized by Fowler and Beck in 1999 in their well-known book on Refactoring. In addition to coining the terms in this book, they also cataloged 22 traditional code smells. Some of them are part of our survey, as they are also discussed in the context of Elixir. There are other synonyms in the literature to refer to these sub-optimal code structures, such as anti-patterns, code anomalies, and bad practices.
I know some people think the terms code (bad) smells are pejorative. There was a recent discussion on Hacker News about our work and I saw some people complaining about this term as well. We chose to use the term code smells because it is by far the most used term in the literature to describe these sub-optimal structures. This is even a very researched topic in software engineering.
The term also quite well relates to the problem it is describing about “crude or poor code”. It is designed to illicit that reaction by its connotations.
I would like to thank the great number of Elixir developers who have already participated in our survey. We will collect responses until October 5th at 12:00 PM (UTC-3) for those who have not yet participated and are interested. Enjoy this opportunity!