1. Лучший говнокод

    В номинации:
    За время:
  2. Java / Говнокод #1787

    +75.3

    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
    public static ru.project.subpackage.PersonDTO convertOshPersonDtoToPersonDto(OshPersonDTO person){
            ru.project.subpackage.PersonDTO dto = new ru.project.subpackage.PersonDTO();
            dto.setPersonid(person.getPersonid().longValue());
            dto.setNamelast(person.getNamelast());
            dto.setNamefirst            (person.getNamefirst            ());
            dto.setNamesec              (person.getNamesec              ());
            dto.setInitials             (person.getInitials             ());
            dto.setSex                  (convertSkVocValue(person.getSex()));
            dto.setReason               (person.getReason               ());
            dto.setWorkphone            (person.getWorkphone            ());
            dto.setWorkphonedigit       (person.getWorkphonedigit       ());
            dto.setLocalphone           (person.getLocalphone           ());
            dto.setLocalphonedigit      (person.getLocalphonedigit      ());
            dto.setHomephone            (person.getHomephone            ());
            dto.setHomephonedigit       (person.getHomephonedigit       ());
            dto.setMobilephone          (person.getMobilephone          ());
            dto.setMobilephonedigit     (person.getMobilephonedigit     ());
            dto.setFax                  (person.getFax                  ());
            dto.setFaxdigit             (person.getFaxdigit             ());
            dto.setPager                (person.getPager                ());
            dto.setEmail                (person.getEmail                ());
            dto.setWeb                  (person.getWeb                  ());
            dto.setNamelastdative       (person.getNamelastdative       ());
            dto.setNamefirstdative      (person.getNamefirstdative      ());
            dto.setNamesecdative        (person.getNamesecdative        ());
            dto.setNamelastaccusative   (person.getNamelastaccusative   ());
            dto.setNamefirstaccusative  (person.getNamefirstaccusative  ());
            dto.setNamesecaccusative    (person.getNamesecaccusative    ());
            dto.setNamelastgenitive     (person.getNamelastgenitive     ());
            dto.setNamefirstgenitive    (person.getNamefirstgenitive    ());
            dto.setNamesecgenitive      (person.getNamesecgenitive      ());
            dto.setNamelastinstrumental (person.getNamelastinstrumental ());
            dto.setNamefirstinstrumental(person.getNamefirstinstrumental());
            dto.setNamesecinstrumental  (person.getNamesecinstrumental  ());
            dto.setNamelastprepositional(person.getNamelastprepositional());
            dto.setNamefirstprepositional(person.getNamefirstprepositional());
            dto.setNamesecprepositional (person.getNamesecprepositional ());
            return dto;
        }

    И так далее еще несколько сотен строк. А главное переупаковка из одних объектов в другие и обратно бессмысленна, т.к. можно использовать исходные (они доступны в приложении)

    johnsoft, 07 Сентября 2009

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

    +75.2

    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
    boolean isCustomerWMIDExists = containParameterWithName( request, CUSTOMER_WMID_PARAM_NAME );
    boolean isSellerWMIDExists = containParameterWithName( request, SELLER_WMID_PARAM_NAME );
    boolean isPurseExists = containParameterWithName( request, PURSE_PARAM_NAME );
    boolean isDescriptionExists = containParameterWithName( request, BasePaymentSystem.DESCRIPTION_PARAM_NAME );
    boolean isInvAddressExists = containParameterWithName( request, INVADDRESS_PARAM_NAME );
    boolean isPeriodExists = containParameterWithName( request, PERIOD_PARAM_NAME );
    boolean isExperationExists = containParameterWithName( request, EXPERATION_PARAM_NAME );
    boolean isDateCrtExists = containParameterWithName( request, DATECRT_PARAM_NAME );
    boolean isDateUpdExists = containParameterWithName( request, DATEUPD_PARAM_NAME );
    boolean isWmInvIdExists = containParameterWithName( request, INVID_PARAM_NAME );
    boolean isRequestNExists = containParameterWithName( request, REQUESTN_PARAM_NAME );
    boolean isProjectIdExists = containParameterWithName( request, BasePaymentSystem.PROJECTID_PARAM_NAME );
    boolean isUserIdExists = containParameterWithName( request, BasePaymentSystem.USERID_PARAM_NAME );
    boolean isCurrencyExists = containParameterWithName( request, CURRENCY_PARAM_NAME );
    
    if (isCustomerWMIDExists && isSellerWMIDExists && isPurseExists && isDescriptionExists && isInvAddressExists && isPeriodExists
    		&& isExperationExists && isDateCrtExists && isDateUpdExists && isWmInvIdExists && isRequestNExists && isProjectIdExists
    		&& isUserIdExists && isCurrencyExists)
    {
    	wminfo.setCustomerWMID( request.getParameter( CUSTOMER_WMID_PARAM_NAME ) );
    	wminfo.setSellerWMID( request.getParameter( SELLER_WMID_PARAM_NAME ) );
    	wminfo.setPurse( request.getParameter( PURSE_PARAM_NAME ) );
    	wminfo.setDescription( request.getParameter( BasePaymentSystem.DESCRIPTION_PARAM_NAME ) );
    	wminfo.setInvAddress( request.getParameter( INVADDRESS_PARAM_NAME ) );
    	wminfo.setPeriod( Byte.parseByte( request.getParameter( PERIOD_PARAM_NAME ) ) );
    	wminfo.setExperation( Byte.parseByte( request.getParameter( EXPERATION_PARAM_NAME ) ) );
    	wminfo.setDateCrt( ( getWebMoneyDateString( Long.parseLong( request.getParameter( DATECRT_PARAM_NAME ) ) ) ) );
    	wminfo.setDateUpd( ( getWebMoneyDateString( Long.parseLong( request.getParameter( DATEUPD_PARAM_NAME ) ) ) ) );
    
    	wminfo.setWmInvID( request.getParameter( INVID_PARAM_NAME ) );
    	wminfo.setRequestN( Long.parseLong( request.getParameter( REQUESTN_PARAM_NAME ) ) );
    	wminfo.setCurrency( Currency.getInstance( request.getParameter( CURRENCY_PARAM_NAME ) ) );
    	...
    }

    Разбор параметров GET-запроса, переданных из http://govnokod.ru/2015
    // не дай бог, начальство заметит, что я рабочий код публикую

    spbAngel, 21 Октября 2009

    Комментарии (13)
  4. Java / Говнокод #17867

    +75

    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
    public class SomePoint<T> implements IsPoint<T> {
    
        // some code...
    
        protected Object getValue(Object object) {
            IsPoint<?> point = (IsPoint<?>) this;
            Object obj = point == null ? null : point.getNonSafe((Enum<?>) object);
            return obj == null ? new Double(0) : obj;
        }
    
        // some code
    
    }

    Где-то в глубинах одного проекта

    nikit13, 26 Марта 2015

    Комментарии (7)
  5. Java / Говнокод #17859

    +75

    1. 1
    2. 2
    3. 3
    public boolean setTraceColor(String traceName, Color traceColor) {
        return true;
    }

    что бы это значило...

    nikit13, 25 Марта 2015

    Комментарии (9)
  6. Java / Говнокод #17383

    +75

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    public static int compareXmlGregorianCalendars(XMLGregorianCalendar left, XMLGregorianCalendar right) {
    	 int result = left.compare(right);
    	 if (result == DatatypeConstants.LESSER)
    		 return -1;
    	 else if (result == DatatypeConstants.EQUAL)
    		 return 0;
    	 else if (result == DatatypeConstants.GREATER)
    		 return 1;
    	 else
    		 throw new RuntimeException("Indeterminate result when comparing XMLGregorianCalendars.");
     }

    DatatypeConstants:

    /**
    * <p>Comparison result.</p>
    */
    public static final int LESSER = -1;

    /**
    * <p>Comparison result.</p>
    */
    public static final int EQUAL = 0;

    /**
    * <p>Comparison result.</p>
    */
    public static final int GREATER = 1;
    /**
    * <p>Comparison result.</p>
    */
    public static final int INDETERMINATE = 2;

    yccypuuck, 29 Декабря 2014

    Комментарии (5)
  7. Java / Говнокод #16676

    +75

    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
    package com.seriouscompany.business.java.fizzbuzz.packagenamingpackage.impl;
    
    import com.seriouscompany.business.java.fizzbuzz.packagenamingpackage.interfaces.factories.FizzBuzzSolutionStrategyFactory;
    import com.seriouscompany.business.java.fizzbuzz.packagenamingpackage.impl.factories.EnterpriseGradeFizzBuzzSolutionStrategyFactory;
    import com.seriouscompany.business.java.fizzbuzz.packagenamingpackage.interfaces.strategies.FizzBuzzSolutionStrategy;
    
    public class FizzBuzz {
    	public void fizzBuzz(int nFizzBuzzUpperLimit) {
    		final FizzBuzzSolutionStrategyFactory mySolutionStrategyFactory =
    			new EnterpriseGradeFizzBuzzSolutionStrategyFactory();
    		final FizzBuzzSolutionStrategy mySolutionStrategy =
    			mySolutionStrategyFactory.createFizzBuzzSolutionStrategy();
    		mySolutionStrategy.runSolution(nFizzBuzzUpperLimit);
    	}
    }

    FizzBuzz Enterprise Edition на Java от уважаемых разработчиков.

    http://habrahabr.ru/company/abbyy/blog/173885/
    https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition

    gost, 10 Сентября 2014

    Комментарии (16)
  8. Java / Говнокод #16644

    +75

    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
    db.insertInto(VISIBILITY_CONSTRAINT,
        VISIBILITY_CONSTRAINT.UUID,
        VISIBILITY_CONSTRAINT.VERSION,
        VISIBILITY_CONSTRAINT.FIRST_NAME_HIDDEN,
        VISIBILITY_CONSTRAINT.MIDDLE_NAME_HIDDEN,
        VISIBILITY_CONSTRAINT.LAST_NAME_HIDDEN,
        VISIBILITY_CONSTRAINT.BIRTHDAY_HIDDEN,
        VISIBILITY_CONSTRAINT.GENDER_HIDDEN,
        VISIBILITY_CONSTRAINT.EMAIL_HIDDEN,
        VISIBILITY_CONSTRAINT.COUNTRY_HIDDEN,
        VISIBILITY_CONSTRAINT.REGION_HIDDEN,
        VISIBILITY_CONSTRAINT.CITY_HIDDEN,
        VISIBILITY_CONSTRAINT.STREET_HIDDEN,
        VISIBILITY_CONSTRAINT.ZIP_CODE_HIDDEN,
        VISIBILITY_CONSTRAINT.PHONE_NUMBER_HIDDEN,
        VISIBILITY_CONSTRAINT.HOME_PAGE_HIDDEN,
        VISIBILITY_CONSTRAINT.HOBBIES_HIDDEN
    ).values(
        visibilityConstraintId,
        UInteger.valueOf(0),
        0.byteValue(),
        0.byteValue(),
        0.byteValue(),
        0.byteValue(),
        0.byteValue(),
        0.byteValue(),
        0.byteValue(),
        0.byteValue(),
        0.byteValue(),
        0.byteValue(),
        0.byteValue(),
        '0', // shit happens
        0.byteValue(),
        0.byteValue()
    ).execute()

    Пока писал тесты к говнопроекту, нашел PHONE_NUMBER_HIDDEN VARCHAR(64) NOT NULL. Hibernate по умолчанию ставил туда null. Там еще много всего, но остальное сюда не уместится.

    scriptin, 04 Сентября 2014

    Комментарии (2)
  9. Java / Говнокод #16242

    +75

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    protected String createPublicCacheKey(String...keyElements) {
    	String initial = "public";
    
    	StringBuilder format = new StringBuilder();
    	format.append(initial);
    
    	for(int i=0;i<keyElements.length;i++) {
    		format.append(".%s");
    	}
    
    	return String.format(format.toString(), keyElements);
    }

    Объясните, позязя, почему нельзя сразу добавлять данные к StringBuilder'у. Может быть в этом есть скрытый сакральный смысл желание выпендриться знанием JDK.

    kostoprav, 27 Июня 2014

    Комментарии (46)
  10. Java / Говнокод #16233

    +75

    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
    import java.lang.reflect.Field; 
    
    public class Main {
        public static void main(String[] args) throws Exception {
            Class cache = Integer.class.getDeclaredClasses()[0];
            Field c = cache.getDeclaredField("cache");
            c.setAccessible(true);
            Integer[] array = (Integer[]) c.get(cache);
            array[132] = array[133];
    
            System.out.printf("%d",2 + 2);
        }
    }

    Джаважды джва равно пять

    http://ideone.com/1Ap0wW

    TarasB, 25 Июня 2014

    Комментарии (173)
  11. Java / Говнокод #16215

    +75

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    HostInfo info = null;
    
    if (info == null)
        return;
    
    info.setOsName(os);

    Выдержка из достаточно серьезного проекта

    SkiFF, 24 Июня 2014

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