Красивый код

Feb 06, 2013 02:17

Помнится был в ксореде один забавный случай. Пришёл чувак на собеседование. Пособеседовали его, неплохой парень. Взял его один из техлидов и повёл рассказывать про специфику работы. И вот рассказывая парню про то, что требуется от кандидата, техлид заикнулся про "красивый код ( Read more... )

code, dev

Leave a comment

ystrot February 6 2013, 14:53:17 UTC
Начнём с твоего примера моего кода. Да, это действительно Code Smell и именно поэтому я изучаю и пишу не только на джаве. Но тем не менее на джаве надо писать именно так, потому что именно этого от неё ожидают. Потому что clarity is better than cleverness. Когда я вижу плагин к эклипсе, который управляет какими-то ресурсами, я ожидаю, что там будет Manager, Provider, Listener, Support и т.д. Для меня это маркер, который позволяет не заглядывая в класс понять, зачем он нужен. То же самое с джавадоками. Так принято. Это более читаемо.

Ты безусловно прав - термин красоты абстрактен и индивидуален. Значит ли это, что он нам не нужен? Давай возьмём какую-нибудь другую красоту, такую же абстрактную и индивидуальную. Например женскую красоту. Я могу сказать - мне нравится эта девушка, потому что у неё 12% подкожного жира, внешность азиатского типа, третий размер груди и вообще я люблю брюнеток. А могу просто сказать - она красивая. И это именно та абстракция, которая правильно выражает мою мысль.

Аналогично с кодом. Один мой друг восхищается красотой Tapestry. Надо ли мне узнавать насколько оно расширяемо, устойчиво к ошибкам и достаточно ли быстро это всё работает, чтобы понять о чём говорит мой друг? Нет, не обязательно. Более того, чем больше ты общаешься и работаешь с людьми, тем лучше ты знаешь их приоритеты в списке качеств, и тем больше для тебя значат те абстрактным термины, которыми они пользуются.

Общую суть моего поста можно перефразировать так: ок, у каждого своё представление о красоте кода, но есть ли у тебя у самого код, которые соответствует этим представлениям?

Reply

tonsky February 6 2013, 15:19:28 UTC
> Аналогично с кодом. Один мой друг восхищается красотой Tapestry. Надо ли мне узнавать насколько оно расширяемо, устойчиво к ошибкам и достаточно ли быстро это всё работает, чтобы понять о чём говорит мой друг?

Ну если языками почесать - не надо конечно. Чем расплывчатее термин, тем горячее спор. В определенной ситуации и состоянии это как раз то, что нужно.

Если же тебе надо выбрать веб-фреймворк, то фраза «он очень красивый» ничего не говорит и только злит. Может, ему просто понравилось, что каждый класс в своей папочке лежит, а остальное он даже не смотрел. Эпитеты дешевы. Вот тут пример того, о чем я говорю (начиная со слов про Redis).

> Общую суть моего поста можно перефразировать так: ок, у каждого своё представление о красоте кода, но есть ли у тебя у самого код, которые соответствует этим представлениям?

Надо было так и написать :)

Reply


Leave a comment

Up