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

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

    −122

    1. 1
    2. 2
    ALTER TABLE [dbo].[IssueGroup]  WITH CHECK ADD  CONSTRAINT [FK_IssueGroup_Group] FOREIGN KEY([ProjectId], [GroupId])
    REFERENCES [dbo].[Group] ([GroupId],[ProjectId])

    Часа 2 искал проблему в чужом коде - оказалось, что просто поля ProjectId и GroupId были записаны в разных порядках сначала FOREIGN KEY([ProjectId], [GroupId]), а потом REFERENCES [dbo].[Group] ([GroupId],[ProjectId]).

    vadimliman, 16 Ноября 2010

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

    +115

    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
    private string ContentTransformation(string _xmlContent, string _xsltScheme)
            {
                try
                {
                    XmlReaderSettings xmlRS = new XmlReaderSettings();
                    XPathDocument doc = new XPathDocument(XmlReader.Create(new StringReader(_xmlContent), xmlRS));
                    XPathNavigator nav = doc.CreateNavigator();
                    XmlReader reader = XmlReader.Create(new StringReader(nav.OuterXml));
                    reader.MoveToContent();
    
                    System.IO.StringReader strRead = new StringReader(_xsltScheme);
    
                    XslCompiledTransform xslt = new XslCompiledTransform();
                    xslt.Load(XmlReader.Create(strRead));
    
                    // Transform the node fragment. 
                    StringWriter strW = new StringWriter();
                    XmlWriterSettings wrSet = new XmlWriterSettings();
                    wrSet.ConformanceLevel = ConformanceLevel.Auto;
                    XmlWriter xmlW = XmlWriter.Create(strW, wrSet);
    
                    xslt.Transform(reader, xmlW);
                    xmlW.Close();
    
                    return strW.ToString();
                }
                catch (ArgumentNullException anEx)
                {
                    return "XSL преобразование не выполнено!<br>Параметр равен null.<br>" + anEx.Message;
                }
                catch (XsltException xsltEx)
                {
                    return "XSL преобразование не выполнено!<br>Проверте XSL схему.<br>" + xsltEx.Message;
                }
                catch (Exception ex)
                {
                    return ex.Message;
                }
            }

    Учимся применять XSL шаблон к XML данным, и между делом поглядываем в сий гениальный шедевр - в нем вся истина о том, как четко и со вкусом, а главное элегантно выполнить эту задачу. Да еще и обработка ошибок сделана! Шикарный кусок.

    dreaktor, 14 Ноября 2010

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

    +116

    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
    private string makeUrlAbsolute(string url)
            {
                isWebPartPropertiesError = false;
                try
                {
                    if (!string.IsNullOrEmpty(url))
                    {
                        bool shouldCheckForRootWeb = false;
    
                        if (!url.StartsWith("http://"))
                        {
                            if (url.StartsWith("//")) throw new Exception("Неправильная ссылка");
                            if (!url.StartsWith("/")) url = url.Insert(0, "/");
                            url = url.Insert(0, SPContext.Current.Site.Url);
                            shouldCheckForRootWeb = true;
                        }
                        using (SPSite site = new SPSite(url))
                        {
                            using (SPWeb web = site.OpenWeb())
                            {
                                if (!url.Contains(web.Url)) isWebPartPropertiesError = true;
                                if (shouldCheckForRootWeb && site.Url.Equals(web.Url)) isWebPartPropertiesError = true;
                                return url;
                            }
                        }
                    }
                    else return "";
                }
                catch
                {
                    isWebPartPropertiesError = true;
                    return "";
                }
    
                //this.CatalogIconImageUrl = this.ClassResourcePath + "/Test.ico";
                //this.TitleIconImageUrl = this.ClassResourcePath + "/Test.ico";
            }

    Продолжаю серию мегаполезных хелперов.
    Эта страхолюдина найдена там же где и пред. кусок.
    Судя по названию, она должна делать урл абсолютным...
    (SPSite и др., это SharePoint API если кто не в курсе)

    dreaktor, 14 Ноября 2010

    Комментарии (2)
  5. JavaScript / Говнокод #4618

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    var Class = function () {
    	this.method = function () {
    		/* … */
    	};
    };
    
    Class = new Class();

    fuckyounoob, 13 Ноября 2010

    Комментарии (2)
  6. JavaScript / Говнокод #4605

    +145

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    $(function(){
        oCatalog=new Catalog();
      });
          
      Catalog = function (){
        
        function test (data){
          alert(data);
        }
        
      }

    exoundeeq, 12 Ноября 2010

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

    +75

    1. 1
    2. 2
    3. 3
    for ( Cluster c : Clusters.getInstance( ).listValues( ) ) {
      stopNet.newInstance( ).dispatch( cluster );
    }

    Суровые калифорнийцы как всегда суровы...

    raorn, 12 Ноября 2010

    Комментарии (2)
  8. Python / Говнокод #4556

    −99

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    def __init__(self, pth = None):
    		self._tag = None
    		self._valid = False
    		self._pthtofile = pth
    		if pth != None:
    			try:
    				self._tag = tagpy.FileRef(pth).tag()
    				self._valid = True
    			except ValueError:
    				pass

    Конструктор класса.
    Дальше приходится всё время дёргать объект проверяя его на валидность.
    Как переписать не так говнисто?

    KoirN, 07 Ноября 2010

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

    +145

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    private TaskScheduler scheduler;
    
      protected TaskScheduler() {
      }
    
      public final TaskScheduler getScheduler() {
        if (this.scheduler == null) {
          this.scheduler = new TaskScheduler();
        }
        return this.scheduler;
      }

    мелочь, а смешно получилось ))

    Lure Of Chaos, 03 Ноября 2010

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

    +183

    1. 1
    table[^>]*((name[^>]*=[^>]*mainTable|id[^>]*=[^>]*mainTable)){1,2}

    also check dis
    http://govnokod.ru/853#comment2667
    рейтинг: −1.8
    "1 за и 0 против"

    tags: stupid regex, regullar expression, govnokod bugs

    3.14159265, 29 Октября 2010

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

    −114

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    bool userNameChanged = true;
      [userName isEqualToString:oldUserName]!=YES;
      bool passwordChanged = true;
      [password isEqualToString:oldPassword]!=YES;
      bool retVal = true;
      if(userNameChanged)
      {
        retVal &= setUserNameInPreferences(userName);
      }

    Чудеса сравнения

    apodrugin, 27 Октября 2010

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