{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,3]],"date-time":"2026-06-03T13:08:25Z","timestamp":1780492105497,"version":"3.54.1"},"reference-count":60,"publisher":"IEEE","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2017,2]]},"DOI":"10.1109\/saner.2017.7884630","type":"proceedings-article","created":{"date-parts":[[2017,3,24]],"date-time":"2017-03-24T03:11:58Z","timestamp":1490325118000},"page":"294-305","source":"Crossref","is-referenced-by-count":54,"title":["An empirical study of code smells in JavaScript projects"],"prefix":"10.1109","author":[{"given":"Amir","family":"Saboury","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Pooya","family":"Musavi","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Foutse","family":"Khomh","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Giulio","family":"Antoniol","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"263","reference":[{"key":"ref39","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-008-9080-x"},{"key":"ref38","author":"fox","year":"2010","journal-title":"An R Companion to Applied Regression"},{"key":"ref33","doi-asserted-by":"publisher","DOI":"10.1145\/1082983.1083143"},{"key":"ref32","doi-asserted-by":"publisher","DOI":"10.1109\/ICSM.2003.1235403"},{"key":"ref31","doi-asserted-by":"publisher","DOI":"10.1145\/1082983.1083147"},{"key":"ref30","article-title":"Who uses grunt","year":"0"},{"key":"ref37","doi-asserted-by":"publisher","DOI":"10.1145\/2970276.2970348"},{"key":"ref36","doi-asserted-by":"publisher","DOI":"10.1109\/ICSM.2004.1357820"},{"key":"ref35","doi-asserted-by":"publisher","DOI":"10.1145\/53990.54010"},{"key":"ref34","doi-asserted-by":"crossref","first-page":"368","DOI":"10.1109\/ICSM.1998.738528","article-title":"Clone detection using abstract syntax trees","author":"baxter","year":"1998","journal-title":"Software Maintenance 1998 Proceedings International Conference on"},{"key":"ref60","article-title":"Jshint: A static code analysis tool for javascript","year":"0"},{"key":"ref28","author":"mardan","year":"2014","journal-title":"Express js Guide The Comprehensive Book on Express js"},{"key":"ref27","author":"kerievsky","year":"2005","journal-title":"Refactoring to Patterns"},{"key":"ref29","article-title":"About bower","year":"0"},{"key":"ref2","article-title":"Discover languages in github","year":"0"},{"key":"ref1","article-title":"Developer survey results 2016","year":"0","journal-title":"Stackoverflow"},{"key":"ref20","article-title":"Es7 async functions","author":"archibald","year":"0"},{"key":"ref22","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1976.233837"},{"key":"ref21","article-title":"Sei cert c++ coding standard - exp19-cpp. do not perform assignments in conditional expressions","year":"0"},{"key":"ref24","article-title":"Object-oriented metrics in practice","author":"marinescu","year":"2006"},{"key":"ref23","author":"crockford","year":"2008","journal-title":"JavaScript The Good Parts The Good Parts"},{"key":"ref26","doi-asserted-by":"publisher","DOI":"10.1023\/A:1008340128973"},{"key":"ref25","first-page":"97","article-title":"The open-closed principle","author":"martin","year":"1996","journal-title":"More C++ gems"},{"key":"ref50","doi-asserted-by":"publisher","DOI":"10.1109\/QUATIC.2010.16"},{"key":"ref51","doi-asserted-by":"publisher","DOI":"10.1109\/ESEM.2009.5314231"},{"key":"ref59","article-title":"Jslint: The javascript code quality tool","year":"0"},{"key":"ref58","doi-asserted-by":"publisher","DOI":"10.1145\/2351676.2351724"},{"key":"ref57","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2012.89"},{"key":"ref56","doi-asserted-by":"publisher","DOI":"10.1109\/CSMR.2011.24"},{"key":"ref55","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-011-9171-y"},{"key":"ref54","doi-asserted-by":"publisher","DOI":"10.1109\/ITNG.2006.31"},{"key":"ref53","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2015.59"},{"key":"ref52","doi-asserted-by":"publisher","DOI":"10.1109\/CSMR.2012.79"},{"key":"ref10","article-title":"jquery javascript style guide","year":"0"},{"key":"ref11","article-title":"Eslint: The pluggable linting utility for javascript","year":"0"},{"key":"ref40","doi-asserted-by":"publisher","DOI":"10.1093\/acprof:oso\/9780195152968.001.0001"},{"key":"ref12","article-title":"Wordpress javascript coding standards","year":"2016"},{"key":"ref13","author":"chaffer","year":"2009","journal-title":"Learning JQuery Better Interaction Design and Web Development with Simple JavaScript Techniques"},{"key":"ref14","author":"martin","year":"2009","journal-title":"Clean code a handbook of agile software craftsmanship"},{"key":"ref15","first-page":"5","article-title":"Automatic detection of bad smells in code: An experimental assessment","volume":"11","author":"fontana","year":"2012","journal-title":"Journal of Object Technology"},{"key":"ref16","doi-asserted-by":"publisher","DOI":"10.1109\/ISCC.2011.5983895"},{"key":"ref17","doi-asserted-by":"publisher","DOI":"10.1145\/2749215.2749216"},{"key":"ref18","doi-asserted-by":"publisher","DOI":"10.1109\/ESEM.2015.7321196"},{"key":"ref19","article-title":"Callback hell","author":"ogden","year":"0"},{"key":"ref4","article-title":"Refactoring: Improving the design of existing code","author":"fowler","year":"1997","journal-title":"11th European Conference"},{"key":"ref3","doi-asserted-by":"publisher","DOI":"10.1109\/SCAM.2013.6648192"},{"key":"ref6","doi-asserted-by":"publisher","DOI":"10.1109\/WCRE.2013.6671310"},{"key":"ref5","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-011-9171-y"},{"key":"ref8","article-title":"Node.js style guide","year":"0"},{"key":"ref7","article-title":"npm-coding-style","year":"0"},{"key":"ref49","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2010.11.921"},{"key":"ref9","article-title":"Airbnb javascript style guide","year":"0"},{"key":"ref46","author":"yin","year":"2002","journal-title":"Case Study Research Design and Methods - Third Edition"},{"key":"ref45","article-title":"R survival package","author":"therneau","year":"2000"},{"key":"ref48","author":"gamma","year":"1995","journal-title":"Design Patterns Elements of Reusable Object Oriented Software"},{"key":"ref47","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-012-9228-6"},{"key":"ref42","author":"westergaard","year":"1932","journal-title":"Contributions to the History of Statistics"},{"key":"ref41","doi-asserted-by":"publisher","DOI":"10.1109\/WCRE.2010.11"},{"key":"ref44","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4757-3294-8"},{"key":"ref43","first-page":"10","article-title":"Modeling the effect of size on defect proneness for open-source software","author":"koru","year":"2007","journal-title":"Proceedings of the Third International Workshop on Predictor Models in Software Engineering"}],"event":{"name":"2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER)","location":"Klagenfurt, Austria","start":{"date-parts":[[2017,2,20]]},"end":{"date-parts":[[2017,2,24]]}},"container-title":["2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER)"],"original-title":[],"link":[{"URL":"http:\/\/xplorestaging.ieee.org\/ielx7\/7879528\/7884596\/07884630.pdf?arnumber=7884630","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,9,20]],"date-time":"2019-09-20T00:23:15Z","timestamp":1568938995000},"score":1,"resource":{"primary":{"URL":"http:\/\/ieeexplore.ieee.org\/document\/7884630\/"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,2]]},"references-count":60,"URL":"https:\/\/doi.org\/10.1109\/saner.2017.7884630","relation":{},"subject":[],"published":{"date-parts":[[2017,2]]}}}