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

    Всего: 101

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

    +76

    1. 1
    assertTrue(!reportDto.getOrder());

    Фантазия индусов неиссякаема. Перед написанием кода читать Упанишады до просветления.

    roman-kashitsyn, 01 Декабря 2011

    Комментарии (38)
  3. Куча / Говнокод #8644

    +136

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    <ui:param name="success_style" value="color:green;"/>
    <ui:param name="error_style" value="color:red;"/>
    
    <!-- some code -->
    
    <h:outputText rendered="#{model.successSubmitted}"
        value="#{membershipReportsLabels.serviceSucceed}"
        style="#{success_style}"/>
    
    <h:outputText rendered="#{model.unSuccessSubmitted}"
        value="#{membershipReportsLabels.serviceUnSucceed}"
        style="#{error_style}"/>

    Вроде jsf тут ещё не было. Яркое подтверждение того, что CSS придумали трусы.

    roman-kashitsyn, 25 Ноября 2011

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

    +80

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Calendar startCal = Calendar.getInstance();
    startCal.setTime(DateUtils.truncateDateAndTimeToDateOnly(startDate));
    Date strtDt = startCal.getTime();
    
    Calendar endCal = Calendar.getInstance();
    endCal.setTime(DateUtils.truncateDateAndTimeToDateOnly(endDate));
    Date endDt = endCal.getTime();

    Далее по тексту strtDt и endDt используются ровно один раз, startCal и endCal не используются больше вообще. Утилитный метод возвращает требуемый экземпляр класса Date.

    roman-kashitsyn, 21 Ноября 2011

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

    +74

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    protected static final Set<String> SUCCESS_STATUSES = new HashSet<String>(3) {
        private static final long serialVersionUID = 76234654856701L;{
        add(PROCESSING_COMPLETE_RESULTS_CLEAR.toString());
        add(PROCESSING_COMPLETE_WITH_RESULTS_INFORMATION.toString());
        add(NOT_PROCESSED_STATE_LIMITATION.toString());
    }};

    Эпичный способ создать статическую константную мапу без статического блока в основном классе

    roman-kashitsyn, 10 Ноября 2011

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

    +135

    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
    static void Main(string[] args)
    {
        string[] indiaCityVisit = {
            "Delhi", "Jodhpur", "Mumbai", "Pune",  "Agra",
            "Shimla", "Bengaluru", "Mysore", "Ooty",
            "Jaipur", "Nagpur", "Amritsar", "Hyderabad",
            "Goa", "Ahmedabad" };
    
        string cities = String.Join(",", indiaCityVisit
                              .Select(s => s.ToString())
                              .ToArray());
        Console.WriteLine(cities);      
       
        Console.ReadLine();
    }

    http://www.devcurry.com/2010/12/convert-string-array-into-string-c-linq.html
    Индусы такие индусы

    roman-kashitsyn, 27 Октября 2011

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

    +83

    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
    public static long getDifference(Date date1, Date date2, int unit) {
    	if (date1 == null || date2 == null) {
    		throw new IllegalArgumentException("Date cannot be null!");
    	}
    
    	if (date1.after(date2)) {
    		Date swap = date1;
    		date1 = date2;
    		date2 = swap;
    	}
    		
    	long result = 0;
    	
    	long diff = date2.getTime() - date1.getTime() + (60 * 60 * 1000L);
    		
    	switch (unit) {
    	case Calendar.YEAR:
    		result = diff / (60 * 60 * 24 * 365 * 1000L);
    		break;
    	case Calendar.MONTH:
    		result = diff / (60 * 60 * 24 * 30 * 1000L);
    		break;
    	case Calendar.DAY_OF_YEAR:
    		result = diff / (60 * 60 * 24 * 1000L);
    		break;
    	default:
    		throw new UnsupportedOperationException("Impossible to get time difference in coerced unit.");
    	}
    		
    	return result;
    }

    Опять даты, опять.... Java?
    Удивительно, но этот код использовался в вычислениях, связанных с начислением выплат. Разумеется, считалось всё неправильно, в связи с чем было обнаружено ЭТО.

    roman-kashitsyn, 25 Октября 2011

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

    +78

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    // inside some method
    final DateFormat dateFormat = i18n.getDateFormat();
    synchronized (dateFormat) {
        formatedViolationDate = (violationDate != null) ?
        dateFormat.format(violationDate) : "";
    }

    i18n.getDateFormat() возвращает статический объект DateFormat, который может использоваться несколькими потоками. В руки бы накласть тому, кто это писал.
    Решение: getDateFormat() возвращает строку формата, объект формата создаем при каждом вызове.

    roman-kashitsyn, 20 Октября 2011

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

    +82

    1. 1
    2. 2
    3. 3
    if (getAgentAgrees() && (firstOrdered || secondOrdered) && !(getDisclaimer().getDisplayed())) {
        getDisclaimer().setDisplayed(false);
    }

    Минут пять вникал в условия, в итоге выяснил, что код только тратит время (моё и процессора).

    roman-kashitsyn, 19 Октября 2011

    Комментарии (11)
  10. Куча / Говнокод #8187

    +136

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    (defparameter *pcl-files-map*
      '#(("introduction-why-lisp"
          "Введение: почему Lisp?" 
          "%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5%D0%BF%D0%BE%D1%87%D0%B5%D0%BC%D1%83lisp") ; <- WTF???
        
         ("lather-rinse-repeat-a-tour-of-the-repl"
          "Намылить, смыть, повторить: знакомство с REPL"
          "%D1%82%D1%83%D1%80%D0%B2repl")   ; <- WTF???
          ;; ...
    ))

    Practical Common Lisp такой Practical.
    https://github.com/archimag/rulisp/blob/master/src/pcl.lisp

    Матёрые лисперы просветите, если я что-то не понимаю: неужели хранение ссылок в исходном коде в таком виде чем-то обосновано?

    roman-kashitsyn, 13 Октября 2011

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

    +80

    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
    public class Context {
        public int countSuccess;
        public int countFailed;
        // ....
        public void markSuccess() {
            countSuccess++;
            countFailed--;
        }
    
        public void markSuccessAll() {
            countSuccess += countFailed;
            countFailed = 0;
        }   
        // ....
    }

    Вот такая вот супер-абстракция. Пример клиентского кода:

    public void processRequest(Context ctx) {
    // ...
    ctx.countFailed = elems.size();
    for (String elem : elems) {
    boolean success = doSomething(elem);
    if (success) {
    ctx.markSuccess();
    }
    }
    }

    roman-kashitsyn, 12 Октября 2011

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