Главное — чтоб самому нравилось

вторник, 31 мая 2011 г.

Топ 7 плохих привычек программистов (первый блин)

Сам не знаю зачем, решил попробовать себя в жанре перевода письменных текстов. Сначала хотел перевести субтитры к QI, но очень быстро на этом сломал себе зубы. Очень часто встречается игра слов, и мне явно не достаёт знания английского контекста. Бывает, чтобы понять какую-то шутку от Фрая, нужно по полчаса копаться в Википедии. О том чтобы передать её в переводе даже и речи нет.

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

Просьба очень критически отнестись к моему первому блину, и обо всех недостатках, пусть даже они носят оттенок субъективности, пишите в комменты.

Я знаю, тут иногда тусуются очень хорошие знатоки английского, да и предметной области само собой тоже. Поэтому у меня такие вопросы:
1. Правильно ли выдержан стиль?
2. Не много ли отсебятины, и наоборот не слишком ли текст есть не русский.
3. Есть ли явные косяки перевода? Например, фраза “...the complexity of non apparent necessary tasks to fully complete some functionality is ...”, видимо мне так и не покорилась.




Топ 7 плохих привычек программистов
(оригинал)

1. Точка зрения - весь код дерьмо за исключением моего

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

Как это исправить: Не относись отрицательно к коду других людей, который оказался в центре вашего внимания. Попробуй сделать объективное и профессиональное исследование вместо третейского суда. Будь проще и старайся учится у всех вокруг, в надежде на то, что твой код не настолько плох.



2. Трагедия “я мигом исправлю”

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

Как это исправить: Не верь себе при проведении деликатной работы. Попроси кого-нибудь ещё посмотреть на то что ты делаешь. Убедись, что если ты собираешься сделать костыль, ты чётко прояснил для всех заинтересованных сторон какие в этом были причины и какие существуют риски. Заручись поддержкой руководства, всякий раз когда ты заметаешь пыль под кровать, aka “прикрывай свой зад”.


3. Заблуждение “это не займёт много времени”

Барселона мой родной город, поэтому я очень горжусь Собором Святого Семейства, широко известного своей красотой, а также оцениваемым временем до полного завершения строительства (с 1882 года). Но это вероятно потому, что они не попросили программиста дать эту оценку, в противном случае оценка вероятно были бы - где-то около двух недель.

Как это исправить: Во-первых, необходим понимать, что точные оценки при разработке нетривиального программного обеспечения невозможны, ты можешь только предполагать. Также помните, что весьма вероятно, что ты натолкнёшься на очень много обстоятельств которые ты не предвидел, когда начинал разработку, на покрытие которых стоит заложить коэффициент, обычно я использую коэффициент 1.5 или 2.


4. Спираль самомнения

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

Как это исправить: Оставь своё самомнение дома. Завышенное самомнение является одним из самых больных не технических вопросов для любого программиста. Имейте в виду некоторые основные соображения когда ведёте дискуссию.


5. Это не я

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

Как это исправить: Не надо лить слёзы и делать сеппуку (так же известного как харакири) когда мы допустили ошибку. Имея здоровое отношение, мы можем сказать что-то вроде: “Ну да, извиняюсь, теперь нам нужно исправить эту проблему, моя оплошность”. Это очень профессиональное отношение к делу. И это поможет тебе создать репутацию и лучше смотреться в глазах коллег.


6. Демотивированные гении

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

Как это исправить: Дисциплина. К сожалению не приходит в голову другого средства.


7. Преждевременный программист

Если бы программирование было сексом, у нас была бы куча неудовлетворённых компьютеров. Ты просто не делаешь свою работу, бросаешь дело на полпути и завалишься спать. Я считаю, что одна из концепций, которая напрягает программистов, это концепция: “Готово”. Запомни, готово это значит: протестировано (не только на юнит тестах), задокументировано, закомичено, смёрджено...

Как это исправить: Здесь не без хитростей. Сложность не очевидной необходимости полного завершения какой-то функциональности достаточно высока, и требует дисциплины и подготовки. Возможно два самых простых способа помочь программисту понять готов ли его код, это ревью и демонстрационные версии.


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

9 комментариев:

  1. Пункт 2

    To take a shortcut - я думаю, что это означает "сделать подпорку", "вбить гвоздик", "подхачить", или что-то подобное. Вроде бы речь идет именно об этом "приёме", который может быть сделан за минут, а потом все будут годами разгребать последствия. Я вижу это каждый день и могу только согласиться с этим советом. Никогда (или почти никогда) не делайте подпорки, гвозди, хаки и прочую хрень. Ключ - хороший дизайн. Если дизайн хорош - хаки не требуются. Если же дизайн ни в жопу - программировать придётся ТОЛЬКО хаками. Это ужасно. Не стоит проверять на своём опыте...

    ОтветитьУдалить
  2. Пункт 3

    Насколько мне известно, Sagrada Familia Cathedral известен русскоязычному человеку именно как "Саграда Фамилиа". Лично я, по крайней мере, других вариантов не слыхал. "Собор Святого Семейства" уж точно, во всяком случае :)

    ОтветитьУдалить
  3. С пунктом 2 согласен, что-то я недотюхал до этого термина, хотя часто им пользуюсь, ща быстренько подхачим текст :-).

    С пунктом 3 не очень согласен, я слышал именно такое название (Собор Святого Семейства), и гугл тоже показывает больше найденных страничек. Хотя с другой стороны первая найденная ссылка при запросе "Собор Святого Семейства" как раз на страничку в википедии "Саграда Фамилия" :-). Буду думать :-).

    Спасибо за рецензию.

    ОтветитьУдалить
  4. Пункт 4
    ЗамеНить слова на ко-ко-ко :) Вроде так петухи кричат, да? :)

    ОтветитьУдалить
  5. Пункт 6

    Вместо "выдумать" по смыслу подошло бы "приходит на ум". Ну ведь способы он не изобретает, а лишь прелагает пользоваться чем-то, уже известным в "человеческой" истории :)

    ОтветитьУдалить
  6. Про секс можно много написать :)

    You just not go in - ты просто не делаешь свою работу. Сленг, чо :) Я тут не буду понтоваться - весь сленг смотрю на www.urbandictionary.com Из приведённых примеров лично я увидел, что смысл примерно такой. :)
    "Ты просто не делаешь свою работу, бросаешь дело на полпути и засыпаешь." В контексте секса, думаю, такой перевод сохранил бы двусмысленность фразы, подчеркивающую аналогию с сексом :)

    ОтветитьУдалить
  7. One of the concepts that I find most programmers struggling with is the concept of “Done” - я вижу большинство программистов мучаются с пониманием того, когда считать код законченным.

    ОтветитьУдалить
  8. To take a shortcut оказался не так прост
    хоть я в принципе понимаю о чём речь, но никак не могу подобрать термин. Варианты
    "сделать подпорку" - я бы не сказал, что это что-то общеупотребительное, хотя вроде самое подходящее.
    "вбить гвоздик" (или гвоздь) - имхо распространено в совсем узких кругах. И имеет значение скорее близкое к захардкожено (hard coded). Что ни одно и тоже.
    "подхачить", имхо ближе к поднастроить :-).

    ОтветитьУдалить
  9. Ну а в целом - литературный стиль я бы подточил, аккуратно разобрался, где "ты", где "вы", где "мы" и т.д., потому что местами не совпадает :)
    Ну и да, профессиональные переводчики обычно отступают от буквы оригинала с целью сделать фразу на том языке, на который нужно перевести. Т.е. используют местные обороты и часто-используемые повседневные конструкции языка.
    Попробовал найти характерное место где-то в тексте, но растерялся почему-то :) А, вот: “Ну да, извиняюсь, теперь нам нужно исправить эту проблему, моя оплошность” - ну кто так говорит?! Говорят обычно так: "Блин, да, мой косяк, сорри. Щас я переделаю вот это и починю" ;)

    ОтветитьУдалить