Новый программерский жаргон

Original author: stackoverflow.com
  • Translation
Посетителям сайта stackoverflow.com был задан вопрос: «Какие программерские термины вы придумали, так чтобы они стали популярны в ваших кругах (то есть вы слышали, что кто-то их повторяет)?

Ниже — вольный перевод самых популярных ответов.


Условия Йодa (Yoda Conditions)
написание условия в виде if(constant == variable) вместо естественного if(variable == constant), например, if(4 == foo). Потому что это похоже на „если голубое — это небо“ или „если высокий — это человек“.
if (5==count)



Покемонная обработка ошибок (Pokémon Exception Handling)
Когда вы ловите все ошибки и потом пытаетесь их как-то анализировать.
        try{
            //code
        }catch ( Exception ex){
            if( ex instanceof SubException){              
                //code
            }else if(ex instanceof SubSubException){
                //code
            }else{
                //code
            }
        }


Обсуждения примера здесь.



Египетские скобки (Egyptian brackets)
Это тот стиль скобок, когда открывающая скобка ставится в конце текущего ряда:
if (a == b) {
    printf("hello");
}


Почему мы назвали этот стиль „Египетскими скобками“? Сравните расположение скобок с расположением рук на этой картинке:


(Этот стиль скобок использовался в известной книге Кернигана и Ричи (Kernighan and Ritchie) „C Programming Language“, поэтому он также известен как стиль K&R).



Различные виды баг-репортов (отчётов об ошибках)

Самодовольный отчёт (Smug Report) — ошибка, присланная пользователем, который думает, что знает о системе немножко больше, чем он на самом деле знает. Как правило, такой отчёт наполнен техническими деталями, не относящимися к делу, и несколькими предположениями (всегда неправильными) о том, что может быть причиной ошибки и как это исправить.

Кислотный отчёт (Drug Report)
Настолько непонятный/непостижимый отчёт, что тот, кто его писал, должно быть, чего-то не того покурил. Более сильная вариация — пыхтотчёт (Chug Report), создатель которого, должно быть, перекурил.

Безразличный отчёт (Shrug Report) — отчёт, не содержащий никаких деталей ошибки или шагов для воспроизведения, а только расплывчатое описание проблемы. Обычно содержит фразу „не работает“.





Утка (A Duck)
Функциональность, добавленная с одной-единственной целью: привлечь внимание руководства и быть удалённой, что позволяет избежать ненужных изменений в других частях системы.

Этот термин изначально появился как часть корпоративной культуры компании Interplay. Было хорошо известно, что продукт-менеджеры непременно хотели внести изменения абсолютно во всё, что производилось компанией — иначе они чувствовали себя так, будто они не приносили пользы.

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

Когда пришло время сдачи, продукт-менеджер просмотрел всю анимацию и сказал: „Выглядит отлично. Только одно замечание — уберите утку.“





Рефукторинг (Refuctoring)
Это когда вы берёте хорошо продуманный кусок кода и с помощью последовательности небольших обратимых преобразований превращаете в нечто абсолютно непонятное никому, кроме вас.



Строкотипизированный (Stringly Typed)

Отсылку к термину „строготипизированный“ (Strongly typed).
Используется для описания имплементации, которая напрасно использует строки, в то время как есть более подходящие типы, которые удобнее использовать для программирования и рефакторинга.

Бывает, что в некотором методе действительно необходимо использовать строковой параметр (например, при вызове сетевого сервиса). Но затем строка передаётся и используется во всей последующей цепочке вызовов вместо того, чтобы сначала трансформировать строку в более подходящее внутреннее представление — например, создать перечисление (enum).

Массовая „стринготипизация“ обычно приводит к трудночитаемому коду, который „детонирует“ во время исполнения, хотя обычно такую ошибку сразу находит компилятор.





Оформление Doctype (Doctype Decoration)
Это когда веб-дизайнер добавляет в начало страницы объявление DOCTYPE, но не заботится о том, чтобы сделать HTML действительно корректным.



Гейзенбаг (Heisenbug)
Ошибка, которая — по аналогии с принципом неопределённости Гейзенберга в квантовой физике — исчезает или видоизменяется при попытке ее выявления.





Джимми (Jimmy)
Обобщенное название для невежественного / нового разработчика.

Мы старались разрабатывать компоненты системы так, чтобы они требовали от других разработчиков минимальных знаний о том, как они работают. Мы всегда формулировали наш вопрос в духе: „Что если Джимми забудет задать значение атрибута?“

Так появился термин: „Джимми-стойкий“ (Jimmy-proof), описывающий хорошо продуманной код.





Багзон Хиггса (Higgs-Bugson)
Гипотетическая ошибка, существование которой предсказано на основании небольшого числа (возможно) связанных записей в логе и расплывчатых анекдотичных сообщений от пользователей, но которую трудно (если вообще возможно) воспроизвести на машине разработчика, потому что невозможно узнать, существует ли она на самом деле, и существует ли то, что её вызвало.

Отсылка к Бозону Хиггса — теоретически предсказанной элементарной частице.



Тупить (nopping)
Сложнопереводимая игра слов на английском. Nopping происходит от команды ассемблера NOP, означающей „пустую“ (ничего не делающую) операцию. Похоже на „nap“ (вздремнуть), но не обязательно означает спать, а всего лишь „отключаться, становиться невнимательным, рассеянным“.

Пример: Некоторое время Стас сидел, пялился в скринсейвер и тупил (nopping).




Другие виды ошибок
Гинденбаг (Hindenbug)

Ошибка, вызывающая катастрофическое разрушение данных — »О человечество!"
Отсыл к дирижаблю Гинденбурга (нем. Hindenburg), взорвавшемуся в воздухе.

Counterbug

Ошибка, которую вы представляете, когда встречаете ошибку, вызванную человеком, представляющим ошибку (?).

Блумбаг (Bloombug)

Ошибка, которая случайно генерирует деньги.
Возможно, это отсылка к компании Блумберг.



Единороговый (Unicorny)
Прилагательное для описания функции, которая находится в настолько ранней стадии планирования, что может быть мнимой. Мы подсмотрели это слово в речи Yehuda Katz, который использовал ее в своем заключительном докладе на прошлогодней Windy City Rails для описания некоторых будущих особенностей Ruby on Rails.

Барак Обама (Barack Obama)
Аккаунт в системе учёта тасков, на который что мы записываем все тикеты (таски), которые мы очень хотели бы сделать, но на которые мы вряд ли когда-нибудь получим разрешение.





Лохнесский баг (Loch Ness Monster bug)
Ошибка, которая не повторяется, и которую видел только один человек.




Код-пахлава (Baklava code)
Код, в котором слишком много слоёв.
alt text



Обходимость (Workaroundability)
Это чувство, когда уже взломанный подход всё еще может или не может быть взломан дальше. (кто может предложить лучший перевод?)

Разработка, основанная на страхе (Fear Driven Development)
Когда менеджмент усиливает давление (увольняет кого-нибудь).
alt text



Общеправовая функциональность (Common Law Feature)
Ошибка в приложении, которая существовала так долго, что теперь является частью ожидаемой функциональности.

Видимо, отсыл к "общему праву", основанному на прецендентах.



Бикремент (Bicrement)
Добавление 2 к значению переменной.



Термины, образованные от еды:
Программерское топливо (Programmer fuel)
Лимонад Mountain Dew, кофе — в общем, всё, что наполняет вас кофеином.

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

Горячая картошка / горячие картошки (Hot potato / Hot potatoes)
Соответственно Http и Https (как вы понимаете, это чисто английская игра слов). То же количество слогов, но произность проще и веселее.

Посылать всю информацию о клиенте через сервис авторизации по адресу «hot potatoes»://имя-компании.com/auth

Торт (Cake)
Зависит от контекста, обычно обозначает какое-то действие над существительным. Это существительное должно состоять из одного слога для облегчения общения.

(примеры сложно переводимые)

Бананы, бананы, бананы (Banana banana banana)
Текст, который пишут в том месте, где документация должна быть, но ещё не написана. В основном используется для борьбы с такими тулами, которые проверяют обязательное наличие документации (например, SVNStyleCop в C# или FxCop в C++).

/// <summary>
/// banana banana banana
/// </summary>
public CustomerValidationResponse Validate(CustomerValidationRequest request, bool useStrictValidation, bool throwIfSessionExpired)


Сальса Чанки (Chunky salsa)
Произошло от правила сальсы чанки. Одна-единственная ошибка, которая делает всю систему неработоспособной.

Вся система превратилась в сальсу чанки после того, как Боб изменил страницу логина, обломав всем возможность войти под своим аккаунтом.





Squizzle-giz
Ужасно произносимое расширение файла .sql.gz

Когда мы настраивали сервер, мы задолбались произносить сто раз «дот эс кью эл дот гэ зэ» и решили придумать слово, которое произносилось бы легче и веселее.
(Если я правильно понимаю, «Squizzle-giz» дословно переводится как «хромые объятия» или «объятия сексуального парня»).



Бл#дский код (Hooker Code)
Проблематичный код, который является причиной нестабильности приложения: приложение часто «падает». Английская игра слов: выражение «go down», помимо «падать», имеет также смысл «оральный секс».




Реальная ошибка 101 (Reality 101 failure)
Программа делает в точности то, что требовалось, но когда её начинают использовать реальные клиенты, выясняется, что постановку задачи понимали неправильно, и программа в принципе бесполезна.



Гидрокод (Hydra Code)
Код, который не может быть исправлен. На месте одной исправленной ошибки вырастают две новые.




Протодукция (Protoduction)
Прототип, который дошёл-таки до конечного пользователя.




Комментарии ниндзя (Ninja Comments)
То же, что отсутствие комментариев

Мне всё-таки пришлось написать реальный комментарии, так как моих комментариев-ниндзя было недостаточно.




Разговоры с резиновой уткой (Rubberducking)
Иногда вам просто нужны выговориться, чтобы решить проблему. Лично я в таких случаях шёл к начальнику и объяснял суть проблемы, сам задавал вопросы, сам на них отвечал, и выходил из кабинета начальника с готовым решением. При этом начальник мог так и не сказать ни слова.

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

Базаданново (Databasically)
Используя базу данных для хранения информации.
«Давай я занесу имена всех клиентов в вордовский документ» — «Нет, мы должны сделать это базаданново, чтобы мы смогли постоянно обновлять эти данные».

Автор этого термина утверждает, что назвал так свою компанию.




Смурфовые правила наименования (Smurf Naming Convention)
Когда почти все классы имеют один и тот же префикс. Например, когда пользователь нажимает кнопку, класс SmurfAccountView передаёт объект SmurfAccountDTO классу SmurfAccountController. Используя иждентификатор SmurfID, из базы загружается объект SmurfOrderHistory, который в свою очередь передаётся классу SmurfHistoryMatch и далее либо в SmurfHistoryReviewView, либо в SmurfHistoryReportingView. Если случается событие SmurfErrorEvent, то оно логируется с помощью SmurfErrorLogger в файл ${app}/smurf/log/smurf/smurflog.log



Мегамот (Megamoth)
Расшифровывается как МЕГА МОнолитный меТод.
Часто содержится в Богообъекте (God Object) и обычно переваливает за два экрана по высоте. Встречаются даже мегамоты в 2 тысячи строк. Берегитесь мегамотов!





apt-got и wgot
обозначает программы, инсталлированные (в Unix) с помощью команды apt-get и файлы, скачанные с помощью команды wget.

Примеры адекватны только по-английски:
«I apt-got 100MB of updates this morning»
«Once this loop has wgot that file, it takes the md5 hash»

Это часть первая. Продолжение следует.
Осталось ещё много интересных терминов. Не переключайтесь!

Ads
AdBlock has stolen the banner, but banners are not teeth — they will be back

More

Comments 193

    +6
    Теперь я знаю варианты названий «хорошего» кода написанного знакомыми :)
      +34
        +2
        Это для тех кто пропустил старую статью ;)
          +6
          Во-во… Каждые пол-года теперь будем перепощивать?
          +1
          Нада бы это распечатать и повесить на стену
            +2
            Чудесно, хоть и не всегда переводимо.

            Мои термины:
            «расшаблонивание» — инстанциация шаблона C++.
            «завиртуалить» — превратить в виртуальный метод.
            «аниматорщина» — анимация, пристроенная настолько не к месту, что мешает играть. Обычно долгая анимация там, где реакция должна быть мгновенной.
            «недоаниматорщина» — плохая анимация, которая ещё и играть мешает.
            «кофеиновая бомба» — то, что проггер пьёт литрами, когда кодит.
              +10
              Дальше…
              «сбросить бомбы» — сдать код на svn в конце дня.
              «сточная канава» — трейдеры (почему-то именно они) предъявляют к ПО кучу специфических требований, которые очень муторно программировать. От «stock exchange».

              Не моё, но нравится.
              «кавалер ордена Флюгера» — начальник, который вечно меняет требования.
                  +17
                  Ваши издевательства над русским языком вызывают отвращение. Особенно попытки скрестить его с английским такими способами, какие и в «Камасутре» не встретить…
                    +10
                    Ради интереса залез глянуть вашу карму, и поразился. Вот оно, истинно нейтральное мировоззрение (true natural alignment), при почти 2500 голосов, карма около 0.
                      +17
                      Зато весьма и весьма приличный рейтинг.
                      Довольно часто это признак оригинально и независимо мыслящего человека на Хабре, давно заметил.

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

                      Когда Mithgol только появился на Хабре, я сгоряча поставил ему плюс. Потом пожалел, что поставил. Потом пожалел, что пожалел. Потом пожалел, что нельзя ему ставить все имеющиеся у меня плюсы, чтобы его не затоптали. Потом понял, что его есть кому пожалеть. Сейчас начинаю понимать, что он в жалости не нуждается. Начинаю жалеть себя :)

                      Мы привыкли говорить «сделай морду попроще, и люди к тебе потянутся». Но разве плохо, что кто-то имеет своё лицо среди простых морд? Пусть даже и не слишком привлекательное :)
                        +2
                        Обычно таких людей называют маргиналами :)
                        Я тоже сначала с ним согласился, затем не согласился, в итоге мне пофиг :).
                          +2
                          Скорее правильнее называть таких людей девиантами. Маргинал скорее отрицательное обозначение отбросов общества, а Сергей Юрьевич, несмотря на свою эксцентричность и некими кардинальными взглядами, таковым не является.
                            0
                            Да про девиантов тоже хорошего мало говорят. Впрочем, что девиант, что маргинал — и то, и другое может иметь как отрицательные, так и положительные последствия. Маргиналы не обязательно на дно опускаются. Если их много, так они вообще до революции могут докатиться. Монархическая революция — это было бы круто. А там и реформа языка, как же без неё :)
                            0
                            Интересное понятие, благодарю за наводку, я как-то давно его уже подзабыл… а может и не знал никогда толком :)

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

                            Интересно ещё и то, что одна культура как бы искусственная, расконсервированная из пыльных томов. Практически вымершая, как латынь. Островки ещё наверное остались за рубежом, но вряд ли Mithgol из бывших дворян-островитян.
                    0
                    Про типы багов отдельное спасибо. Раньше думал что их 3, оказывается больше.
                      +5
                      Барак Обама рулит :)
                        +11
                        Между прочим «Yoda Conditions» — таки неплохая вещь. В этом случае можно забыть про ошибки, когда вместо проверки "==" случайно пишешь присваивание "=". И хоть большинство компиляторов ругается на присваивание в качестве условия, все же не лишне подстраховаться
                          +17
                          Мне больше нравится её использование в другом кейсе:
                          По аналогии с математической записью предпочитаю писать:
                          if (4 < variable && variable < 8)

                          Хотя такая вещь на любителя.
                            +1
                            Отличный пример фундаментального недостатка инфиксного синтаксиса. Несколько лет назад в рассылке языка D пытались заставить работать запись 4 < variable < 8, но так и не придумали как. А с префиксной всё просто:

                            (< 4 variable 8)
                              +1
                              Недостаток, но всё же не такой фундаментальный. Хотя я бы с радостью писал везде 4 < variable < 8
                                +12
                                В Питоне так можно.
                                  0
                                  Посмотрел документацию. У них сравнения реализованы через нерекурсивное правило. Это сработает, но простыми LL/LR парсерами такой синтаксис уже не разобрать без серьёзных костылей. А ещё говорят, в питоне простой синтаксис. :]
                                    +5
                                    И главное аватар при этом такой хитро-довольный))
                                • UFO just landed and posted this here
                                    +3
                                    Функция < определятся как «возвращает true, если аргументы упорядочены строго по возрастанию, flase в других случаях».
                                +1
                                Нужно уточнять что Yoda Conditions актуальны только для C/C++.
                                  +2
                                  PHP?
                                    +7
                                    Для C и языков с C-подобным синтаксисом.
                                      0
                                      Не совсем так, скорее для языков, в которых в блоке if может быть не только булевское выражение.
                                      Просто такое есть и в не с-подобных языках, и в некоторых с-подобных напротив, такого нет.
                                        0
                                        Тут есть более фундаментальное описание, чем «для языков, в которых в блоке if может быть не только булевское выражение»

                                        Суть в том, что в некоторых языках операция присваивания возвращает какое-то значение (обычно значение самой левой переменной от знака присваивания, а в некоторых не возвращает.

                                        Т.е. в PHP (C, JS etc) например код
                                        print $a="Привет, Мир";
                                        напечатает приветствие, а в Python
                                        print a="Привет, Мир"
                                        ничего не напечатает.
                                    +6
                                    Не только: if ("text".equals(str)) {...} актуально в Java на случай, если str окажется null.
                                      0
                                      И часто используется, кстати
                                      0
                                      Не только. Присваивание в условии можно, например, в перле поставить.
                                        +1
                                        ecmascript?
                                          0
                                          В тестах у меня кругом:
                                          assert 8 = some.cryptic['interface'](doing="stuff") in line

                                          Чтобы сразу видеть ожидаемое значение без проглядывания всего кода.
                                            +1
                                            Это на каком языке строчка кода?
                                              0
                                              python.

                                              там в = ошибка, против которой собственно YC и направлен. Впрочем пофиг, ибо там _eq(8, ....) из nose везде.
                                            0
                                            if bla = bla1 then begin
                                            bla1:=bla2;
                                            end;

                                            По-моему, похоже.
                                              0
                                              В том-то и дело, что Yoda Conditions актуальны только для C/C++, но люди зачем-то используют их и в других языках, в частности, в Java.
                                                0
                                                ну, с небольшой модификацией они более чем актуальны в Java:
                                                if(«Tommy».equals(name)){...}
                                                +2
                                                Еще в яве имеет явный смысл использовать обратный порядок для equals — исключает null pointer exceptions.
                                                  +1
                                                  У WordPress, вроде как это часть стандарта кодирования, хотя у них там в коде черт ногу сломит. core.svn.wordpress.org/trunk/wp-includes/functions.php
                                                  +2
                                                  Дежавю на статью…
                                                  Точно.
                                                  Жаргон программистов
                                                    0
                                                    multitran.ru/c/m.exe?CL=1&l1=1&s=chunky

                                                    Думаю, имеется виду мелко порубленная.
                                                      +22
                                                      сделайте меня развидеть .exe в урле
                                                        +21
                                                        Вы так говорите, как будто cgi это что-то плохое
                                                          0
                                                          Это в вас говорят рефлексы не запускать exe из интернета.
                                                        +5
                                                        >Squizzle-giz

                                                        Мы это на одной конторе часто называли «Мускул-гусь». ))
                                                          0
                                                          Забавная статья.
                                                            +3
                                                            «Залипуха» — фикс, который написан для быстрого решения какой-то муторной проблемы и (по идее) должен быть в скором времени заменен на вменяемое решение (чего почти никогда не происходит). «Заглушка», в какой-то мере.
                                                              +3
                                                              Полностью термин звучит как «Имплементировать интерфейс залипуха»
                                                                0
                                                                «Костыль» не оно же?
                                                                  0
                                                                  monkey patch называется.
                                                                    +1
                                                                    У нас это называлось «прибить гвоздями».
                                                                    +2
                                                                    «ойка» — ойгукн, т.е. jquery. Появилось из-за лени менять раскладку.
                                                                    Странно, но больше почему-то в голову сейчас не приходит, хотя наверное 3 часа ночи, без кофе мозг уходит в сон
                                                                      +5
                                                                      «Черепашка» — TortoiseSVN
                                                                        +2
                                                                        Черепашка — это Лого, по крайней мере, в моем детстве было так.
                                                                        +13
                                                                        Сговнякал — сделал высококачественный прототип.
                                                                          +1
                                                                          Наколбасить — написать кучу кода, потенциально содержащего множество ошибок, и не протестировать его.
                                                                          +8
                                                                          Workaroundability — возможность/невозможность подпереть что-либо ещё одним костылём.
                                                                            +5
                                                                            >>Код-пахлава (Baklava code)
                                                                            лучше называть лазанья код, как родственник спагетти кода.
                                                                              0
                                                                              У лазаньи слоёв в самый раз для хорошей архитектуры. Вот у пахлавы — слишком много и они *прозрачные*.
                                                                              +2
                                                                              Workaroundability — свойство кода, когда в случае обнаружении в нем ошибки, можно найти простой способ обойти ее, в случае обнаружения ошибки в обходном пути можно обойти и эту ошибку, причем наткнувшись на ошибку в этом обходном пути, ее можно легко обойти…
                                                                                0
                                                                                Свойство кода, при котором любая возможная ошибка может быть обойдена — так короче.
                                                                                +5
                                                                                «вибрировать» — про манагеров, которые переживают насчет сроков
                                                                                «подземный стук» — невоспроизводимый баг
                                                                                «заоопешить» — переписать, согласно ООП-парадигме
                                                                                «пхпшер» — пренебрежительное название php-программиста
                                                                                  +8
                                                                                  Ошибка, которую вы вы представляете, когда встречаете ошибку, вызванную человеком, представляющим ошибку.

                                                                                    +1
                                                                                    Рекурсия?
                                                                                    +1
                                                                                    Картинки ржачные =)
                                                                                      +10
                                                                                      Rubberducking +1…
                                                                                      У меня была собака, которая умела слушать, кивать и издавать звуки в нужных местах. После его смерти я до сих пор не могу полностью «войти в струю» — не могу найти настолько же благодарного слушателя :-(
                                                                                        +4
                                                                                        Reality 101 failure — несовместимость с жизнью.

                                                                                        <Название предметной области> 101 — вводный курс в <предметную область>.
                                                                                          0
                                                                                          Лучше — «Ошибка реальности 101»
                                                                                          +6
                                                                                          костылезация — кастомизация, сделанная через одно место

                                                                                          но вижу, что гугл уже наслышан об этом слове :(
                                                                                            0
                                                                                            «Пахлава код» еще где-то называли как «лазанья код». Может и в оригинале :)
                                                                                              0
                                                                                              Лазанья лучше имх т.к. обыгрывает другой тип того же самого (VS спагетти).

                                                                                              См. также Ajax VS Comet
                                                                                              +5
                                                                                              «эксгибиционисты» = «фашисты» = флэшисты
                                                                                            • UFO just landed and posted this here
                                                                                                0
                                                                                                А ещё удобно писать 0 == strncmp(«какие-то очень длинные параметры»).
                                                                                                Удобнее воспринимать, когда 0 и strncmp рядом.
                                                                                                +7
                                                                                                Не пойму кто назвал K&R (так же он известен как «The One True Brace Style») египетскими скобками Х_х
                                                                                                  +1
                                                                                                  Computronium из Австралии
                                                                                                  0
                                                                                                  Близким термином к «рефукторинг» является «рехакторинг».
                                                                                                    +5
                                                                                                    реФАКторинг
                                                                                                      +6
                                                                                                      факапторинг.
                                                                                                        +2
                                                                                                        Рефакинг, помоему, лучший вариант.
                                                                                                      0
                                                                                                      ретрахторинг
                                                                                                        +1
                                                                                                        Ретракторинг — это когда в очередной раз переезжаешь на зарубежный хостинг.
                                                                                                      +9
                                                                                                      > Ошибка в приложении, которая существовала так долго, что теперь является частью ожидаемой функциональности.
                                                                                                      О да, это явно про WinAPI (:
                                                                                                        +3
                                                                                                        хоть один пример можно?
                                                                                                        +2
                                                                                                        про Jimmy порадовало :)
                                                                                                          +8
                                                                                                          А я давным давно пишу Египетскими скобками )
                                                                                                            +3
                                                                                                            Я болел этим. И излечился.
                                                                                                              +2
                                                                                                              а чем это плохо? по мне так удобней тем что освобождается строка
                                                                                                                0
                                                                                                                Я не могу читать такой код. Просто не могу, не получается. Он ужасен. Не могу по другому объяснить. А еще когда скобки на одной вертикали проще издалека увидеть кусок кода %)))
                                                                                                                  +1
                                                                                                                  Я тоже пишу египитскими скобками и ничего плохохо в этом не вижу, наоборот больше строк помещается на экране
                                                                                                                    +3
                                                                                                                    хм… для меня такой кусок кода:

                                                                                                                    someName (bla,bla) { // тут иногда вставляю однострочные комментарии
                                                                                                                    lala;
                                                                                                                    lulu;
                                                                                                                    }

                                                                                                                    выглядит из далека как цельный кусок кода =)
                                                                                                                    причем цельным именно потому что не просто скобки видны и нужно на строку вверх смотреть чтобы увидеть весь кусок, а в него сразу входит и функция/оператор, т.е. с него и начинается, а закрывающей скобкой собственно завершается.
                                                                                                                      +1
                                                                                                                      блин там пробелы вырезались правда… в общем перед lala и lulu есть отступы )
                                                                                                                        –14
                                                                                                                        Я еще пишу так:
                                                                                                                        
                                                                                                                        void someName()
                                                                                                                                   { bla = 0;
                                                                                                                                      bla2 = 0;
                                                                                                                                   }
                                                                                                                        

                                                                                                                        но только в хедерах при объявлении класса и для инлайн функций, очень удобно и наглядно
                                                                                                                        +2
                                                                                                                        Поддерживаю! Страстно ненавижу египетские скобки.
                                                                                                                          +1
                                                                                                                          На ЛОРе однажды был замечательный топик где человек выбирал на всю жизнь язык исключительно по стилю именования идентификаторов. Поржали. :)
                                                                                                                          +1
                                                                                                                          А меня вот тошнит с GNU coding style
                                                                                                                            +2
                                                                                                                            >А еще когда скобки на одной вертикали проще издалека увидеть кусок кода %)))

                                                                                                                            А зачем смотреть на код издалека? :)

                                                                                                                            А вообще в человеческих редакторах есть как подстветка парных скобок, так и индикаторы отступов, так что блоки прекрасно видно вне зависимости от того, как поставлены скобки.
                                                                                                                              0
                                                                                                                              а я код, написанный иначе, не могу читать. не получается.
                                                                                                                          +2
                                                                                                                          в java — это стандарт, а например в c# — нет. лучше пользоваться стандартным форматированием в среде. ведь расположение скобок не дает никаких преимуществ
                                                                                                                          +2
                                                                                                                          я бы «кислотный» отчет всеже переименовал в «наркоманский»
                                                                                                                          • UFO just landed and posted this here
                                                                                                                            +9
                                                                                                                            «Феншуй» — неопределенный набор правил, подходов и методов, не задукоменнтированный, но неосознанно принятый большинством команды разработчиков. Традиционно хранитель феншуя — архитектор. Новые члены команды, даже опытные и технически грамотные, по-определению феншуя не знают.

                                                                                                                            Например, по феншую отступы в процедурах надо делать в 4 пробела, имена переменных начинать с маленькой буквы и т.п. Если новый разработчик начнет добавлять процедуры с отступами табами и переменными с большой буквы — такой код будет работать, но смотреться инородно в общем проекте. Осторожно, от фразы «а у меня свой феншуй» изменяется форма лица.
                                                                                                                              0
                                                                                                                              Феншуй — это классный термин!
                                                                                                                              +3
                                                                                                                              Часто сталкиваюсь с багзонами хиггса и разговариваю с уткой.
                                                                                                                                +1
                                                                                                                                А как назвать полезную фичу, которую находит пользователь и успешно использует ее, но при этом программист ее не залаживал явно?
                                                                                                                                  0
                                                                                                                                  «Залаживал» — это вы что сейчас сказали? В смысле «закладывал» или в смысле «лажа»?
                                                                                                                                    +1
                                                                                                                                    Точнее было бы «не залаживал» или «не закладывал»
                                                                                                                                    +2
                                                                                                                                    Багофича, очевидно же.
                                                                                                                                      0
                                                                                                                                      Может быть, но все же это не баг, так как не нарушает работу, а наоборот ускоряет
                                                                                                                                        0
                                                                                                                                        Зачем нам ее как-то называть, если мы об этой фиче так и не узнаем? :)
                                                                                                                                          0
                                                                                                                                          Вы дали мысль для ее названия — «Случайная фича», так как о ней узнаем случайно :)
                                                                                                                                            0
                                                                                                                                            А как насчет «Удачная находка»?
                                                                                                                                      0
                                                                                                                                      Шорткат )
                                                                                                                                      0
                                                                                                                                      Падший тест
                                                                                                                                        –2
                                                                                                                                        Каличный ответ
                                                                                                                                          0
                                                                                                                                          FxCop тоже для C# (для .NET вернее).
                                                                                                                                            +10
                                                                                                                                            Я бы Refuctoring перевел как ретрахторинг — и по сути и по названию подходит.
                                                                                                                                              +2
                                                                                                                                              Мне больше нравится «рефакинг». Вроде как и слово не сильно меняется и все понимают :)
                                                                                                                                                0
                                                                                                                                                Рефакинг больше смахивает на «перетрахивание», что имеет несколько другой смысл, чем в оригинале.
                                                                                                                                              +5
                                                                                                                                              "(примеры сложно переводимые)"

                                                                                                                                              ninja-examples? )
                                                                                                                                                +2
                                                                                                                                                На старой работе всё ещё популярно выражения:
                                                                                                                                                «подкостылить», «забить костыль», «подпереть костыликом» — срочно решить проблему любым доступным способом.

                                                                                                                                                и это, пожалуй, единственное слово в той компании…
                                                                                                                                                  +2
                                                                                                                                                  Бесконечный цикл — программа «залупилась».
                                                                                                                                                  Повторять выполнение какой-то функциональности (например, проиграть звук) — «залупить».
                                                                                                                                                    +4
                                                                                                                                                    Надеюсь, ударение на второй слог? ;)
                                                                                                                                                    +6
                                                                                                                                                    классовый террор — когда для оперирования одной простой сущностью человек пишет семь разных классов: сам объект, коллекция объектов, загрузчик (можно два — из базы данных, из массiва), модель, валидатор, визуализатор и т.п., когда можно было обойтись одним классом с пятком методов

                                                                                                                                                      0
                                                                                                                                                      Так же можно назвать использование классов там, где было бы достаточно структуры, т.е. где у «класса» нет поведения. Повсеместно встречается в таких языках как Java и C#. :)
                                                                                                                                                        0
                                                                                                                                                        В Java так повелось из-за JavaBeans. А теперь уже настолько распространено, что без следования этому стандарту с тебой ни один framework дружить не будет :-)

                                                                                                                                                        Кстати, дружить с чем-либо = уметь правильно использовать.
                                                                                                                                                          0
                                                                                                                                                          В Java структур в принципе нет. А в плюсах емнип разница между классом и структурой только в дефолтной видимости членов. Так что неясно, что плохого в использовании классов в качестве структур.
                                                                                                                                                            0
                                                                                                                                                            В концептуальности. :) Класс — это *совокупность* данных и методов их обработки.

                                                                                                                                                            Ну и тот факт что в плюсах структура внезапно может заиметь vtbl — это исключительно проблемы плюсов и тех, кто на них пишет. В D разделение более логичное.
                                                                                                                                                        +11
                                                                                                                                                        Интеграционный сервер для разработчиков (обычно называем dev.<основной домен>) — «девочка» ( — выкатил на девочку, доступно на девочке)
                                                                                                                                                        «Впохыпах» — код на PHP.
                                                                                                                                                          +1
                                                                                                                                                          По поводу Fear-driven development — я когда-то переводил более подробный текст о методах разработки.
                                                                                                                                                            0
                                                                                                                                                            Это классика :)

                                                                                                                                                            В оригинале статьи встречаются крайне забавные комментарии. Мне, например, нравятся подходы вроде Frank Sinatra Development или Acronym Driven Development.
                                                                                                                                                          • UFO just landed and posted this here
                                                                                                                                                              +5
                                                                                                                                                              заloopить — просто обязанно тут прозвучать
                                                                                                                                                                0
                                                                                                                                                                Наш лектор в шутку классифицировал «плохие» архитектуры КИС на архитектуры типа «Шанхай», «Спагетти», «Маруся отравилась» :)
                                                                                                                                                                • UFO just landed and posted this here
                                                                                                                                                                    0
                                                                                                                                                                    Всё-таки, Drug report, я бы перевел как «Нарко-отчет», ну или что-то в этом духе. Но никак не кислотный)
                                                                                                                                                                      0
                                                                                                                                                                      Зеленый отчет =)
                                                                                                                                                                    • UFO just landed and posted this here
                                                                                                                                                                        0
                                                                                                                                                                        Ну есть индийский код, бездумный и беспощадный
                                                                                                                                                                        0
                                                                                                                                                                        Код-гидра… черт, как точно!
                                                                                                                                                                          +7
                                                                                                                                                                          фубля — некий предмет, скажем, фигурка какого-нить чудовища, которая ставится на стол разработчику завалившему тесты.
                                                                                                                                                                            +1
                                                                                                                                                                            В Java условия Йоды употребляются повсеместно со строками:
                                                                                                                                                                            if ( «OK».equals( str ) )…
                                                                                                                                                                            вместо
                                                                                                                                                                            if ( str != null && str.equals( «OK» ) )…
                                                                                                                                                                            Если str == null, NPE не выскочит, а условие обработается корректно.

                                                                                                                                                                            «Покемонные» эксепшны тоже необходимы, когда при отлове любого эксепшна нужно сначала выполнить общий кусок кода, а затем частные действия.
                                                                                                                                                                              0
                                                                                                                                                                              В случае, когда для некоторых видов исключений есть общие действия, а потом rethrow, я предпочитаю использовать boolean-переменную, а блок обработки выносить в finally. Ибо очень не люблю дублирование кода, даже если это один вызов метода и следующий за ним rethrow.
                                                                                                                                                                                +3
                                                                                                                                                                                А в ругаемом всеми PHP «Покемонные исключения» гораздо красивее выглядят:
                                                                                                                                                                                try {
                                                                                                                                                                                	//Do something
                                                                                                                                                                                }
                                                                                                                                                                                catch (Zend_Controller_Request_Exception $e) {
                                                                                                                                                                                	//Request exceptions
                                                                                                                                                                                }
                                                                                                                                                                                catch (Zend_Controller_Action_Exception $e) {
                                                                                                                                                                                	//Controller exceptions
                                                                                                                                                                                }
                                                                                                                                                                                catch (Zend_Db_Exception $e) {
                                                                                                                                                                                	//Database exceptions
                                                                                                                                                                                }
                                                                                                                                                                                catch (Zend_Exception $e) {
                                                                                                                                                                                	//Zend framework exceptions
                                                                                                                                                                                }
                                                                                                                                                                                catch (Exception $e) {
                                                                                                                                                                                	//All other exceptions
                                                                                                                                                                                }
                                                                                                                                                                                


                                                                                                                                                                                Без кучи вложенных условий
                                                                                                                                                                                  +2
                                                                                                                                                                                  в неругаемом всеми питоне примерно так же

                                                                                                                                                                                  try:
                                                                                                                                                                                      //Do something
                                                                                                                                                                                  except ExceptionType1 as e:
                                                                                                                                                                                      //process ExceptionType1
                                                                                                                                                                                  except ExceptionType2 as e:
                                                                                                                                                                                      //process ExceptionType2
                                                                                                                                                                                  .....
                                                                                                                                                                                  Без кучи ненужных скобочек
                                                                                                                                                                                    +1
                                                                                                                                                                                    В используемой всеми Джаве как бы тоже так можно.
                                                                                                                                                                                      +3
                                                                                                                                                                                      По-моему вы не поняли основную фишку «покемонных исключений».
                                                                                                                                                                                      То, что приводите вы — это то, как правильно и как обычно принято писать (вне зависимости от языка). А «покемонные» — это когда «ловим всех подряд, а уж потом разберёмся кто есть кто». Тоже вне зависимости от языка.
                                                                                                                                                                                      • UFO just landed and posted this here
                                                                                                                                                                                          0
                                                                                                                                                                                          хм… в части except разве можно сначала общий код а потом частные обработчики on do с конечным else? Кажись, таки нельзя…
                                                                                                                                                                                          • UFO just landed and posted this here
                                                                                                                                                                                              0
                                                                                                                                                                                              Это ж ответы на фразу "«Покемонные» эксепшны тоже необходимы, когда при отлове любого эксепшна нужно сначала выполнить общий кусок кода, а затем частные действия."…
                                                                                                                                                                                              Хотя, я присмотрелся — тут про все языки так же невпопад отвечено…
                                                                                                                                                                                      +3
                                                                                                                                                                                      сепулькарий — документация с рекурсией, которая ничего не объясняет
                                                                                                                                                                                      зоопарк — инструмент, собранный из разных, зачастую противоречивых частей и технологий (например — программа ПРФ — XML + FoxPro)
                                                                                                                                                                                      юра (ударение на последний слог) — невыразимо древний код (или готовая программа), обновить которую невозможно, так как поддержки нет, а переписать — слишком долго (как вариант — никому не нужно)
                                                                                                                                                                                        0
                                                                                                                                                                                        термин зоопарк — тоже используем в таких случаях
                                                                                                                                                                                          0
                                                                                                                                                                                          «юра» — это код юрского периода так сократили?
                                                                                                                                                                                            0
                                                                                                                                                                                            Угу. Геологи любят сокращать периоды до ключевого признака — Мел, Триас, Юра.
                                                                                                                                                                                          +1
                                                                                                                                                                                          > Бикремент (Bicrement)
                                                                                                                                                                                          > Добавление 2 к значению переменной.

                                                                                                                                                                                          А парную обратную операцию как правильно назвать? Дебилкремент или Бидэкремент? (сорри за очепятки :) )
                                                                                                                                                                                            +2
                                                                                                                                                                                            ДебиЛкремент — это сильно. Видно наболело.
                                                                                                                                                                                            +1
                                                                                                                                                                                            про утку вспомнилось: «была гениальная история про известного старинного художника, который рисовал портреты всякой знати на заказ. и задолбали они его в конец, ибо принять сразу работу им было западло и они придирались, просили вдруг переписать их в другом костюме поверх старого и т.п. И художник придумал фишку — он в углу каждой картины рисовал маленькую зеленую собачку жутко противного вида, когда приходили заказчики, они первым делом замечали собачку и начинали орать „Что это за жуткая зеленая тварь?!“ и художник говорил — »Ок, собачку убираем, все остальное в порядке, да?" Ну и они уже обессиленные и охреневшие от собачки соглашались".
                                                                                                                                                                                              +1
                                                                                                                                                                                              У нас иногда встречаются:
                                                                                                                                                                                              Грабельки — код, которым подтыкают код, чтобы он заработал. Не дай бог о них забыть.
                                                                                                                                                                                              Есть также
                                                                                                                                                                                              Грабельки на грабельки — код, которым подтыкают код, который служит для подтыкания кода. Такое иногда бывает, когда кто-то не заметил первого варианта, побил себе лоб и грабельки поломал.
                                                                                                                                                                                                +2
                                                                                                                                                                                                По-моему это называют костылями.
                                                                                                                                                                                                  +2
                                                                                                                                                                                                  Костыль опасный для того, кто ним пользуется. А грабельки — для всех.
                                                                                                                                                                                                  Хотя — да. Вы правы. Как жопу не обзови — все-равно это жопа=)
                                                                                                                                                                                                  0
                                                                                                                                                                                                  Граблями, помнится, называют любые ошибки в программе.
                                                                                                                                                                                                  Попробуйте поискать «Компьютерное граблеведение» (с).
                                                                                                                                                                                                  +2
                                                                                                                                                                                                  Аналог Fear Driven Development — Паяльник Driven Development
                                                                                                                                                                                                    0
                                                                                                                                                                                                    Багзон Хиггса — отличная замена «да не могу я понять что не так, работает через раз, а когда проверяю — работает!»
                                                                                                                                                                                                      0
                                                                                                                                                                                                      «Строкотипизированный (Stringly Typed)» охохо. В PHP без этого никак))
                                                                                                                                                                                                        +3
                                                                                                                                                                                                        у нас закрепилось:
                                                                                                                                                                                                        throw new Exception('йобаная неведомая йуйня happend');
                                                                                                                                                                                                        извините за русский…
                                                                                                                                                                                                          +1
                                                                                                                                                                                                          не надо извиняться, вы не в прибалтике
                                                                                                                                                                                                          +4
                                                                                                                                                                                                          > Оформление Doctype (Doctype Decoration)
                                                                                                                                                                                                          Лучше перевести как «Декоративный Doctype»
                                                                                                                                                                                                            +2
                                                                                                                                                                                                            Я в свое время придумал выражение «играть в луноход»: давать пошаговые инструкции пользователю по телефону. (Типа как с Земли посылались команды Луноходу).

                                                                                                                                                                                                              0
                                                                                                                                                                                                              А, еще выражение «Акын-программирование». Как акын, который что видит, о том и поёт, акын-программист пишет программу подряд, не задумываясь о структуре и дизайне.
                                                                                                                                                                                                                0
                                                                                                                                                                                                                Не смейтесь над творческими людьми, лучше дайте им Хаскель. ;)

                                                                                                                                                                                                                Знакомый хаскель-кодер говорит, что программы на Хаскеле нисколько не страдают от написания подряд. Сам не пробовал.
                                                                                                                                                                                                                  0
                                                                                                                                                                                                                  Я в основном применял это выражение к горе-программистам на VB, которые валили в одну кучу всё — UI, бизнес-логику, доступ к данным… Ощущение было именно такое: прочитал в ТЗ «должна быть кнопка...» — поставил кнопку, читаем дальше — "… при нажатии на которую данные извлекаются из базы..." — тут же рядом лезем в базу — "… и обрабатываются." — и пишем тут же обработку.

                                                                                                                                                                                                                  Поможет ли таким деятелям Хаскелл, право, не знаю :)
                                                                                                                                                                                                                    0
                                                                                                                                                                                                                    Сорцы официальнй утилиты Анонимусов читали?

                                                                                                                                                                                                                    praet0x сделал почти нормально.

                                                                                                                                                                                                                    newfag: «Надо добавить hivemind. Сделаем вот здесь кнопки и текстовые поля. При включении вызывается обработчик. Куда положим? А прямо сюда — в frmMain.cs» В итоге там сейчас кроме UI достались сбор статистики от praet0x'а и IRC-бот от newfag'а.

                                                                                                                                                                                                                    NewEraCracker, к большому счастью Анонимусов, занимался только багфиксами и однострочными улучшениями. Что получается от его попыток сделать что-то побольше, вы можете видеть в конце github.com/NewEraCracker/LOIC/blob/master/Program.cs
                                                                                                                                                                                                                +3
                                                                                                                                                                                                                Стильные бородатые админы любого возраста скрасят ваш вечер и проведут лечебную профилактику ваших серверов. Только у нас за 99.99$/час вы получите: нежное поднятие nginx, стимуляция exim, озорные игры в teeworlds втроем. Для любителей доминирования настройка squid. Поклонникам S&M — man sendmail =)
                                                                                                                                                                                                                  0
                                                                                                                                                                                                                  В «Тупить», когда увидел цитату, подумал что %username% сделали.
                                                                                                                                                                                                                    +2
                                                                                                                                                                                                                    Костыльно-Ориентированное Программирование (КОП)
                                                                                                                                                                                                                    Форкеры — воркер-процессы созданные методом fork
                                                                                                                                                                                                                    Портянка — длинный, не читаемый код
                                                                                                                                                                                                                    Брут Условие (или БрутФорс Условие) — ()длинное условие цель которого перебрать значения: if(a == 5 || a == 10 || a ==45 ...)
                                                                                                                                                                                                                      +2
                                                                                                                                                                                                                      Хех… Помнится, после анекдота про программерские машины у меня в голове родился термин Wheel catcher или ловец колёс — специальный костыль, отлавливающий и правящий последствия бага, а не его самого. Нескольких товарищей уже заразил этим словечком.
                                                                                                                                                                                                                        +7
                                                                                                                                                                                                                        Чтобы понять, почему переадресация SMS так плохо приживается у наших операторов, стоит вспомнить, как собственно работает сервис SMS в классическом варианте. Вкратце, передача SMS состоит из двух фаз: MO-SMS – это передача SM отправителя в SMS-центр своего оператора и MT-SMS – доставка SM к получателю.



                                                                                                                                                                                                                        Ключевой момент в том, что задача доставки возложена на SMSC отправителя. Именно он хранит SMS, «разыскивает» HLR получателя, запрашивает у HLR адрес MSC, в котором в данный момент находится получатель и в финале – отправляет SMS напрямую в этот MSC.

                                                                                                                                                                                                                        Из-за того, что вопросами доставки ведает SMSC отправителя, тупо «намутить» на нем переадресацию нельзя. Ведь переадресация – это услуга получателя. Конечно, нет ничего невозможного и некоторые операторы как-то выкручиваются. Можно использовать CAMEL и запускать различные сценарии уже в момент доставки SMS в MSC получателя. Можно пропускать весь сигналлинг через какие-нибудь умные STP или шлюзы, которые будут с одной стороны прикидываться абонентом-получателем, а с другой стороны – выполнять роль второго SMSC. В любом случае, это все ужасные костыли, которые стоят оператору немалых денег и доставляют кучу геморроя.

                                                                                                                                                                                                                        Если почитать условия предоставления переадресации SMS у тех операторов, где это реализовано, можно увидеть, что там тоже не все гладко. Например, у МТС Новосибирска услуга работает, только если отправитель – тоже абонент МТС Сибири. У Скайлинка при получении переадресованной SMS адресом отправителя является не отправитель, а тот, кто ее переадресовал. Киевстар не умеет переадресовывать SMS, отправленные НЕ абонентом. В общем, похоже, по-человечески это ни у кого и не работает.
                                                                                                                                                                                                                          +3
                                                                                                                                                                                                                          вай-вай, не туда запостил! прошу меня простить.
                                                                                                                                                                                                                            +2
                                                                                                                                                                                                                            Отличная иллюстрация примера к Костыльно-Ориентированному Программированию (КОП).
                                                                                                                                                                                                                            +4
                                                                                                                                                                                                                            Всё равно смешно.
                                                                                                                                                                                                                            0
                                                                                                                                                                                                                            Counterbug: не знаю, как перевести коротко, поэтому будет длинно.
                                                                                                                                                                                                                            Когда кто-то приходит к вам и показывает вам ваш баг, вы в ответ показываете ему его баг. Этот последний и есть counterbug.
                                                                                                                                                                                                                              0
                                                                                                                                                                                                                              Контрбаг — вполне читаемо и понятно как контраргумент.
                                                                                                                                                                                                                                0
                                                                                                                                                                                                                                Кстати, цитата почти в тему: bash.org/?334331
                                                                                                                                                                                                                                0
                                                                                                                                                                                                                                А баг-репорты в оригинале все названы созвучно — Smug, Drug, Chug, Shrug!
                                                                                                                                                                                                                                И в этом свой прикол был. Жаль, при переводе скис…
                                                                                                                                                                                                                                  0
                                                                                                                                                                                                                                  Common Law Feature отсылает к гражданскому браку (Common Law Marriage)
                                                                                                                                                                                                                                    0
                                                                                                                                                                                                                                    оригинальная ссылка не открывается — http://stackoverflow.com/questions/2349378/new-programming-jargon-you-coined — Page Not Found
                                                                                                                                                                                                                                      0
                                                                                                                                                                                                                                      Хорошо, что сделал перевод в своё время! Останется для потомков.

                                                                                                                                                                                                                                    Only users with full accounts can post comments. Log in, please.