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

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

    +113

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    if (((productOrder.DataSet).ProductOrder[0].RowState != DataRowState.Deleted) &&
                    (productOrder.DataSet).ProductOrder[0].IsOrderReferenceNull() &&
                    WebOrderType.IsIngestion() &&
                    (ingestOrder != null) && (ingestOrder.IngestOrder.Count > 0) &&
                    !(ingestOrder).IngestOrder[0].IsOrderReferenceNull()){
                    (productOrder.DataSet).ProductOrder[0].OrderReference =
                        (ingestOrder).IngestOrder[0].OrderReference;
                }

    Eugene, 04 Августа 2010

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

    +113

    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
    public static byte[] GetMonthlyFinancialReport(
            //...
            DateTime dateInterested)
        {
    // ...
    
            DateTime monthAgoDate = dateInterested;
    
            int dayInterested = dateInterested.Day;
            int daysInMonthInterested = DateTime.DaysInMonth(dateInterested.Year, dateInterested.Month);
            int daysInPreviousMonth = DateTime.DaysInMonth(dateInterested.Year, (dateInterested.Month == 1) ? 12 : (dateInterested.Month - 1));
    
            if (dayInterested == daysInMonthInterested)
            {
                monthAgoDate = monthAgoDate.AddDays(-1 * monthAgoDate.Day);
            }
            else
            {
                monthAgoDate = monthAgoDate.AddDays(-1 * Math.Max(daysInPreviousMonth, Math.Min(daysInMonthInterested, dayInterested)));
            }
    
    // ...
        }

    Головоломочка для любителей поиграться с датами... :)

    svkandroid, 19 Июля 2010

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

    +113

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    //java.io.Bits
        static void putDouble(byte[] b, int off, double val) {
    	long j = Double.doubleToLongBits(val);
    	b[off + 7] = (byte) (j >>> 0);
    	b[off + 6] = (byte) (j >>> 8);
    	b[off + 5] = (byte) (j >>> 16);
    	b[off + 4] = (byte) (j >>> 24);
    	b[off + 3] = (byte) (j >>> 32);
    	b[off + 2] = (byte) (j >>> 40);
    	b[off + 1] = (byte) (j >>> 48);
    	b[off + 0] = (byte) (j >>> 56);
        }

    остальное содержимое класса в таком же стиле

    3.14159265, 21 Июня 2010

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

    +113

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    private static Predicate<Token> GetMatchBracePredicate(Token token)
            {
                if (token is Token.BeginBrace)
                    return delegate(Token t) { return t is Token.BeginBrace; };
                if (token is Token.BeginQuote)
                    return delegate(Token t) { return t is Token.BeginQuote; };
                if (token is Token.BeginRound)
                    return delegate(Token t) { return t is Token.BeginRound; };
                if (token is Token.BeginSquare)
                    return delegate(Token t) { return t is Token.BeginSquare; };
           // ...

    С просторов интернета.

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

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

    +113

    1. 1
    public static bool DefaultSuppressVersionCheck = true; //default is false

    Как пишут программисты США.

    Dmitriy, 31 Мая 2010

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

    +113

    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
    private static void assertNoReflection()
    {
        foreach (StackFrame stackFrame in new StackTrace().GetFrames())
        {
            if (stackFrame.GetMethod().DeclaringType.Namespace == "System.Reflection")
            {
                throw new MethodAccessException();
            }
        }
    }
    
    internal static string GetKey()
    {
        assertNoReflection();
    
    // ...
    }

    Вот так вот приходится говнить, потому что в дотнете рефлексией можно спокойно вызывать internal- и private- методы.
    assertNoReflection(); проверяет, что вверх по стеку вызовов никто не балуется рефлексией.
    После assertNoReflection(); из нативной длл получаем обфусцированную (вручную, лол) строку, которая далее с помощью запутанных алгоритмов (некоторые параметры для "расшифровки" опять берутся из нативной длл) приводит её в вид пароля (для доступа к запароленному архиву).
    Софт не прямо уж суперсекретный, просто нужно скрыть ресурсы хотя бы для приличия. Пароль через подключение к серверу не катит.
    Ко всему этому оно собрано в одно exe моновским mkbundle'ом (рефлектор не может открыть!) и поверх upx'ом. В общем, большое количество кулхацкеров отсекается (должны знать ассемблер и MSIL).
    Чувствую, что говнорешение, но не могу придумать что-то более умное. Обфускаторы тоже не очень катят, ибо плохо дружат с моно.

    cfdev, 18 Мая 2010

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

    +113

    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
    void listXmlTree(string filename)
            {
                XmlTextReader rdr = new XmlTextReader(filename);
    
                listBox1.Items.Clear();
                treeView1.Nodes.Clear();
                while (rdr.Read())
                {
                    string s = string.Format("<{0}> - {1}", rdr.Name, rdr.NodeType);
                    listBox1.Items.Add(s);
    
                    if ((rdr.Name == "LVL") && (rdr.NodeType != XmlNodeType.EndElement))
                    {
                        treeView1.Nodes.Add("LVL " + rdr.GetAttribute("N"));
                        while (rdr.Read())
                        {
                            if ((rdr.Name == "WRD") && (rdr.NodeType != XmlNodeType.EndElement))
                            {
                                treeView1.Nodes[treeView1.Nodes.Count - 1].Nodes.Add("WRD");
                                while (rdr.Read())
                                {
                                    if ((rdr.Name == "L") && (rdr.NodeType != XmlNodeType.EndElement))
                                    {
                                        treeView1.Nodes[treeView1.Nodes.Count - 1].Nodes[treeView1.Nodes[treeView1.Nodes.Count - 1].Nodes.Count - 1].Nodes.Add("L: " + rdr.ReadElementContentAsString());
    
                                    }
                                    if ((rdr.Name == "K") && (rdr.NodeType != XmlNodeType.EndElement))
                                    {
                                        treeView1.Nodes[treeView1.Nodes.Count - 1].Nodes[treeView1.Nodes[treeView1.Nodes.Count - 1].Nodes.Count - 1].Nodes.Add("K: " + rdr.ReadElementContentAsString());
                                        break;
                                    }
                                }
                            }
                            if ((rdr.Name == "CHS") && (rdr.NodeType != XmlNodeType.EndElement))
                            {
                                treeView1.Nodes[treeView1.Nodes.Count - 1].Nodes.Add("CHS: " + rdr.ReadElementContentAsString());
                                break;
                            }
    
                        }
                    }
    
                }
                rdr.Close();
            }

    Такие дела.

    t8apb, 30 Апреля 2010

    Комментарии (40)
  9. Pascal / Говнокод #3064

    +113

    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
    //Удаляем последний символ из мемо :)
    
    Procedure Button1Click(Sender : TObject);
    Begin
    // Some GovnoCode...
     Memo1.Lines.SelLenght := Length(Memo1.Text) - 1;
     Memo1.SelStart;
     Memo1.CopyToClipboard;
     Memo1.Clear;
     Memo1.PasteFromClipboard;
    // Some GovnoCode...
    End;
    
    end.

    Вот так, простенько и со вкусом, мы избавляется от последнего символа из Memo1.Text.

    ZLOvar, 21 Апреля 2010

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

    +113

    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
    public partial class Form1 : Form
    {
    	// ...
    
    	public Form1()
    	{
    		InitializeComponent();
    
    		// If Connection string empty
    		if (XmlConfig.GetPropetry("ConnectionString", "ConnectionString") == "")
    		{
    			MessageBox.Show("Type connection option in the next window", "Connection String is empty", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    			frmOptions dlg = new frmOptions();
    			dlg.ConnectionString = true;
    			if (dlg.ShowDialog() == DialogResult.OK)
    			{
    				System.Diagnostics.Process.Start(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Application.exe"));
    			}
    			Close();
    		}
    		// ...
    	}
    	// ...
    }

    В конструкторе главного окна приложения проверяется есть ли в конфиге строка подключения к базе. Если нет, то открывается окошко с опциями для ввода параметров подключения к базе. При успешном вводе сохраняется строка подключения в конфиг и программа перезапускается, чтобы загрузиться с новой строкой подключения))) Пришлось вот переделывать такую программу, после другого программиста. Как можно было до такого додуматься понять не могу)))

    archer, 24 Марта 2010

    Комментарии (3)
  11. Pascal / Говнокод #2826

    +112.6

    1. 1
    2. 2
    3. 3
    http://clip2net.com/page/m0/4700792
    
    вот типа какбы картинка, как делать не стоит

    Grizzly, 19 Марта 2010

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