1. Java / Говнокод #21731

    +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
    private long parseDate(String s) {
    			Calendar cal = Calendar.getInstance();
    			String y = s.substring(0,4);
    			String m = s.substring(4,6);
    			String d = s.substring(6,8);
    			String h = s.substring(8,10);
    			String M = s.substring(10,12);
    			String S = s.substring(12,14);
    			cal.set(Calendar.MILLISECOND, 0);
    			cal.set(Calendar.YEAR,Integer.parseInt(y));
    			cal.set(Calendar.MONTH,Integer.parseInt(m)-1);
    			cal.set(Calendar.DAY_OF_MONTH,Integer.parseInt(d));
    			cal.set(Calendar.HOUR_OF_DAY,Integer.parseInt(h));
    			cal.set(Calendar.MINUTE,Integer.parseInt(M));
    			cal.set(Calendar.SECOND,Integer.parseInt(S));
    			String [] v = s.split(" ");
    			int msOffset = -(int)((Integer.parseInt(v[1].replace("+", ""))/100f) * 3600000); // - offset;
    			cal.add(Calendar.MILLISECOND, msOffset);
    			return cal.getTimeInMillis();
    		}

    SimpleDateFormat? не, не слышал

    krokozyabr, 27 Ноября 2016

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

    0

    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
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    public class DataImpl extends AsyncTask<Void, Void, Object> implements IUrl {
    
        GsonBuilder builder = new GsonBuilder();
        Gson gson = builder.create();
    
        private IResults what;
    
        public DataImpl(IResults what) {
            this.what = what;
        }
    
        @Override
        protected Object doInBackground(Void... params) {
            
            try {
                String url = "";
                if (what instanceof CategoriesList) {
                    url = URL + "cat";
                } else if (what instanceof StudentsList) {
                    url = URL + "students?cat=" + ((StudentsList) what).category;
                }
                String json = IOUtils.toString(new URL(url));
                fillResults(json, result, gson);
            } catch (Exception ex) {
                if (what instanceof CategoriesList) {
                    ((CategoriesList) what).exception = ex;
                } else if (what instanceof StudentsList) {
                    ((StudentsList) what).exception = ex;
                }
            }
            return what;
        }
    
        @Override
        protected void onPostExecute(Object what) {
            if (what instanceof IResults) {
                Observer observer = ((IResults) what).getObserver();
                if (observer != null) {
                    observer.update(null, what);
                }
            }
        }
    
        public static class CategoriesList extends ArrayList<Categoty> implements IResults {
            public Exception exception;
            public WeakReference<Observer> observer ;
    
            @Override
            public Observer getObserver() {
                return observer == null ? null : observable.get();
            }
        }
        public static class StudentsList extends ArrayList<Student> implements IResults {
            public Exception exception;
            public String category;
            public WeakReference<Observer> observer ;
    
            @Override
            public Observer getObserver() {
                return observer == null ? null : observable.get();
            }
        }
    
        public interface IResults {
            Observer getObserver();
        }
    
    }

    это. все. слишком. %;?ч!2!!.

    _a_o_O, 24 Ноября 2016

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    private void sendMessage(String templateName, boolean waitResponse) throws Exception {
        ....
        if (waitResponse && !checkResponse()) {
            return;
        }
    }

    Серьезный проект в большой европейской компании. Идея в том чтобы вызвать метод checkResponse(), который как-то менят состояние системы.

    pltanton, 22 Ноября 2016

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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    // цикл по результатам стартового запроса
            int flag = 0;
            for (Map<String, Object> mapWaybill : mapWaybillsList) {
                if (++flag > 1) break;
                logger.info("Начало обработки записи " + mapWaybill.toString());
    ...
    }

    очень долгий цикл и особо полезная инфа

    Lure Of Chaos, 20 Ноября 2016

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    public class TO {
        
        public static <T> T DO () {
            class NotImplementedYetException extends RuntimeException {} throw new NotImplementedYetException();
        }
    }

    Эти веселые люди...

    _a_o_O, 17 Ноября 2016

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

    +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
    String[] choices = {"Принял товар", "Получил деньги", "Товар не принят", "Частичный возврат", "Сдал Товар", "Сдал деньги", "Завершить"};
        String[] choicesSend = {"gotGood", "gotMoney", "notAcceptedGood", "partialReturn", "gaveGood", "gaveMoney", "finished"};
    
            statusHashMap.put("gotGood", "Товар принят");
            statusHashMap.put("gotMoney", "Деньги получены");
            statusHashMap.put("notAcceptedGood", "Товар не принят");
            statusHashMap.put("partialReturn", "Частичный возврат");
            statusHashMap.put("gaveGood", "Товар сдан");
            statusHashMap.put("gaveMoney", "Деньги сданы");
            statusHashMap.put("finished", "Завершенный");
            statusHashMap.put("inprocess", "Активный");
            statusHashMap.put("isGoing", "Я еду");
            statusHashMap.put("gotOrder", "Заказ принят");
    
            statusHashMapOrder.put("gotGood", 0);
            statusHashMapOrder.put("gotMoney", 1);
            statusHashMapOrder.put("notAcceptedGood", 2);
            statusHashMapOrder.put("partialReturn", 3);
            statusHashMapOrder.put("gaveGood", 4);
            statusHashMapOrder.put("gaveMoney", 5);
            statusHashMapOrder.put("finished", 6);
            statusHashMapOrder.put("inprocess", 7);
            statusHashMapOrder.put("isGoing", 8);
            statusHashMapOrder.put("gotOrder", 9);

    Вот так вот мы работаем со статусами заказов

    kschingiz, 08 Ноября 2016

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

    0

    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
    int getPositionV1(String xml,int row,int col)
    {
    	int p=0;
            for (int lineNum=1;lineNum!=row;lineNum++)
    	{
                p=xml.indexOf("\n\r",p)+eol.length();
                if (p==0) throw new RuntimeException ("XML do not contain row "+row);
            }
    	return p+col;
    }
    
    int getPositionV2(String xml, int row, int col)
    {
           int p0=0; int p1=xml.indexOf("\n",p0); int p2=xml.indexOf("\r",p0);
    	int p3=(p1!=-1 && p2!=-1)?xml.indexOf("\r\n",p0):-1;
           for (int lineNum=1;lineNum!=row;lineNum++){
                if (p1!=-1 && p1<p0) p1=xml.indexOf("\n",p0); if (p2!=-1 && p2<p0) p2=xml.indexOf("\r",p0);
                if (p3!=-1 && p3<p0) p3=xml.indexOf("\r\n",p0);
                String eol=""; if (p1!=-1 && p2!=-1 && p3!=-1){
                    if (p1<p2 && p1<p3) {eol="\n"; p0=p1;
    		}else if (p2<p1 && p2<p3) {eol="\r"; p0=p2;
                    }else if (p3<=p1 && p3<=p2) {eol="\r\n"; p0=p3;}
                }else if (p1!=-1 && p2!=-1){
                    if (p1<p2) { eol="\n"; p0=p1;} else if (p2<p1) {eol="\r"; p0=p2;}
                }else if (p1!=-1 && p3!=-1){
                    if (p1<p3) { eol="\n"; p0=p1;} else if (p3<=p1) {eol="\r\n"; p0=p3;}
                }else if (p2!=-1 && p3!=-1){
                    if (p2 < p3) {eol="\r"; p0=p2;} else if (p3<=p2) {eol="\r\n"; p0=p3;}
                }else if (p1!=-1){eol="\n"; p0=p1;} else if (p2!=-1) {eol="\r"; p0=p2;
                }else if (p3!=-1){eol="\r\n"; p0=p3;}
                p0+=eol.length(); if (p0<=0) throw new RuntimeException("XML do not contain row "+row);
    	}
        return p0+col-1;
    }

    Задача: дана строка (String), номер линии (строки) и столбца, где расположен символ; найти позицию этого символа в исходной строке.
    Первое решение: getPositionV1

    Но конец строки может быть любой, например \n,\r,\n\r, а ещё несколько подряд идущих строк.
    Задача: исправить, чтобы работало со всеми видами и сочетаниями переносов строк, и работало быстро.
    Второе решение: getPositionV2

    А достаточно было использовать регулярное выражение: Pattern.compile("\\R").matcher(xml)

    AlCodel, 26 Октября 2016

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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    try {
          // Многа кода
    } catch (Exception e) {
          ;
    }

    Лучшая обработка исключений

    kernogo, 23 Октября 2016

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

    0

    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
    struct Node{
        char* d;
        Node *left;
        Node *right;
    };
    
    Node* search_insert(Node *root, char* d){
         /*.........*/
        Node *pnew = new Node;
        pnew->d = d
         /*.........*/
    }
    int main(){
        /*.........*/
        Node *root=NULL;
        char* r=new char;
        for (int i = 0; i<10; i++){
                scanf("%s", r);
                root=search_insert(root, b[i]);
        }
         /*.........*/
    }

    Вот так кодят в одной военной конторе.

    kir_rik, 22 Октября 2016

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    public MarshalInfo getMarshalInfo(IType type) {
      if (type == null) {
        return null;
      }
      ...
    }

    И вот такое в куче методов по всему коду. Система начиналась в 2001 году, видимо в то время писали по принципу "В любой непонятной ситуации возвращай null". Так оно и работает - если что-то идет не плану, все падает с NPE, и сука попробуй разберись потом, откуда там неожиданный null прилетел. Самое ужасное, что до сих пор куча разработчиков, многим из которых за 60, продолжают писать в том же духе по сей день.

    zazazazazaza, 21 Октября 2016

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