kvisaz (kvisaz) wrote,
kvisaz
kvisaz

В кубикле гремел молоток программиста...

- Слышь, что там за грохот?
- Это программист костыли забивает.

Цитата из интервью с системным Java-программистом:

— А почему тогда такие вещи происходят? Одним из критериев хорошего дизайна принято считать локальность: чтобы ликвидировать проблему, хочется нужно копаться в одном месте, а не в десяти.

— Это все прекрасно работает на бумаге. В реальности случаются две вещи: во-первых, когда ты начинаешь гнаться за перформансом, то, оказывается, что необходимо, чтобы абстракции протекали в каких-то отдельных местах, потому что именно так получается выигрыш. А во-вторых, всплывают баги.

Ты что-то знаешь о платформе, о том, как платформа себя ведет, что процессор, например, точно пересылает из регистра в регистр, когда ты говоришь ему «move». Если ты основываешься на этом предположении, ты можешь написать красивый компилятор, но тут внезапно оказывается, что в процессоре есть ошибка. Что ты будешь делать для того, чтобы это исправить? Ты вбиваешь в кодогенератор костыль. Потому что это практическое решение практической проблемы.

— И если у клиента стоит ферма, а на ферме 1000 битых процессоров...

— Если читать исходники HotSpot JVM, то можно увидеть там разные ужасы и самое главное — многие из этих ужасов подписаны. Например, можно встретить комментарии в духе «вот этот код написан уродски, но он написан уродски по таким-то причинам».

— А это правило вообще соблюдается?

— Обычно соблюдается. Когда ты фиксишь такие баги, от тебя ожидается, что ты напишешь, почему собственно ты сделал такую иезуитскую штуку.

И в таких местах обычно написано что-то вроде: «Наивный человек мог бы предположить, что здесь можно было написать иначе. Но здесь нельзя написать иначе, потому что преобразования в том-то месте сделают этот граф такого-то вида. И вообще пойдите и прочитайте по этой ссылке баг, там увидите пятнадцатистраничную эпопею о том, почему эта штука не работает так, как она должна была бы работать». То есть такие вот мелкие детали. -----

(С) http://habrahabr.ru/company/jugru/blog/268847/

Грохотом навеяло.
Tags: программирование
Subscribe

  • Самооценка невыспавшегося человека

    Петер Шпорк "Сон. [Почему мы спим и как нам это лучше всего удается]" - книга немецкого врача сомнолога 2010 года. Книга, которую полезно…

  • The Great Horse Manure Crisis of 1894

    Из той же книжки - в 1894 в Нью-Йорке случился великий кризис лошадиного навоза (The Great Horse Manure Crisis of 1894) Чтобы не травмировать, я…

  • От паровой энергии до наших дней

    Книжка "Энергия. История человечества" - она действительно не только про Британию. Это в первой части, про возникновение парового…

  • Post a new comment

    Error

    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 6 comments