kvisaz (kvisaz) wrote,
kvisaz
kvisaz

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Докладываю, боязнь белого листа выжжена напалмом

    Любите ли вы запах напалма по утрам? Это запах, мммм.... бесстрашия! Бесстрашия перед белым листом. Написав 19 рассказов за 19 дней, докладываю -…

  • Примета и теория

    Если пытаешься описать "фильм" - в 10 тыщ не уложишься, вырвешься. Для коротких рассказов нужно придумывать "анекдоты", а не "фильмы". То есть…

  • 100 логотипов за 100 дней

    Дизайнер хорватский рисует 100 логотипов за 100 дней, каждый день - по лого Пост на русском Все работы -…

  • 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