-
Лучший говнокод
- В номинации:
-
- За время:
-
-
+73
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
// Current Month Days
for (int i = 1; i <= _nDaysInMonth; i++) {
if (_myPrefs.getIfConfigured()) {
if (_regionWithHolidays != null && _regionWithHolidays.length > 0) {
String holidayDateStringFormat = String.valueOf(i) + "-" + getMonthAsString(nCurrentMonth) + "-" + _strCurrentSelectedYear;
for (int index = 0; index < _regionWithHolidays.length; index++) {
if (_regionWithHolidays[index].getHolidayDate().equals(holidayDateStringFormat)) {
list.add(String.valueOf(i) + "-RED" + "-" + getMonthAsString(nCurrentMonth) + "-" + yy);
}
}
}
}
if (i == getCurrentDayOfMonth()) {
list.add(String.valueOf(i) + "-BLUE" + "-" + getMonthAsString(nCurrentMonth) + "-" + yy);
} else {
list.add(String.valueOf(i) + "-WHITE" + "-" + getMonthAsString(nCurrentMonth) + "-" + yy);
if (_myPrefs.getIfConfigured()) {
if (_regionWithHolidays != null && _regionWithHolidays.length != 0) {
String otherDates = String.valueOf(i) + "-" + getMonthAsString(nCurrentMonth) + "-" + _strCurrentSelectedYear;
for (int index = 0; index < _regionWithHolidays.length; index++) {
if (_regionWithHolidays[index].getHolidayDate().equals(otherDates)) {
list.remove(String.valueOf(i) + "-WHITE" + "-" + getMonthAsString(nCurrentMonth) + "-" + yy);
}
}
}
}
}
}
// some code
for (int i = 1; i <= _nDaysInMonth; i++) {
String[] day_color = list.get(i).split("-");
if (day_color[1].equals("WHITE")) {
//active dates in current month
dayNumberView.setTextColor(getResources().getColor(R.color.darkGrey_font));
} else if (day_color[1].equals("BLUE")) {
//current date in current month
holder.tvTime.setTextColor(getResources().getColor(R.color.whitetranslucent));
dayNumberView.setTextColor(getResources().getColor(R.color.whitetranslucent));
cell.setBackgroundResource(R.color.blue_font);
} else if (day_color[1].equals("RED")) {
//active dates in current month
dayNumberView.setTextColor(getResources().getColor(R.color.red));
}
}
Это приложение с десятками тысяч пользователей. Мне выпала честь править в нем баги. На сколько я могу судить задача этого куска была отобразить календарь на текущий месяц на экране и подсветить WHITE - обычные дни, BLUE - текущий, RED - выходные и праздничные. Итак в чем соль:
1) сама соль метода - в одном цикле создается список строк вида НОМЕР-ЦВЕТ-МЕСЯЦ-ГОД, чуть ниже в аналогичном цикле эти строки разбиваются по "-" и сравнивается по строковому значению цвета. Кроме того день может быть или текущим или праздничным, но никак не одновременно.
2) два практически одинаковых куска кода по 10 строк - строки 4-13 и 19-28, первый при определенных условия добавляет ПРАЗДНИЧНЫЙ день в календарь, потом день в 16-18 строках день всегда добавляется еще раз этот день, либо обычный(WHITE) либо текущий(BLUE), и выполняется второй кусок и если проходят те же условия т.е. фактические если был добавлен праздничный день(RED) то удаляется добавленный ОБЫЧНЫЙ день. Баг был в том что если текущий день был еще и праздничным то они задваивались. Сделать по нормальному - если день уже добавлен, не добавлять еще раз или сделать continue главному циклу. Не говоря уже о том чтобы добавить break после 9 строки, видно автор не знал про эти операторы.
TAX,
19 Июня 2014
-
+79
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
public Long getRecordCount() {
long result = 0;
if(pfrFile != null){
if(pfrFile.getПачкаВходящихДокументов().getРАСЧЕТ_ПО_СТРАХОВЫМ_ВЗНОСАМ_НА_ОПС_И_ОМС_ПЛАТЕЛЬЩИКАМИ_ПРОИЗВОДЯЩИМИ_ВЫПЛАТЫ_ФЛ() != null){
result++;
}
if(pfrFile.getПачкаВходящихДокументов().getРСВ1() != null){
result++;
}
if(pfrFile.getПачкаВходящихДокументов().getРАСЧЕТ_ПО_СТРАХОВЫМ_ВЗНОСАМ_НА_ОПС_И_ОМС_ПЛАТЕЛЬЩИКАМИ_СВ_ПРОИЗВОДЯЩИМИ_ВЫПЛАТЫ_ФЛ_НАЧИНАЯ_С_2012_ГОДА() != null){
result++;
}
if(pfrFile.getПачкаВходящихДокументов().getРАСЧЕТ_ПО_СТРАХОВЫМ_ВЗНОСАМ_НА_ОПС_И_ОМС_ПЛАТЕЛЬЩИКАМИ_СВ_ПРОИЗВОДЯЩИМИ_ВЫПЛАТЫ_ФЛ_НАЧИНАЯ_С_2013_ГОДА() != null){
result++;
}
...
return result;
}
:D
skobets,
18 Июня 2014
-
+157
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
while($row = $this->_db->fetchRow($qry)){
$module_name = stripslashes($row["module_name"]);
$permisos = array();
$permisos["A"]=(($row["permission_value"] & 1)==1)?1:0;
$permisos["E"]=(($row["permission_value"] & 2)==2)?1:0;
$permisos["D"]=(($row["permission_value"] & 4)==4)?1:0;
$permisos["L"]=(($row["permission_value"] & 8)==8)?1:0;
$permisos["W"]=(($row["permission_value"] & 16)==16)?1:0;
$permisos["V"]=(($row["permission_value"] & 32)==32)?1:0;
$access_array[$module_name]=$permisos;
}
Испанский ACL
stereojazz,
16 Июня 2014
-
−102
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
x = 1;
x = (x >> 11);
x = (x + 1);
x = (x >> 9);
x = (x + 1);
x = (x >> 7);
x = (x + 1);
x = (x >> 5);
x = (x + 1);
x = (x >> 3);
x = (x + 1);
x = (x >> 10);
x = (x + 1);
x = (x >> 8);
x = (x + 1);
x = (x >> 6);
x = (x + 1);
x = (x >> 4);
x = (x + 1);
x = (x >> 2);
x = (x + 1);
if (x == 1)
{
ge.ha = true;
};
из недр не менее изощрённого распковщика обфусцированного xml
makc3d,
13 Июня 2014
-
+58
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
Poor man' link time code generation:
#include "main.cpp"
#include "frame.cpp"
#include "func.cpp"
#include "account.cpp"
#include "advancer.cpp"
#include "audit.cpp"
#include "cpio.cpp"
g++ -whole-program -o my books.exe -O3 includeall.cpp
http://blogs.msdn.com/b/oldnewthing/archive/2014/06/06/10531604.aspx
someone,
07 Июня 2014
-
+140
- 1
<div contentediotable="true">
AjiTae,
04 Июня 2014
-
+154
- 1
$data_move = date("d.m.Y", mktime(0, 0, 0, (int)date("m",time()), (int)date("d",time()), (int)date("Y",time())));
Вишенка даже не в том, что афтар - кармический индус, а в том, что теоретически возможна ситуация, при которой date("m",time()) выполняется в последнюю миллисекунду предыдущего месяца, а date("d",time()) - в первую следующего.
catgav,
03 Июня 2014
-
+156
- 1
$result['BIRTHDATE'] = (($date['day'] < 10) ? '0'.$date['day'] : $date['day']).'.'.(($date['month'] < 10) ? '0'.$date['month'] : $date['month.'] ).'.'.$date['year'];
Пых и даты.
bormand,
28 Мая 2014
-
+11
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
QString Factory::lifeEqual(WidgetEnum::SearchWidgetSet param) {
switch (param) {
case WidgetEnum::station:
return "Станция";
case WidgetEnum::water_area:
return "Акватория";
case WidgetEnum::station_coordinates:
return "Координаты станции";
case WidgetEnum::volume_of_filtered_water:
return "Объем отфильтрованной воды";
case WidgetEnum::chlorophyll_a_concentration:
return "Концентрация хлорофила а";
case WidgetEnum::chlorophyll_b_concentration:
return "Концентрация хлорофила b";
case WidgetEnum::chlorophyll_c_concentration:
return "Концентрация хлорофила c";
case WidgetEnum::A665k:
return "A(665k";
case WidgetEnum::pigment_index:
return "Индекс пигмента";
case WidgetEnum::pheopigments:
return "Феопигменты";
case WidgetEnum::upholding_sample_time:
return "Время выдержки образца";
case WidgetEnum::concetrated_sample_volume:
return "Объемная концентрация образца";
case WidgetEnum::cameras_viewed_number:
return "Качество камеры";
case WidgetEnum::total:
return "Общая численость";
case WidgetEnum::total_species:
return "Число видов в пробе";
case WidgetEnum::total_biomass:
return "Общая биомасса";
case WidgetEnum::total_percent:
return "Итоговый процент";
case WidgetEnum::biomass_percent:
return "Процент биомасс";
case WidgetEnum::percentage_of_total:
return "Процент от общего числа";
case WidgetEnum::percentage_of_the_total_biomass:
return "Процент от общего числа биомассы";
case WidgetEnum::number:
return "Номер";
case WidgetEnum::biomass:
return "Биомасса";
case WidgetEnum::total_species_in_group:
return "Всего видов в группе";
case WidgetEnum::name:
return "Название";
case WidgetEnum::name_alt:
return "Альтернативное название";
case WidgetEnum::name_rus:
return "Русское название";
case WidgetEnum::fishing_gear:
return "Рыболовный аппарат";
case WidgetEnum::assessment_of_zooplankton:
return "Оценка зоопланктона";
case WidgetEnum::date:
return "Дата";
case WidgetEnum::Station_water_area:
return "";
case WidgetEnum::groupsOfPh_name:
return "Название группы";
case WidgetEnum::groups:
return "Вид";
case WidgetEnum::error:
return "errorA";
case WidgetEnum::chlorinity:
return "chlorinity";
case WidgetEnum::density:
return "density";
case WidgetEnum::volume:
return "volume";
case WidgetEnum::o2_mg_l:
return "o2_mg_l";
case WidgetEnum::o2_ml_l:
return "o2_ml_l";
case WidgetEnum::bod5:
return "bod5";
case WidgetEnum::ph:
return "ph";
case WidgetEnum::alk:
return "alk";
case WidgetEnum::no2:
return "no2";
case WidgetEnum::no3:
return "no3";
case WidgetEnum::total_n:
return "total_n";
case WidgetEnum::po4:
return "po4";
case WidgetEnum::total_p:
return "total_p";
case WidgetEnum::si:
return "si";
And etc.....
В таком духе имеется строк 300, и если бы выход здравого смысла из спячки и наличие базы данных, 50 строчек которыми все это стало, с течением времени могло бы превратиться в 1000 строк, если не больше.
И хоть это банальный гавногод, жалко трудов и времени на него затраченных. А так хоть канет в бездне говногода, а не в бездне моего винта.
smith599,
25 Мая 2014
-
+78
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
public static String[] Filtr( String[] mas )
{
for(int i=0;i<mas.length;i++)
{
if ("А".equals(mas[i])){
mas[i] = "а";
}
if ("Б".equals(mas[i])){
mas[i] = "б";
}
if ("В".equals(mas[i])){
mas[i] = "в";
}
if ("Г".equals(mas[i])){
mas[i] = "г";
}
if ("Д".equals(mas[i])){
mas[i] = "д";
}
if ("Е".equals(mas[i])){
mas[i] = "е";
}
if ("Ё".equals(mas[i])){
.....//и т.д.
if ("Э".equals(mas[i])){
mas[i] = "э";
}
if ("Ю".equals(mas[i])){
mas[i] = "ю";
}
if ("Я".equals(mas[i])){
mas[i] = "я";
}
if ("Й".equals(mas[i])){
mas[i] = "й";
}
}
for(int i=0;i<mas.length;i++)
{
if(
(mas[i].equals("а") == false) &&
(mas[i].equals("б") == false) &&
(mas[i].equals("в") == false) &&
(mas[i].equals("г") == false) &&
(mas[i].equals("д") == false) &&
(mas[i].equals("е") == false) &&
(mas[i].equals("ё") == false) &&
(mas[i].equals("ж") == false) &&
(mas[i].equals("з") == false) &&
(mas[i].equals("и") == false) &&
(mas[i].equals("к") == false) &&
(mas[i].equals("л") == false) &&
(mas[i].equals("м") == false) &&
(mas[i].equals("н") == false) &&
(mas[i].equals("о") == false) &&
(mas[i].equals("п") == false) &&
(mas[i].equals("р") == false) &&
(mas[i].equals("с") == false) &&
(mas[i].equals("т") == false) &&
(mas[i].equals("у") == false) &&
(mas[i].equals("ф") == false) &&
(mas[i].equals("х") == false) &&
(mas[i].equals("ц") == false) &&
(mas[i].equals("ч") == false) &&
(mas[i].equals("ш") == false) &&
(mas[i].equals("щ") == false) &&
(mas[i].equals("э") == false) &&
(mas[i].equals("ю") == false) &&
(mas[i].equals("я") == false) &&
(mas[i].equals("ъ") == false) &&
(mas[i].equals("ь") == false) &&
(mas[i].equals("ы") == false) &&
(mas[i].equals("й") == false) &&
(mas[i].equals(" ") == false))
{
mas = Del(mas, i);
i--;
} ;
for(int k=0;(k+1)<mas.length;k++)
{
if(mas[k].equals(" ") && mas[k+1].equals(" "))
{
mas = Del(mas, k);
k--;
}
}
}
return mas;
}
lispocoder,
18 Мая 2014