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

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

    +117

    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
    #region methods
    
    private bool _updatingState;
    
    public class ProcessArgs : EventArgs
    {
    }
    
    internal event EventHandler<ProcessArgs> OnBeforeProcess;
    
    public abstract void Process(IEnumerable<DataSource> data);
    
    // Тут еще много всего, на удивление есть и методы
    
    #endregion
    
    #region properties
           private readonly IList<IResult> _results = new List<IResult>(100);
            private void buildResultsList()
            {
               //код
            }
       // ну и немного свойств
    #endregion
    
    #region events
      public delegate IEnumerable<int> Strategy();
    
            public class StrategyEventArgs : EventArgs
            {
                public Strategy Strategy { get; set; }
            }
            public event EventHandler OnResultsLoading;
    
            private void raiseOnResultsLoading() 
           {
              foreach (EventHandler handler in OnResultsLoading.GetInvocationList())
                          handler(this, EventArgs.Empty);
           }
    #endregion
    
    #region members
    // пусто - все мемберы сидят по другим region
    #endregion

    За что я не люблю regions, особенно у говнокодеров. Зато если просто открыть файлик то выглядит все замечательно, чисто и аккуратно.

    eval_2009, 05 Января 2011

    Комментарии (14)
  3. C# / Говнокод #4814

    +117

    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
    private void DBGridCategories_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
            {
                int rowsCount = (sender as DataGridView).RowCount;
                if ((rowsCount >= 0) && (rowsCount < 100))
                {
                    (sender as DataGridView).RowHeadersWidth = 30;
                }
                else
                {
                    if ((rowsCount >= 100) && (rowsCount < 1000))
                    {
                        (sender as DataGridView).RowHeadersWidth = 40;
                    }
                    else
                    {
                        if ((rowsCount >= 1000) && (rowsCount < 10000))
                        {
                            (sender as DataGridView).RowHeadersWidth = 50;
                        }
                        else
                        {
                            if ((rowsCount >= 10000) && (rowsCount < 100000))
                            {
                                (sender as DataGridView).RowHeadersWidth = 65;
                            }
                        }
                    }
                }
                using (SolidBrush brush = new SolidBrush(Color.Red))
                {
                    e.Graphics.DrawString((e.RowIndex + 1).ToString(System.Globalization.CultureInfo.CurrentUICulture) + ".", e.InheritedRowStyle.Font, brush, e.RowBounds.Location.X + 10, e.RowBounds.Location.Y + 1);
                }
            }

    школьный профессионал ))

    Maxim546, 02 Декабря 2010

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

    +117

    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
    private XmlNode GetListItemsXML(bool _flag, string _param, SPList _list)
            {
                SPQuery oEmptyQuery = new SPQuery();
                SPListItemCollection spliColl;
                XmlReaderSettings sett = new XmlReaderSettings();
                Stream stream;
                XmlReader reader;
                XmlDocument listItems = new XmlDocument();
                string str = "";
                try
                {
                    switch (_flag)
                    {
                        case true:
                            //select division
                            oEmptyQuery.Query = "<Where><Eq><FieldRef Name=\"URL\"/><Value Type=\"Text\">" + _param + "</Value></Eq></Where>";
                            spliColl = _list.GetItems(oEmptyQuery);
    
                            str = c_my_headFile + spliColl.Xml;
                            str.Replace("\r\n", "");
                            stream = new MemoryStream(new UTF8Encoding(true).GetBytes(str));
    
                            
                            sett.ConformanceLevel = ConformanceLevel.Auto;
                            reader = XmlReader.Create(new StringReader(str), sett);
    
                            
    
                            listItems.LoadXml(str);
                            return listItems.SelectSingleNode("xml").ChildNodes[1].ChildNodes[0];
                            //return listItems.SelectSingleNode("xml").ChildNodes[1];
                        case false:
                            //select articles
                            //_x0420__x0430__x0437__x0434__x04
                            oEmptyQuery.Query = "<Where><Eq><FieldRef Name=\"_x0420__x0430__x0437__x0434__x04\"  LookupId=\"TRUE\" /><Value Type=\"Lookup\">" + _param + "</Value></Eq></Where>";
                            spliColl = _list.GetItems(oEmptyQuery);
    
                            str = c_my_headFile + spliColl.Xml;
                            str.Replace("\r\n", "");
                            stream = new MemoryStream(new UTF8Encoding(true).GetBytes(str));
    
                            
                            sett.ConformanceLevel = ConformanceLevel.Auto;
                            reader = XmlReader.Create(new StringReader(str), sett);
    
                            
    
                            listItems.LoadXml(str);
                            //return listItems.SelectSingleNode("xml").ChildNodes[1].ChildNodes[0];
                            return listItems.SelectSingleNode("xml").ChildNodes[1];
                    }
                }
                catch (XmlException)
                {
                    return null;
                }
                catch (Exception)
                {
                    return null;
                }
                return null;
            }

    Метод, у которого говорящая сигнатура. Увидев ее можно сразу понять что делает этот мегакусок.
    Если кто-нибудь поймет зачем создается экземпляр ридера - объясните. Блин я не понял, честно... xD
    (SPQuery и др. это опять же SharePoint API.)

    dreaktor, 14 Ноября 2010

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

    +117

    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
    public ActionResult Register(RegisterInformation ri, string myCaptcha, HttpPostedFileBase image)
    {
        if (ri.Name == null) ModelState.AddModelError("my", "Введите имя");
        if (ri.Name != null && ri.Name.Length > 32) ModelState.AddModelError("my", "Слишком длинное имя, максимум 32 символа");
        if (ri.Password == null) ModelState.AddModelError("my", "Введите пароль");
        if (ri.Password != null && ri.Password.Length > 32) ModelState.AddModelError("my", "Слишком длинный пароль, максимум 32 символа");
        if (ri.Email == null) ModelState.AddModelError("my", "Введите адрес почты");
        if (ri.Email != null && ri.Email.Length > 32) ModelState.AddModelError("my", "Слишком длинная почта, максимум 32 символа");
        if (ri.Phone == null) ModelState.AddModelError("my", "Введите телефон");
        if (ri.Captcha == null) ModelState.AddModelError("my", "Введите символы с картинки");
        if (ri.Email != null && !IsValid.Mail(ri.Email)) ModelState.AddModelError("my", "Невалидный email");
        long phone;
        if (!long.TryParse(ri.Phone, out phone)) ModelState.AddModelError("my", "Некорректный формат телефона");
        if (ri.Captcha != null&&!CaptchaHelper.VerifyAndExpireSolution(HttpContext, myCaptcha, ri.Captcha)) ModelState.AddModelError("my", "Неверно введены символы с картинки");
    
        if (ModelState.IsValid)
        {
            ...
    }

    Проверяем модель на ошибки

    HIMen, 23 Октября 2010

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

    +117

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    widgetPanel.ID = new Guid(String.Format("{0:D32}", widgetInfo.Id));
    
    // в другом месте
    
    var widgetId = Convert.ToInt32(widgetPanel.ID.ToString().Replace('-', '0').TrimStart('0'));

    Как узнать что именно надо класть на панель?
    Очень просто - брать ее id типа Guid, а искать в списке классов с id типа int

    Разумеется, никто не запрещал сделать что бы оба были guid, но это же совершенно не интересно.

    eval_2009, 21 Октября 2010

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

    +117

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    using System;
    class PleaseSayUra
    {
    static void WriteHelloSam()
    {
    Console.WriteLine("Hellosam");
    WriteHelloSam();
    }
    }

    >>Пытаюсь вызвать метод, а программа пишет ошибка "Не содержит статического метода "Main", подходящего для точки входа ConsoleApplication1" Рассажите что такое?
    http://otvet.mail.ru/question/43958756/

    This is obvious, 10 Августа 2010

    Комментарии (28)
  8. PHP / Говнокод #3888

    +117

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    $_POST['tovar_1'] =  substr(htmlspecialchars(trim($_POST['tovar_1'])), 0, 50); 
    $_POST['tovar_2'] =  substr(htmlspecialchars(trim($_POST['tovar_2'])), 0, 50); 
    $_POST['tovar_3'] =  substr(htmlspecialchars(trim($_POST['tovar_3'])), 0, 50); 
    $_POST['tovar_4'] =  substr(htmlspecialchars(trim($_POST['tovar_4'])), 0, 50); 
    $_POST['tovar_5'] =  substr(htmlspecialchars(trim($_POST['tovar_5'])), 0, 50); 
    $_POST['someone'] =  substr(htmlspecialchars(trim($_POST['someone'])), 0, 10000); 
    $_POST['secondname'] =  substr(htmlspecialchars(trim($_POST['secondname'])), 0, 1000); 
    $_POST['name'] =  substr(htmlspecialchars(trim($_POST['name'])), 0, 50); 
    $_POST['po_pabatk'] =  substr(htmlspecialchars(trim($_POST['po_pabatk'])), 0, 50); 
    $_POST['poste'] =  substr(htmlspecialchars(trim($_POST['poste'])), 0, 40); 
    $_POST['phone'] =  substr(htmlspecialchars(trim($_POST['phone'])), 0, 50); 
    $_POST['e_mail'] =  substr(htmlspecialchars(trim($_POST['e_mail'])), 0, 30);

    Vasiliy, 06 Августа 2010

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

    +117

    1. 1
    if (str_45_ik.ToString() == "".ToString())

    Вот такое неоптимальное говно осталось от предков. Нужно было использовать string.IsNullOrEmpty.

    WebKill_HochetVBan, 16 Июля 2010

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

    +117

    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
    static int ReadEvent (byte [] source, int off, int size, out InotifyEvent evt)
    {
        evt = new InotifyEvent ();
        if (size <= 0 || off > size - 16) {
            return -1;
        }
    
        int len;
        if (BitConverter.IsLittleEndian) {
            evt.WatchDescriptor = source [off] + (source [off + 1] << 8) +
                        (source [off + 2] << 16) + (source [off + 3] << 24);
            evt.Mask = (InotifyMask) (source [off + 4] + (source [off + 5] << 8) +
                        (source [off + 6] << 16) + (source [off + 7] << 24));
            // Ignore Cookie -> +4
            len = source [off + 12] + (source [off + 13] << 8) +
                (source [off + 14] << 16) + (source [off + 15] << 24);
        } else {
            evt.WatchDescriptor = source [off + 3] + (source [off + 2] << 8) +
                        (source [off + 1] << 16) + (source [off] << 24);
            evt.Mask = (InotifyMask) (source [off + 7] + (source [off + 6] << 8) +
                        (source [off + 5] << 16) + (source [off + 4] << 24));
            // Ignore Cookie -> +4
            len = source [off + 15] + (source [off + 14] << 8) +
                (source [off + 13] << 16) + (source [off + 12] << 24);
        }
    
        if (len > 0) {
            if (off > size - 16 - len)
                return -1;
            string name = Encoding.UTF8.GetString (source, off + 16, len);
            evt.Name = name.Trim ('\0');
        } else {
            evt.Name = null;
        }
    
        return 16 + len;
    }

    Mono, обёртка вокруг INotify (вокруг папки INotify создаёт поток (файл?), который нужно с помощью read читать в буфер, и в буфере будет лежать объект-событие в говносериализованной форме).

    Давно столько магических чисел в одном месте не видел o_O

    Можно ли в C# решить элегантнее?
    Аналог всего этого кода на Си: struct inotify_event *event = ( struct inotify_event*) &buffer[i]

    cfdev, 11 Июля 2010

    Комментарии (5)
  11. C# / Говнокод #3489

    +117

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    void  makeGetSet(ref int delegate() get, ref void delegate(int)  set)
    {    
        int _data = 0;
        
        get = {return _data;};
        set = (int Data){_data = Data;};
    }

    Говногость, 16 Июня 2010

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