Comments 16
А чистый легаси javascript с asp.net вообще читается на ура. Только не с первого раза :D
Спасибо за расшифровку, с ней стали понятнее некоторые моменты =)
У меня такая проблема и я не знаю, как с ней бороться. Поэтому всегда стараюсь попадать на свежие проекты.
Может есть какие-то практики, которые позволят научиться читать и понимать чужой код?
Так же, ключевым является умение пользоваться текстовым поиском и другим инструментарием навигации в IDE/редакторе. Умение пользоваться дебагером — must have.
Ну и проводя похожую аналогию со строительством, как по мне, чтение кода системы это как ходить по зданию с смотреть на его узлы, изучать прокладку кабелей и сантехники. Намного проще взглянуть на проектную документацию и все понять. В разработке софта, иметь высокоуровневую документацию необходимо, но стоимость ее сопровождения повышается вместе с увеличением уровня детализации (так что много проектов, к сожалению, не имеет высокоуровневых диаграмм компонентов и их взаимодействия)
В 95% проектов, в которых я участвовал документация скорее даже мешала. Потому что не тратилось достаточно ресурсов на её ведение и документация как правило была сильно устаревшей. Только один раз был проект, делавшийся практически по канбану, где каждая задача включала обязательную разработку/обновление документации. И это делало практически бесплатным введение новых людей в проект.
Отладчиком пользоваться умею, впрочем как и читать код. Проблема в том что я слишком часто возвращаюсь к типичным мыслям юных разработчиков — переписать всё нафиг (хотя сисадминский опыт из детства кричит с другой стороны, что «работает, не трогай»). И начинаю часто отвлекаться на мелочи типа, вот тут надо по ссылке передать, а не shared_ptr плодить, вот тут сырые указатели, тут нет const, тут класс надо разбить на несколько, чтобы SOLID получился, там метод слишком длинный, сложный для отладки и т.п. Всё это в целом мешает главному — пониманию общей архитектуры проекта и уже более детальному пониманию каких-то узлов.
Были прецеденты.
Дали «рабочий» проект на Go, я его не смог собрать с первого раза.
Пришлось разбираться.
Оказалось использовалась сторонняя библиотека, которая использовала другую библиотеку, в которой поменялся контракт всех функций.
Ребята похоже только «экспериментировали» с Go.
Поэтому передали только свой код.
А не все модули которые использовали.
Вроде бы во второй версии все таки собираются ввести модули-ад :-)
Перл. Сокращает время чтения чужого кода до нуля.
В зале никто не имел дела с MUMPS?И что, неужели не нашлось ни одного кашиста?
hsto.org/webt/ph/nd/dz/phnddz_a5-tf5geadix29hzb8sm.jpeg
следовало бы заменить на a.d-cd.net/j0AAAgODUOA-1920.jpg
У нас всё-таки разные cultural references
Ctrl-Alt-Del: учимся любить легаси-код