- 1
$newFilename = strrev(implode('_',explode('_',strrev($basename),-5)));
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+158
$newFilename = strrev(implode('_',explode('_',strrev($basename),-5)));
убирает префикс даты и типа файла
пример:
04_08_2014_5_N_Capture.png
04_08_2014_5_N_My_Capture.png
+161
if ($cat != '0' && $cat != '1' && $cat != '2') {$cat = '3';}
Вот такой вот вывод =)
−84
public function equals(newSprite:SpriteVO): Boolean
{
return (newSprite.x == this.x &&
newSprite.y == this.y &&
newSprite.width == this.width &&
newSprite.height == this.height &&
newSprite.scaleX == this.scaleX &&
newSprite.scaleY == this.scaleY &&
newSprite.rotation == this.rotation &&
newSprite.assetId == this.assetId &&
newSprite.asset == this.asset &&
newSprite.track == this.track &&
newSprite.flipped == this.flipped)
}
Почему-то у меня есть впечатление, что люди которые пытаются писать на языке используя приемы из другого языка, это в первую очередь люди, которые не поняли оригинальную задумку в другом языке.
+164
if (jq('#' + id).attr('checked')) {
jq('#' + id).attr('checked', true);
} else {
jq('#' + id).attr('checked', false);
}
Чужой код, года 11, переписываю, натыкаюсь на такое вот повсеместно
+50
char parser_msg(char *data, char size)
{
//<...>
QByteArray bt;
//<...>
x=(char *) malloc(size);
bt.clear();
for (i=0; i<size; i++) {
x[i]=*data;
bt.append(*data);
*data++;
}
printf("Data parser! >> '%s'\n", bt.toHex().constData());
if (x[0]==0x06) {
//<...>
}
if (x[0]==...) {
//<...>
}
//<...>
}
Разбор команд из COM-порта. Используется Qt. QByteArray, кстати, заведен здесь только ради дебаг-принта.
При вызове функции в кач. data передается указатель, возвращаемый data() другого байтаррэя, живущего на стеке.
−103
if [ "valid" == "$x" ]; then
echo "x has the value 'valid'"
fi
One last point (of style): <...> is better because it avoids the possibility of accidentally assigning the string "valid" to x.
Йода-стайл теперь и в вашем баше.
+127
<div>
<label for="background-color">Choose a calor for background : </label>
<input id="background-color" type="color" value="#ff0000" onchange="javascript:document.getElementById('chosen-color').value = document.getElementById('background-color').value;"/>
</div>
<div>
<label for="chosen-color">You have chosen : </label>
<input id="chosen-color" type="text" readonly value="#ff0000"/>
</div>
Кроме того что тут inline JS event, да к автор еще умудряется использовать document.getElementById('choosen-value').value вместо this.value .
+134
class ParametersArray
{
...
/// <summary>
/// Копирующей конструктор (создает копию коллекции)
/// </summary>
/// <param name="prs">Коллекция на основе, которой будет создаваться копия</param>
public ParametersArray(ParametersArray prs)
{
paParameters = new ArrayList();
for (int i = 0; i < prs.Count; i++)
{
Parameter p = new Parameter(prs[i]);
paParameters.Add(p);
}
}
...
#region Внутренние состояния
/// <summary>
/// Внутреннее поле - массив параметров
/// </summary>
private ArrayList paParameters;
/// <summary>
/// Внутреннее поле – идентификатор операции, к которой относятся параметры
/// </summary>
private string paOperationId = "";
#endregion
/// <summary>
/// Удаляет параметр из коллекции
/// </summary>
/// <param name="parameterId">Идентификатор параметра</param>
public void Delete(string parameterId)
{
ArrayList list = new ArrayList();
foreach (Parameter prt in paParameters)
{
if (prt.Id.Trim() != parameterId.Trim())
{
list.Add(prt);
}
}
paParameters = list;
}
}
}
...
/// <summary>
/// Класс для поиска и обработки шаблонов в параметрах операций
/// </summary>
public class Parser
{
...
#region Конструкторы
/// <summary>
/// Конструктор инициализирующей класс
/// </summary>
/// <param name="requestUserId">ID пользователя, который используется для обработки шаблона ##USER()</param>
public Parser(string requestUserId)
{
pParameters = null;
pUserId = requestUserId;
}
#endregion
#region Внешние методы
/// <summary>
/// Метод перебирает все параметры операции, ищет там шаблоны и заменяет их значениями
/// </summary>
/// <param name="opr">Операция</param>
/// <returns>Операция с обработанными шаблонами</returns>
public Operation Parse(Operation opr)
{
pParameters = new ParametersArray(opr.Parameters);
for (int i = 0; i < pParameters.Count; i++)
if (FindTemplate(pParameters[i]))
{
ReplaceTemplate(pParameters[i]);
//Удаляет параметр с ошибкой
if (pParameters[i].Value == "parse err")
pParameters.Delete(pParameters[i].Id);
}
opr.Parameters = new ParametersArray(pParameters);
return opr;
}
Внимание привлекает код в строках 81-95
В строке 81-82 мы создаём временную копию параметров операции opr во внутреннем поле класса Parser. Прекрасно. Ещё раз - в публичном в методе инициализируем внутреннее поле (Классный side effect - поле используется в других методах).
В строке 91 удаляет элемент из внутренней коллекции, пересоздавая коллекцию целиком, то есть требования к памяти временно удваиваются на выходе из метода Delete (до очистки памяти). В методе Delete. Да. Супер.
потом инициализируем вновь созданной коллекцией публичное поле Parameters во входящем параметре opr метода Delete.
P.S.: Диагноз - хроническая форма неизлечимой Java. Во первых, автор этих строк искренне думает, что в природе ничего, кроме коллекции ArrayList, не существует. Во вторых, для удаления элемента коллекции мы пересоздаём всю коллекцию целиком, то есть видимо искренне полагая, что коллекция ArrayList - immutable, как и все поля класса Parser (типа ParametersArray) равно как и поле класса ParametersArray (типа ArrayList). Занавес.
Говнокодище.
−99
@login_required
def datadelivery_stats_report(request, campaign_id):
try:
start_date = extract_date_to_default_timezone(request, 'start_date')
except ValidationError:
return HttpResponseServerError("The %s parameter is invalid." % 'start_date')
except AttributeError:
return HttpResponseServerError("The %s parameter is invalid." % 'start_date')
except KeyError:
return HttpResponseServerError("The %s parameter is missing." % 'start_date')
try:
end_date = extract_date_to_default_timezone(request, 'end_date')
except ValidationError:
return HttpResponseServerError("The %s parameter is invalid." % 'end_date')
except AttributeError:
return HttpResponseServerError("The %s parameter is invalid." % 'end_date')
except KeyError:
return HttpResponseServerError("The %s parameter is missing." % 'end_date')
Джанга такая джанга... Почему же нельзя выбросить ошибку валидации? 404 можно...
+129
# Превратим входную строку в вектор, и отсортируем
used_letter <- sort(strsplit(s, "")[[1]])
# Находим самый большой используемый индекс(у нас уже есть гарантии, что в строке остались только допустимые символы)
big_letter <- used_letter[length(used_letter)]
Оригинальный способ поиска максимального элемента в массиве