Судя по компетенции - можно ли проглотить лето? - PullRequest
5 голосов
/ 19 мая 2009

Сегодня утром, работая над каким-то ужасным кодом Javascript, я наткнулся на следующее (в нескольких местах):

// make moveAmount negative
moveAmount = moveAmount - (moveAmount * 2);

Я сижу прямо напротив парня, который написал это; он был разработчиком здесь в течение семи лет. Я, с другой стороны, только начал, я довольно младший и не претендую на то, что знаю Джека.

Тем не менее, это заставило меня задуматься о том, как этот парень исходит из простой логики после стольких лет разработки программного обеспечения.

У меня такой вопрос: какое мнение другие здесь могут относиться к общей конкуренции разработчика, который написал это (3 недели назад), или это вообще отражает?

Кто-нибудь укажет на свертку?

Я сам работаю в постоянном страхе, что такие суждения будут вынесены за меня.

Ответы [ 9 ]

30 голосов
/ 19 мая 2009

Простое решение: покажи ему строку кода и спроси, почему он это сделал. Это возможность для вас обоих чему-то научиться. Возможно, была ошибка в браузере или какая-то другая проблема (округление приходит на ум), поэтому код может оборваться без этого. Или он ошибся. В любом случае, вопрос прояснит это.

И хотя вы правы, что другие люди будут судить вас по коду, который они видят от вас, это не только вещь, которую они принимают во внимание (и если это так, то вы работаете в неправильном месте - уходи, пока ты еще в здравом уме). Они также увидят, когда вы вежливы, любопытны, полезны.

Эти вещи значат больше, чем код, который вы пишете: Код можно исправить гораздо легче, чем злые коллеги.

4 голосов
/ 19 мая 2009

Ваш пример может быть плохим кодом, но я видел хуже (в конце концов, есть обстоятельства, когда он будет работать; некоторый код даже не может сказать это). Я думаю, что вы действительно задаете вопрос: есть ли какая-нибудь строка кода настолько ужасная, что это означает, что разработчик может считаться некомпетентным на основании этой одной строки?

Я говорю нет. У меня двое детей, которые были ужасными спящими как младенцы. Я пришел на работу с гриппом. Я был на работе в режиме марша смерти, где я работал двадцать часов подряд. В таких условиях любой может написать ужасную строку кода. (Вот почему таких обстоятельств следует избегать.)

Конечно, я надеюсь, что позже обнаружу ужасный код и исправлю его.

3 голосов
/ 19 мая 2009

Ну, это работает, так что вы бы просто выглядели как ап ****, если бы сказали ему, что вам не нравится этот код, и, вероятно, это правильно :) С другой стороны, он мог бы сделать этот код 7 лет назад как самый первый JavaScript, который он написал , но серьезно никогда не судите кого-то только из одной строки кода.

2 голосов
/ 19 мая 2009

Относительно страха перед судом, расслабься. Это правда, в какой-то момент нас всех будет судить кто-то, будь то какой-то заостренный босс или злобный маленький выскочка. Я думаю, что главное в том, как извлечь из каждой такой встречи что-то полезное.

Очевидно, что будут люди, цепляющиеся за вещи ради этого, но вы также найдете много похожих ситуаций, где есть чему поучиться.

Предложение выше, чтобы начать диалог с вашим коллегой, превосходно; он может напрямую влиять на такую ​​встречу, из которой любой из вас или оба могут узнать что-то важное.

1 голос
/ 19 мая 2009

Я говорю, что это будет зависеть от ласточки. Если он изолирован, то строка кода, которую вы показали, - это то, что я ожидаю от изнуренного программиста, даже если он очень компетентный. Это пример того, что просто не очень умные и уставшие люди делают не такие умные вещи. Если, с другой стороны, такой код часто появляется, то, вероятно, вы работаете с кем-то с извращенным умом.

Вещи, которые являются очевидными признаками плохого программиста, связаны с плохой практикой. Хорошие программисты не будут делать огромных методов. Даже уставшие, они будут стараться, чтобы их типы были слабо связаны. Они будут избегать выставления открытых полей вместо того, чтобы выставлять их через методы доступа или свойства. Они будут пытаться наследовать и агрегировать как формы повторного использования кода, а не повторять копирование-вставка ... Список длинный. Именно такие ласточки заставляют меня почти сразу почувствовать, что сейчас лето. : -)

1 голос
/ 19 мая 2009

Поскольку он написал это 3 недели назад, я бы сказал, что он должен быть открыт для критики этой строки. Это показывает незрелость, которая действительно непростительна после 7 лет профессиональной деятельности.

Если бы он хотя бы сделал это:

moveAmount -= moveAmount * 2;

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

Я не думаю, что вы всегда можете судить людей по одной строке, но код может рассказать вам так много о способностях человека, что одна строка может многое рассказать о человеке.

1 голос
/ 19 мая 2009

Если он написал это, когда начинал, он получал пропуск. Если он написал это недавно, он получил большие пальцы от меня. Общая компетентность разработчика определенно сомнительна.

Другие говорят, что вы не можете судить о разработчике по одной строке кода, но я говорю, что это, безусловно, может поставить под сомнение его компетентность. Я не предлагаю вам делать поспешные выводы, но этот тип кода в лучшем случае является свидетельством посредственного разработчика.

... а это связано с переутомлением, стрессом или чем-то еще ... суть в том, что качество кода важно. Если он написал такую ​​строчку, как это, что еще могло быть написано, что не так легко выделяется?

1 голос
/ 19 мая 2009

это поведение отличается от mountAmount = -moveAmount в случае, когда 2 * moveAmount может вызвать переполнение, если moveAmount было достаточно большим (например, 2 ^ 32-1).

Я не знаю, было ли это его намерением.

1 голос
/ 19 мая 2009

Соблазнительно найти один пример и обобщить информацию о разработчике, но если у него нет опыта такого рода глупостей, я бы счел это единичным инцидентом. Просто спросите его, почему он не написал:

moveAmount = moveAmount * (-1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...