1. C# / Говнокод #4830

    +119

    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
    public void SendCommand(string command, bool fake)
    {
        ...
        for (var tries = 0; tries < 2; tries++)
        {
            for (var i = 0; i < 2; i++)
                try
                {
                    sended = m_Socket.Send(sendBytes);
                    break;
                }
                catch (Exception e)
                {
                    Log.Error(LogSys, "SendCommand: Xception on send command to server: {0}", e.Message);
                    Thread.Sleep(m_Socket.SendTimeout);
                    if (i == 10)
                    {
                        Log.Error(LogSys, "SendCommand: cant send command in 10 tries.");
                        return;
                    }
                    continue;
                }
            ...
        }
        ...
    }

    Метод "отправил и забыл" ака "Почта России" казался ведущему разработчику способным решить задачу взаимодействия двух сетевых приложений. Возможно, в будущем он планировал написать код, который бы отслеживал изменения в логах и сообщал о найденных в них ошибках, но этот метод был обнаружен быстрее

    Запостил: banderror, 04 Декабря 2010

    Комментарии (13) RSS

    • показать все, что скрытошо за накуй??!!!!!!!!!!!!!!!!!
      Ответить
      • показать все, что скрытоЧё минусуете???
        Где логика этого кода.
        if (i == 10) шо за нахуй это?

        Я так понимаю автор хотел сделать метод который мог бы с определённом кол-ом попыток отправлять данные, но это пцзд просто
        Ответить
    • for (var i = 0; i < 2; i++)
      ...
      if (i == 10)
      Ответить
      • "10" - это видимо в двоичной системе...
        ("всё смешалось в доме Облонских" (с) )
        Ответить
      • Более того :
        for (var tries = 0; tries < 2; tries++) {
        ...
        if (i == 10)
        {
           Log.Error(LogSys, "SendCommand: cant send command in 10 tries.");
        Ответить
        • да, но есть еще и вложенный цикл, в котором собственно отправка и происходит, поэтому все правильно, считаем по ай. а в трае могут быть попытки, предположим, парсинга.

          m_Socket.SendTimeout придумали а something.RetryCount забыли. поэтому после рефакторинга полезли то двойки то десятки.
          Ответить
          • Понятно, что считают по "ай", и в условии "ай". Но переменным-то надо адекватные имена давать, тем более если текстом в лог об этом пишут. Потому что в данном случае должны быть либо циклы поменяны местами, либо :
            Log.Error(LogSys, "SendCommand: cant send command in 10 i-s.");
            Ответить
    • > sended
      а кроме того, опять англ. не знаем
      Ответить
      • Ты не нутриш ангсоц.
        Неправильные глаголы - это костыль, они нарушают стройную структуру языка.
        Истинный программист должен их ненавидеть, поэтому sended.
        Ответить
      • а Xception вас значит устраивает? )
        Ответить
    • не, не, надо так:
      public void SendCommandToRemoteComputer(string command, bool fake)
      ...далее по тексту...
      Ответить
      • public void ПодчинитьНепослушнуюМашину(string атата, bool наполномсерьезе)
        Ответить

    Добавить комментарий