1. Список говнокодов пользователя KoirN

    Всего: 7

  2. Java / Говнокод #7639

    +77

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    @SuppressWarnings("unchecked")
    public void addImage(String key, Bitmap bmp){
    		
    	if(memCache.size() >= MAX_CACHE_SIZE){
    			
    		Object[] array = (Entry[]) cacheUsage.entrySet().toArray();
    			
    		Arrays.sort(array, new Comparator<Object>(){
    				
    			public int compare(Object object1, Object object2) {
    				return (Integer)(((Map.Entry<String, Integer>)object1).getValue()) - 
    						(Integer)(((Map.Entry<String, Integer>)object2).getValue());
    			}
    		});
    			
    		String keyForRemove = ((Map.Entry<String, Integer>)array[0]).getKey();
    		memCache.remove(keyForRemove);
    		cacheUsage.remove(keyForRemove);
    	}
    	
    }

    до чего довело желание всё оптимизацировать

    KoirN, 24 Августа 2011

    Комментарии (20)
  3. Java / Говнокод #5955

    +76

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    //skipped
            b1 = new JButton("Disable middle button", leftButtonIcon);
            b1.setVerticalTextPosition(AbstractButton.CENTER);
            b1.setHorizontalTextPosition(AbstractButton.LEADING); //aka LEFT, for left-to-right locales
            b1.setMnemonic(KeyEvent.VK_D);
            b1.setActionCommand("disable");
            b1.addActionListener(this);
    
    }
    
     public void actionPerformed(ActionEvent e) {
            if ("disable".equals(e.getActionCommand())) {
                b2.setEnabled(false);
                b1.setEnabled(false);
                b3.setEnabled(true);
            } else {
                b2.setEnabled(true);
                b1.setEnabled(true);
                b3.setEnabled(false);
            }

    из мануала на oracle.com. Что действительно так нужно обрабатывать события?

    KoirN, 11 Марта 2011

    Комментарии (4)
  4. C++ / Говнокод #4624

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    int makedata(int id,int part,void *d,int datalen,void *buf)
    {
        //packet struct :
        // code = short int, lenght = shotr int, id = int, numofpart = int, data = 1024
    
        int packlen = sizeof(short int)*2 + sizeof(int)*2 + datalen;
        char *tbuf = new char [packlen];
        char* tbufptr = tbuf;
        *((short int *)tbufptr) = data;  //first field
        (short int *)tbufptr++;
        *((short int *)tbufptr) = packlen;  //second field
        (short int *)tbufptr++;
        *((int *)tbufptr) = id;
        (int *)tbufptr++;
        *((int *)tbufptr) = part;
        (int *)tbufptr++;
        *((short int *)tbufptr) = datalen;
        (short int *)tbufptr++;
        memcpy((void*)tbufptr,d,datalen);
    
        buf=tbuf;
        return packlen;
    }
    
    fileinfo* getask(void *b)
    {
        fileinfo *fi = new fileinfo();
        char *bufptr = (char*)b;
        (short int*)bufptr++;
        short int plen = *((short int*)bufptr);
        (short int*)bufptr++;
        fi->numofpart = *((int*)bufptr);
        (int*)bufptr++;
        fi->filelenght = *((int*)bufptr);
        (int*)bufptr++;
        int filelen = plen-(bufptr-(char*)b);
        fi->filename = new char[filelen];
        strncpy(fi->filename,bufptr,filelen);
    
        return fi;
    }

    Вместо того, что бы воспользоваться структурой, забиваем всё ручками.

    KoirN, 14 Ноября 2010

    Комментарии (6)
  5. Python / Говнокод #4556

    −99

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    def __init__(self, pth = None):
    		self._tag = None
    		self._valid = False
    		self._pthtofile = pth
    		if pth != None:
    			try:
    				self._tag = tagpy.FileRef(pth).tag()
    				self._valid = True
    			except ValueError:
    				pass

    Конструктор класса.
    Дальше приходится всё время дёргать объект проверяя его на валидность.
    Как переписать не так говнисто?

    KoirN, 07 Ноября 2010

    Комментарии (2)
  6. C# / Говнокод #4343

    +144

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    // Devide vector
    Tuple<Complex[], Complex[]> DevideVector(Complex[] vector){
    Complex[] firstPart = new Complex[vector.Length / 2],
    secondPart = new Complex[vector.Length / 2];
    for (int index = 0; index < firstPart.Length; index++) { firstPart[index] = vector[index]; }
    for (int index = 0, offset = firstPart.Length; index < secondPart.Length; index++) { secondPart[index] = vector[index + offset]; }
    return new Tuple<Complex[], Complex[]>(firstPart, secondPart);}
    
    // FFT
    public Complex[] Transform(Complex[] vector){
    inverse = false;
    Complex[] result = Operation(vector);
    result = InverceIndexBits(result);
    for (int index = 0; index < vector.Length; index++) { result[index] /= result.Length; }
    return result;}
    
    // IFFT
    public Complex[] InverseTransform(Complex[] vector){
    inverse = true;
    Complex[] result = Operation(vector);
    result = InverceIndexBits(result);
    return result;}
    }}

    Код из лабы моего одногруппника. Яркий пример того, как НЕ НАДО оформлять код

    KoirN, 11 Октября 2010

    Комментарии (10)
  7. Си / Говнокод #2600

    +96.5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    ......
                     int a1=0,a2=0,a3=0,a4=0,a5=0,a6=0,a7=0,a8=0,a9=0,a10=0;
                     for (int i=0;i<arl->Count;i++)
                     {
                        if(arl[i]<0.1)
                        {
                            a1++;
                        }
                        if(arl[i]<0.2&&arl[i]>0.1)
                        {
                            a2++;
                        }
                        if(arl[i]<0.3&&arl[i]>0.2)
                        {
                            a3++;
                        }
                        if(arl[i]<0.4&&arl[i]>0.3)
                        {
                            a4++;
                        }
                        if(arl[i]<0.5&&arl[i]>0.4)
                        {
                            a5++;
                        }
                        if(arl[i]<0.6&&arl[i]>0.5)
                        {
                            a6++;
                        }
                        if(arl[i]<0.7&&arl[i]>0.6)
                        {
                            a7++;
                        }
                        if(arl[i]<0.8&&arl[i]>0.7)
                        {
                            a8++;
                        }
                        if(arl[i]<0.9&&arl[i]>0.8)
                        {
                            a9++;
                        }
                        if(arl[i]<1&&arl[i]>0.9)
                        {
                            a10++;
                        }
                     }
    .....

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

    KoirN, 11 Февраля 2010

    Комментарии (12)
  8. Си / Говнокод #2320

    +102.8

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    int parse_path(const char *path,char ***names,int *size)
    {
    		
    	int ch=0; ch='/';
    	*size=0;
    	char *q; q=path+1;
    	char *s=0;
    	
    		
    	while(1)
    	{
    		s=strchr(q,ch);
    		if(s!=NULL)
    		{
    			(*size)++;
    			if(*size==1)
    			{
    				(*names)=malloc(sizeof(char*)*(*size));
    				if(!(*names)) return -1;
    			}
    			else
    			{
    				(*names)=realloc(*names,(*size)*sizeof(char*));
    				if(!(*names)) return -1;
    			}
    			*(*names+(*size)-1)=malloc((s-q+1)*sizeof(char));
    			if(!(*(*names+(*size)-1))) return -1;
    			memset(*(*names+(*size)-1),0,(s-q+1)*sizeof(char));			
    			strncpy(*(*names+(*size)-1),q,s-q);
    			q=s+1;
    		}
    		else
    		{
    			if(*q!='\0')
    			{
    				ch='\0';
    				s=strchr(q,ch);
    				(*size)++;
    				(*names)=realloc(*names,(*size)*sizeof(char*));
    				if(!(*names)) return -1;
    				*(*names+(*size)-1)=malloc((s-q+1)*sizeof(char));
    				if(!(*(*names+(*size)-1))) return -1;
    				memset(*(*names+(*size)-1),0,(s-q+1)*sizeof(char));			
    				strncpy(*(*names+(*size)-1),q,s-q);
    			}
    			break;
    		}
    	}
    	
    	
    	return 0;
    }

    Парсим путь...Это ужасно!!!

    KoirN, 23 Декабря 2009

    Комментарии (18)