{"guid":"5975f68c-5abd-4c9a-89e0-86d903c8b790","title":"Detecting Oxbow Code in Erlang Codebases with the Highest Degree of Certainty","subtitle":null,"slug":"bob2022-detecting-oxbow-code-in-erlang-castro-brujo","link":"https://bobkonf.de/2022/castro-brujo.html","description":"Learn how to clean up your large Erlang projects by\ndetecting and removing code that’s no longer needed with the highest\nlevel of confidence using Hank, an open-source plugin for rebar3.\n\nThe presence of source code that is no longer needed is a handicap to\nproject maintainability. The larger and longer-lived the project, the\nhigher the chances of accumulating dead code in its different forms.\n\nManually detecting unused code is time-consuming, tedious,\nerror-prone, and requires a great level of deep knowledge about the\ncodebase. In this talk, we examine the kinds of dead code\n(specifically, oxbow code) that can appear in Erlang projects, and\nformulate rules to identify them with high accuracy.\n\nWe also present an open-source static analyzer that implements these\nrules, allowing for the automatic detection and confident removal of\noxbow code in Erlang codebases, actively contributing to increasing\ntheir quality and maintainability.","original_language":"eng","persons":["Laura M Castro","Brujo"],"view_count":13,"promoted":false,"date":"2022-03-11T16:20:00.000+01:00","release_date":"2022-09-05T00:00:00.000+02:00","updated_at":"2024-12-03T18:15:03.895+01:00","tags":["bob2022","98","2022","Talk","BOB","BOBKonferenz"],"length":1883,"duration":1883,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2022/98-5975f68c-5abd-4c9a-89e0-86d903c8b790.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2022/98-5975f68c-5abd-4c9a-89e0-86d903c8b790_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2022/98-5975f68c-5abd-4c9a-89e0-86d903c8b790.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2022/98-5975f68c-5abd-4c9a-89e0-86d903c8b790.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2022-detecting-oxbow-code-in-erlang-castro-brujo","url":"https://api.media.ccc.de/public/events/5975f68c-5abd-4c9a-89e0-86d903c8b790","conference_title":"BOB Konferenz 2022","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022","related":[],"recordings":[{"size":129,"length":1883,"mime_type":"video/webm","language":"eng","filename":"bob2022-98-eng-Detecting_Oxbow_Code_in_Erlang_Codebases_with_the_Highest_Degree_of_Certainty_webm-hd.webm","state":"new","folder":"webm-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2022-09-05T15:18:07.170+02:00","recording_url":"https://cdn.media.ccc.de/events/bobkonf/2022/webm-hd/bob2022-98-eng-Detecting_Oxbow_Code_in_Erlang_Codebases_with_the_Highest_Degree_of_Certainty_webm-hd.webm","url":"https://api.media.ccc.de/public/recordings/61524","event_url":"https://api.media.ccc.de/public/events/5975f68c-5abd-4c9a-89e0-86d903c8b790","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022"},{"size":59,"length":1883,"mime_type":"video/webm","language":"eng","filename":"bob2022-98-eng-Detecting_Oxbow_Code_in_Erlang_Codebases_with_the_Highest_Degree_of_Certainty_webm-sd.webm","state":"new","folder":"webm-sd","high_quality":false,"width":720,"height":576,"updated_at":"2022-09-05T15:04:04.847+02:00","recording_url":"https://cdn.media.ccc.de/events/bobkonf/2022/webm-sd/bob2022-98-eng-Detecting_Oxbow_Code_in_Erlang_Codebases_with_the_Highest_Degree_of_Certainty_webm-sd.webm","url":"https://api.media.ccc.de/public/recordings/61514","event_url":"https://api.media.ccc.de/public/events/5975f68c-5abd-4c9a-89e0-86d903c8b790","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022"},{"size":45,"length":1883,"mime_type":"video/mp4","language":"eng","filename":"bob2022-98-eng-Detecting_Oxbow_Code_in_Erlang_Codebases_with_the_Highest_Degree_of_Certainty_sd.mp4","state":"new","folder":"h264-sd","high_quality":false,"width":720,"height":576,"updated_at":"2022-09-05T14:56:43.268+02:00","recording_url":"https://cdn.media.ccc.de/events/bobkonf/2022/h264-sd/bob2022-98-eng-Detecting_Oxbow_Code_in_Erlang_Codebases_with_the_Highest_Degree_of_Certainty_sd.mp4","url":"https://api.media.ccc.de/public/recordings/61511","event_url":"https://api.media.ccc.de/public/events/5975f68c-5abd-4c9a-89e0-86d903c8b790","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022"},{"size":28,"length":1883,"mime_type":"audio/mpeg","language":"eng","filename":"bob2022-98-eng-Detecting_Oxbow_Code_in_Erlang_Codebases_with_the_Highest_Degree_of_Certainty_mp3.mp3","state":"new","folder":"mp3","high_quality":false,"width":0,"height":0,"updated_at":"2022-09-05T14:55:38.443+02:00","recording_url":"https://cdn.media.ccc.de/events/bobkonf/2022/mp3/bob2022-98-eng-Detecting_Oxbow_Code_in_Erlang_Codebases_with_the_Highest_Degree_of_Certainty_mp3.mp3","url":"https://api.media.ccc.de/public/recordings/61510","event_url":"https://api.media.ccc.de/public/events/5975f68c-5abd-4c9a-89e0-86d903c8b790","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022"},{"size":18,"length":1883,"mime_type":"audio/opus","language":"eng","filename":"bob2022-98-eng-Detecting_Oxbow_Code_in_Erlang_Codebases_with_the_Highest_Degree_of_Certainty_opus.opus","state":"new","folder":"opus","high_quality":false,"width":0,"height":0,"updated_at":"2022-09-05T14:55:11.941+02:00","recording_url":"https://cdn.media.ccc.de/events/bobkonf/2022/opus/bob2022-98-eng-Detecting_Oxbow_Code_in_Erlang_Codebases_with_the_Highest_Degree_of_Certainty_opus.opus","url":"https://api.media.ccc.de/public/recordings/61509","event_url":"https://api.media.ccc.de/public/events/5975f68c-5abd-4c9a-89e0-86d903c8b790","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022"},{"size":83,"length":1883,"mime_type":"video/mp4","language":"eng","filename":"bob2022-98-eng-Detecting_Oxbow_Code_in_Erlang_Codebases_with_the_Highest_Degree_of_Certainty_hd.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2022-09-05T14:55:09.843+02:00","recording_url":"https://cdn.media.ccc.de/events/bobkonf/2022/h264-hd/bob2022-98-eng-Detecting_Oxbow_Code_in_Erlang_Codebases_with_the_Highest_Degree_of_Certainty_hd.mp4","url":"https://api.media.ccc.de/public/recordings/61508","event_url":"https://api.media.ccc.de/public/events/5975f68c-5abd-4c9a-89e0-86d903c8b790","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022"}]}