{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,29]],"date-time":"2026-01-29T21:34:22Z","timestamp":1769722462987,"version":"3.49.0"},"reference-count":54,"publisher":"Springer Science and Business Media LLC","issue":"3","license":[{"start":{"date-parts":[[2019,3,22]],"date-time":"2019-03-22T00:00:00Z","timestamp":1553212800000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Software Qual J"],"published-print":{"date-parts":[[2019,9]]},"DOI":"10.1007\/s11219-019-09442-9","type":"journal-article","created":{"date-parts":[[2019,3,22]],"date-time":"2019-03-22T11:03:06Z","timestamp":1553252586000},"page":"1271-1314","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":28,"title":["A large-scale empirical study of code smells in JavaScript projects"],"prefix":"10.1007","volume":"27","author":[{"given":"David","family":"Johannes","sequence":"first","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-5704-4173","authenticated-orcid":false,"given":"Foutse","family":"Khomh","sequence":"additional","affiliation":[]},{"given":"Giuliano","family":"Antoniol","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2019,3,22]]},"reference":[{"key":"9442_CR1","doi-asserted-by":"crossref","unstructured":"Abbes, M., Khomh, F., Gu\u00e9h\u00e9neuc, Y.-G., Antoniol, G. (2011). An empirical study of the impact of two antipatterns, blob and spaghetti code, on program comprehension. In 2011 15th European conference on software maintenance and reengineering (CSMR) (pp. 181\u2013190).","DOI":"10.1109\/CSMR.2011.24"},{"key":"9442_CR2","unstructured":"Bower. (2016). About Bower [Online; accessed 4-October-2016]. [Online]. Available: https:\/\/bower.io\/docs\/about\/ ."},{"key":"9442_CR3","unstructured":"GitHub. (2016a). Airbnb JavaScript style guide [Online; accessed 17-October-2016]. [Online]. Available: https:\/\/github.com\/airbnb\/javascript ."},{"key":"9442_CR4","doi-asserted-by":"crossref","unstructured":"Baxter, I.D., Yahin, A., Moura, L., Sant\u2019Anna, M., Bier, L. (1998). Clone detection using abstract syntax trees. In 1998. Proceedings of the International Conference on Software Maintenance. IEEE (pp. 368\u2013377).","DOI":"10.1109\/ICSM.1998.738528"},{"key":"9442_CR5","doi-asserted-by":"crossref","unstructured":"Brodu, E., Fr\u00e9not, S., Obl\u00e9, F. (2015). Toward automatic update from callbacks to promises. In Proceedings of the 1st Workshop on All-Web Real-Time Systems. ACM (p. 1).","DOI":"10.1145\/2749215.2749216"},{"key":"9442_CR6","doi-asserted-by":"crossref","unstructured":"Chatzigeorgiou, A., & Manakos, A. (2010). Investigating the evolution of bad smells in object-oriented code. In 2010 7th International Conference on the Quality of Information and Communications Technology (QUATIC). IEEE (pp. 106\u2013115).","DOI":"10.1109\/QUATIC.2010.16"},{"key":"9442_CR7","doi-asserted-by":"crossref","unstructured":"D\u2019Ambros, M., Bacchelli, A., Lanza, M. (2010). On the impact of design flaws on software defects. In 2010 10th International Conference on Quality Software (QSIC). IEEE (pp. 23\u201331).","DOI":"10.1109\/QSIC.2010.58"},{"issue":"7","key":"9442_CR8","doi-asserted-by":"publisher","first-page":"641","DOI":"10.1109\/TSE.2016.2616306","volume":"43","author":"DA da Costa","year":"2017","unstructured":"da Costa, D.A., McIntosh, S., Shang, W., Kulesza, U., Coelho, R., Hassan, A. E. (2017). A framework for evaluating the results of the szz approach for identifying bug-introducing changes. IEEE Transactions on Software Engineering, 43 (7), 641\u2013657.","journal-title":"IEEE Transactions on Software Engineering"},{"key":"9442_CR9","unstructured":"Eslint. (2015). The pluggable linting utility for javascript and jsx. http:\/\/eslint.org\/ ."},{"key":"9442_CR10","doi-asserted-by":"crossref","unstructured":"Fard, A.M., & Mesbah, A. (2013). Jsnose: Detecting javascript code smells. In 2013 IEEE 13th International Working Conference on Source Code Analysis and Manipulation (SCAM). IEEE (pp. 116\u2013 125).","DOI":"10.1109\/SCAM.2013.6648192"},{"key":"9442_CR11","doi-asserted-by":"crossref","unstructured":"Fischer, M., Pinzger, M., Gall, H. (2003). Populating a release history database from version control and bug tracking systems. In 2003. ICSM 2003. Proceedings. International Conference on Software Maintenance. IEEE (pp. 23\u201332).","DOI":"10.1109\/ICSM.2003.1235403"},{"issue":"2","key":"9442_CR12","first-page":"5","volume":"11","author":"FA Fontana","year":"2012","unstructured":"Fontana, F.A., Braione, P., Zanoni, M. (2012). Automatic detection of bad smells in code: an experimental assessment. Journal of Object Technology, 11(2), 5\u20131.","journal-title":"Journal of Object Technology"},{"key":"9442_CR13","unstructured":"Fowler, M. (1997). Refactoring: improving the design of existing code. In 11th European Conference. Jyv\u00e4skyl\u00e4, Finland."},{"key":"9442_CR14","unstructured":"Fox, J., & Weisberg, S. (2010). An R companion to applied regression Sage."},{"key":"9442_CR15","doi-asserted-by":"crossref","unstructured":"Gallaba, K., Mesbah, A., Beschastnikh, I. (2015). Don\u2019t call us, we\u2019ll call you: characterizing callbacks in Javascript. In 2015 ACM\/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM). IEEE (pp. 1\u201310).","DOI":"10.1109\/ESEM.2015.7321196"},{"key":"9442_CR16","doi-asserted-by":"publisher","first-page":"44","DOI":"10.1016\/j.scico.2014.12.002","volume":"102","author":"M Gatrell","year":"2015","unstructured":"Gatrell, M., & Counsell, S. (2015). The effect of refactoring on change and fault-proneness in commercial c# software. Science of Computer Programming, 102, 44\u201356.","journal-title":"Science of Computer Programming"},{"key":"9442_CR17","unstructured":"Gamma, E., Helm, R., Johnson, R., Vlissides, J. (1995). Design patterns: elements of reusable object oriented software."},{"key":"9442_CR18","unstructured":"GitHut. (2016). Discover languages in GitHub [Online; accessed 11-August-2016]. [Online]. Available: http:\/\/githut.info\/ ."},{"key":"9442_CR19","doi-asserted-by":"crossref","unstructured":"Jaafar, F., Gu\u00e9h\u00e9neuc, Y.-G., Hamel, S., Khomh, F. (2013). Mining the relationship between anti-patterns dependencies and fault-proneness. In WCRE (pp. 351\u2013360).","DOI":"10.1109\/WCRE.2013.6671310"},{"key":"9442_CR20","unstructured":"jQuery. (2016). jQuery JavaScript style guide [Online; accessed 17-October-2016]. [Online]. Available: https:\/\/contribute.jquery.org\/style-guide\/js\/ ."},{"key":"9442_CR21","unstructured":"JSLint. (2019). JSLint: the JavaScript code quality tool. http:\/\/www.jslint.com ."},{"key":"9442_CR22","unstructured":"JSHint. (2019). JSHint: a static code analysis tool for JavaScript. http:\/\/jshint.com\/ ."},{"issue":"4","key":"9442_CR23","doi-asserted-by":"publisher","first-page":"559","DOI":"10.1016\/j.jss.2010.11.921","volume":"84","author":"F Khomh","year":"2011","unstructured":"Khomh, F., Vaucher, S., Gu\u00e9h\u00e9neuc, Y.-G., Sahraoui, H. (2011). BDTEX: a GQM-based Bayesian approach for the detection of antipatterns. Journal of Systems and Software, 84(4), 559\u2013 572.","journal-title":"Journal of Systems and Software"},{"issue":"3","key":"9442_CR24","doi-asserted-by":"publisher","first-page":"243","DOI":"10.1007\/s10664-011-9171-y","volume":"17","author":"F Khomh","year":"2012","unstructured":"Khomh, F., Penta, M.D., Gu\u00e9h\u00e9neuc, Y.-G., Antoniol, G. (2012). An exploratory study of the impact of antipatterns on class change- and fault-proneness. Empirical Software Engineering, 17(3), 243\u2013275. [Online]. Available: https:\/\/doi.org\/10.1007\/s10664-011-9171-y .","journal-title":"Empirical Software Engineering"},{"issue":"3","key":"9442_CR25","doi-asserted-by":"publisher","first-page":"243","DOI":"10.1007\/s10664-011-9171-y","volume":"17","author":"F Khomh","year":"2012","unstructured":"Khomh, F., Di Penta, M., Gu\u00e9h\u00e9neuc, Y.-G., Antoniol, G. (2012). An exploratory study of the impact of antipatterns on class change-and fault-proneness. Empirical Software Engineering, 17(3), 243\u2013275.","journal-title":"Empirical Software Engineering"},{"key":"9442_CR26","unstructured":"Koru, A.G., Zhang, D., Liu, H. (2007). Modeling the effect of size on defect proneness for open-source software. In Proceedings of the 3rd International Workshop on Predictor Models in Software Engineering. IEEE Computer Society (p. 10)."},{"issue":"5","key":"9442_CR27","doi-asserted-by":"publisher","first-page":"473","DOI":"10.1007\/s10664-008-9080-x","volume":"13","author":"AG Koru","year":"2008","unstructured":"Koru, A. G., El Emam, K., Zhang, D., Liu, H., Mathew, D. (2008). Theory of relative defect proneness. Empirical Software Engineering, 13(5), 473\u2013498.","journal-title":"Empirical Software Engineering"},{"key":"9442_CR28","unstructured":"Mardan, A. (2014). Express.. js Guide: the comprehensive book on express. js. Azat Mardan."},{"key":"9442_CR29","doi-asserted-by":"crossref","unstructured":"Marinescu, R. (2004). Detection strategies: metrics-based rules for detecting design flaws. In 2004. Proceedings. 20th IEEE International Conference on Software Maintenance. IEEE (pp. 350\u2013359).","DOI":"10.1109\/ICSM.2004.1357820"},{"key":"9442_CR30","unstructured":"Marinescu, R., & Lanza, M. (2006). Object-oriented metrics in practice."},{"key":"9442_CR31","doi-asserted-by":"crossref","unstructured":"Mazinanian, D., & Tsantalis, N. (2016). Migrating cascading style sheets to preprocessors by introducing mixins. In Proceedings of the 31st IEEE\/ACM International Cconference on Automated Software Engineering. ACM (pp. 672\u2013683).","DOI":"10.1145\/2970276.2970348"},{"key":"9442_CR32","doi-asserted-by":"publisher","first-page":"308","DOI":"10.1109\/TSE.1976.233837","volume":"4","author":"TJ McCabe","year":"1976","unstructured":"McCabe, T.J. (1976). A complexity measure. IEEE Transactions on software Engineering, 4, 308\u2013320.","journal-title":"IEEE Transactions on software Engineering"},{"issue":"4","key":"9442_CR33","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/1082983.1083143","volume":"30","author":"I Neamtiu","year":"2005","unstructured":"Neamtiu, I., Foster, J.S., Hicks, M. (2005). Understanding source code evolution using abstract syntax tree matching. ACM SIGSOFT Software Engineering Notes, 30 (4), 1\u20135.","journal-title":"ACM SIGSOFT Software Engineering Notes"},{"key":"9442_CR34","doi-asserted-by":"crossref","unstructured":"Nguyen, H.V., Nguyen, H.A., Nguyen, T.T., Nguyen, A.T., Nguyen, T.N. (2012). Detection of embedded code smells in dynamic web applications. In 2012 Proceedings of the 27th IEEE\/ACM International Conference on Automated Software Engineering (ASE). IEEE (pp. 282\u2013285).","DOI":"10.1145\/2351676.2351724"},{"key":"9442_CR35","unstructured":"GitHub. (2016b). Node.js style guide [Online; accessed 17-October-2016]. [Online]. Available: https:\/\/github.com\/felixge\/node-style-guide ."},{"key":"9442_CR36","unstructured":"NpmJS. (2016). npm-coding-style [Online; accessed 17-October-2016]. [Online]. Available: https:\/\/docs.npmjs.com\/misc\/coding-style ."},{"key":"9442_CR37","doi-asserted-by":"crossref","unstructured":"Olbrich, S., Cruzes, D.S., Basili, V., Zazworka, N. (2009). The evolution and impact of code smells: a case study of two open source systems. In 3rd International Symposium on Empirical Software Engineering and Measurement, ESEM 2009 (pp. 390\u2013400).","DOI":"10.1109\/ESEM.2009.5314231"},{"issue":"3","key":"9442_CR38","doi-asserted-by":"publisher","first-page":"1188","DOI":"10.1007\/s10664-017-9535-z","volume":"23","author":"F Palomba","year":"2018","unstructured":"Palomba, F., Bavota, G., Di Penta, M., Fasano, F., Oliveto, R., De Lucia, A. (2018). On the diffuseness and the impact on maintainability of code smells: a large scale empirical investigation. Empirical Software Engineering, 23(3), 1188\u20131221.","journal-title":"Empirical Software Engineering"},{"key":"9442_CR39","doi-asserted-by":"crossref","unstructured":"Peters, R., & Zaidman, A. (2012). Evaluating the lifespan of code smells using software repository mining. In 2012 16th European Conference on Software Mmaintenance and Reengineering (CSMR). IEEE (pp. 411\u2013416).","DOI":"10.1109\/CSMR.2012.79"},{"key":"9442_CR40","doi-asserted-by":"crossref","unstructured":"Pfenning, F., & Elliott, C. (1988). Higher-order abstract syntax. In ACM SIGPLAN Notices, vol. 23, no. 7. ACM (pp. 199\u2013208).","DOI":"10.1145\/960116.54010"},{"key":"9442_CR41","doi-asserted-by":"crossref","unstructured":"Saboury, A., Musavi, P., Khomh, F., Antoniol, G. (2017). An empirical study of code smells in JavaScript projects. In 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER), IEEE (pp. 294\u2013305).","DOI":"10.1109\/SANER.2017.7884630"},{"key":"9442_CR42","doi-asserted-by":"crossref","unstructured":"Selim, G.M., Barbour, L., Shang, W., Adams, B., Hassan, A.E., Zou, Y. (2010). Studying the impact of clones on software defects. In 2010 17th Working Conference on Reverse Engineering. IEEE (pp. 13\u201321).","DOI":"10.1109\/WCRE.2010.11"},{"key":"9442_CR43","unstructured":"Shatnawi, R., & Li, W. (2006). An investigation of bad smells in object-oriented design. In 2006. ITNG 2006. 3rd International Conference on Information Technology: New Generations. IEEE (pp. 161\u2013165)."},{"issue":"5","key":"9442_CR44","doi-asserted-by":"publisher","first-page":"1005","DOI":"10.1007\/s10664-012-9228-6","volume":"18","author":"E Shihab","year":"2013","unstructured":"Shihab, E., Ihara, A., Kamei, Y., Ibrahim, W. M., Ohira, M., Adams, B., Hassan, A. E., Matsumoto, K.-I. (2013). Studying re-opened bugs in open source software. Empirical Software Engineering, 18(5), 1005\u20131042.","journal-title":"Empirical Software Engineering"},{"key":"9442_CR45","doi-asserted-by":"crossref","unstructured":"Singer, J.D., & Willett, J.B. (2003). Applied longitudinal data analysis: modeling change and event occurrence, Oxford University Press, Oxford.","DOI":"10.1093\/acprof:oso\/9780195152968.001.0001"},{"issue":"8","key":"9442_CR46","doi-asserted-by":"publisher","first-page":"1144","DOI":"10.1109\/TSE.2012.89","volume":"39","author":"DIK Sjoberg","year":"2013","unstructured":"Sjoberg, D.I.K., Yamashita, A., Anda, B., Mockus, A., Dyba, T. (2013). Quantifying the effect of code smells on maintenance effort. IEEE Transactions on Software Engineering, 39(8), 1144\u20131156.","journal-title":"IEEE Transactions on Software Engineering"},{"key":"9442_CR47","unstructured":"Stackoverflow. (2016). Developer survey results 2016, [Online; accessed 11-August-2016]. [Online]. Available: http:\/\/stackoverflow.com\/research\/developer-survey-2016 ."},{"key":"9442_CR48","doi-asserted-by":"crossref","unstructured":"\u015aliwerski, J., Zimmermann, T., Zeller, A. (2005). When do changes induce fixes?. In ACM Sigsoft Software Engineering Notes, vol. 30, no. 4. ACM (pp. 1\u20135).","DOI":"10.1145\/1082983.1083147"},{"key":"9442_CR49","unstructured":"Therneau, T. (2000). R survival package."},{"key":"9442_CR50","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4757-3294-8","volume-title":"Modeling survival data: extending the Cox model","author":"TM Therneau","year":"2000","unstructured":"Therneau, T.M., & Grambsch, P.M. (2000). Modeling survival data: extending the Cox model. Berlin: Springer."},{"key":"9442_CR51","doi-asserted-by":"crossref","unstructured":"Tufano, M., Palomba, F., Bavota, G., Oliveto, R., Di Penta, M., De Lucia, A., Poshyvanyk, D. (2015). When and why your code starts to smell bad. In Proceedings of the 37th International Conference on Software Engineering-volume 1. IEEE Press (pp. 403\u2013414).","DOI":"10.1109\/ICSE.2015.59"},{"key":"9442_CR52","volume-title":"Contributions to the history of statistics","author":"H Westergaard","year":"1932","unstructured":"Westergaard, H. (1932). Contributions to the history of statistics. London: P.S King."},{"key":"9442_CR53","unstructured":"Grunt. (2016). Who uses grunt [Online; accessed 4-October-2016]. [Online]. Available: http:\/\/gruntjs.com\/who-uses-grunt ."},{"key":"9442_CR54","unstructured":"Yin, R.K. (2002). Case study research: design and methods, 3rd, SAGE Publications, USA."}],"container-title":["Software Quality Journal"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s11219-019-09442-9.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/article\/10.1007\/s11219-019-09442-9\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s11219-019-09442-9.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,9,14]],"date-time":"2022-09-14T05:25:43Z","timestamp":1663133143000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/s11219-019-09442-9"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,3,22]]},"references-count":54,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2019,9]]}},"alternative-id":["9442"],"URL":"https:\/\/doi.org\/10.1007\/s11219-019-09442-9","relation":{},"ISSN":["0963-9314","1573-1367"],"issn-type":[{"value":"0963-9314","type":"print"},{"value":"1573-1367","type":"electronic"}],"subject":[],"published":{"date-parts":[[2019,3,22]]},"assertion":[{"value":"22 March 2019","order":1,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}]}}