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

    В номинации:
    За время:
  2. Куча / Говнокод #24932

    0

    1. 1
    безысходность

    В начале нулевых миром правил пафосный и сложный интерпрайз. Люди строили многоtierные распределенные системы с кучей ролей и суровыми СУБД, и у них это отлично получалось.

    Ярусы (tiers) с бизнес-логикой предоставляли интерфейсы для десктопных и веб клиентов, и для скриптов автоматизации.
    Ярусы пронизвала прозрачная аутентификация: сервер приложений мог имперсонировать свой поток под клиента и обратиться от его имени в базу данных.
    Единую аутентификацию обеспечивал Kerberos, а каждый объект (будь то таблица или пользователь) обладал ACLем и настраивался отдельно.
    Интерфейсы описывались в WSDL или IDL и по ним генерировались прокси-классы, поддающиеся статической валидации.
    Отчеты строились на многомерных OLAP кубах позволяя pivotировать и крутить данные на лету.
    Бизнес-объекты могли создаваться на удаленных серверах приложений и быть там stateful (dcom, ejb) и жить, пока не кончатся на них ссылки, и они автоматически имели те же креденшелы что и создавший их клиент.
    Распределенные системы напоминали системы операционные.
    Форматом сериализации был XML: поддающийся валидации с помощью схем, имеющий два вида парсеров в разных средах и с кучей подстандартов вроде xquery, xpath (для указания пути в документе), xslt для преобразования документов итд.
    На его же основе сделали язык разметки, и его тоже стало можно валидировать, и программно рассматривать как дерево.

    Goh, 18 Октября 2018

    Комментарии (12)
  3. Куча / Говнокод #24928

    −1

    1. 1
    Давайте ругать питон, он мне со своими отступами все мозги выебал.

    gne4do, 17 Октября 2018

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

    −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
    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
    #include "pch.h"
    #include <iostream>
    #include <cstdlib>
    using namespace std;
    
    int main()
    {
    	int b, c, d;
    	setlocale(LC_ALL, "rus");
    	cout << "Игра:Надо бы похавать. )) \nУправление:клавиши 1,2,Ентер. (Мышью ничего не работает!!)\n\n" << endl;
    
    	system("pause");
    	cout << "\n\n\n\nТы просыпаешся в 2 часa дня\n" << "В принципе, ничего нового, ведь ты опять играл в комп допоздна" << endl;
    	cout << "Понятное дело, что ты проголодался !\n" << "Выбери, куда ты пойдешь покушать:\n\n" << endl;
    	cout << "1-поесть дома (Готовишь ты хреново!)\n2-пойти в Макдак\n";
    	cin >> (b);
    	switch (b) {
    	case 1:
    	{
    		cout << "Ты решил поесть дома, у тебя есть два варианта:\n1-Пожарить яишенку.\n2-Нарезать салат.\n\n";
    		cin >> (c);
    		switch (c) {
    		case 1: {
    			cout << "Ты скушал яишенку с колбаской,это был не пик вкусности, но ты доволен.\n(ХОРОШАЯ КОНЦОВКА)\n\n\n\n\n" << endl;
    			break;
    		}
    
    		case 2: {
    			cout << "Ты нарезал салатик из помидоров,огурцов,сыра и колбасы, сьел это и помер\nпотому что у тебя была алергия на сыр.Врачи ничем не смогли помочь." << endl;
    			cout << "(ПЛОХАЯ КОНЦОВКА)\n\n\n\n";
    			break;
    		}
    				break;
    		}
    		break;
    	case 2: {
    		cout << "Ты решил пойти в макдак, что закажешь :\n1-сет из колы,бургера и картошки!\n2-сет из сока,мороженого и твистера!\n\n" << endl;
    		cin >> (d);
    		switch (d) {
    		case 1: {
    			cout << "Ты вкусно поел, это было очень вкусно, настолько что ты стал чуть ли не каждый\nдень есть эту еду. Спустя год ты умер от Орбидного ожирения!!\n(ПЛОХАЯ КОНЦОВКА)\n\n\n\n\n\n\n";
    			break;
    		}
    		case 2: {
    			cout << "Ты вкусно поел. когда ты ел к тебе подошла девушка с таким же набором еды\n вы хорошо разговорились, начали общатся. Через время вы начали встречатся!\n(ХОРОШАЯ КОНЦОВКА)\n\n\n\n\n\n" << endl;
    			break;
    		}
    				break;
    		}
    
    	}
    
    	}
    
    	}
    
    	system("pause");
    
    }

    Небольшой текстовый квест с 4-мя концовками )) Открой все 4. удачи!!

    MaRLiN, 15 Сентября 2018

    Комментарии (12)
  5. Куча / Говнокод #24738

    +1

    1. 1
    Где можно посмотреть исходники "PHP" как можно раньшей релизной версии?

    LinuxGovno, 10 Сентября 2018

    Комментарии (12)
  6. Python / Говнокод #24683

    −2

    1. 1
    2. 2
    3. 3
    4. 4
    def spam(low, up):
        for eggs in range(low, up+1):
            if str(eggs) in str(eggs**2):
                print(str(eggs) + " is in " + str(eggs**2) + ".")

    Проверяет, есть ли стринг числа n в стринге числа n**2.

    shite, 29 Августа 2018

    Комментарии (12)
  7. Куча / Говнокод #24581

    0

    1. 1
    2. 2
    3. 3
    4. 4
    Геном человека занимает 3.3 Gb	
    Геном рыбы "Protopterus aethiopicus" -- 130 Gb	
    
    Вопрос: откуда в рыбе столько говна?

    roskomgovno, 04 Августа 2018

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

    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
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text.RegularExpressions;
    
    
    /* The "Enter le ..." thing
    is left for Шindows compilers.
    Don't mind it. */
     namespace SoloLearn
     {
         public class Program
         {
             public static void Main(string[] args)
             {
                 int a = 0;
                 int b = 0; //Declare two numbers
                 string leChar; //Declare the character
                 int sum; //Declare the place where the result of the expression would be stored
                 Console.WriteLine("Enter le first number\n");
                 string c = a.ToString(); //Convert the 1st № to string
                 c = Console.ReadLine(); //Assign the 1st number
                 Console.WriteLine("Enter le character\n");
                 leChar = Console.ReadLine(); //Assign the char
                 Console.WriteLine("Enter le second number\n");
                 string d = b.ToString(); //Convert the 2nd № to string
                 d = Console.ReadLine(); //Assign the second number
                 a = System.Convert.ToInt16(c);
                 b = System.Convert.ToInt16(d);
                 sum = Calculate(a,leChar,b); //Calculate
                 Console.WriteLine("{0} {1} {2} is {3}", a, leChar, b, sum);
             }
             public static int Calculate(int x, string z, int y) {
                 int qwerty = 0;
                 switch(z) {
                     case "+": //Case of addition
                     qwerty = x + y;
                     break;
                     case "-": //Case of subtraction
                     qwerty = x - y;
                     break;
                     case "*": //Case of multiplication
                     qwerty = x * y;
                     break;
                     case "/": //Case of division
                     qwerty = x / y;
                     break;
                 }
                 return qwerty; //If smth = Calculate(parameters), var smth would have the content of this var © Your Captain Obvious
             }
         }
     }

    Выдавил из себя где-то месЕц назад. Как я умудрялся делать 2 переменные для просто стринговых версий существующих переменных только для того, чтобы прочитать инпут? Хорошо, что в сисярпе есть гарбаж коллектор. И да, названия переменных во второй функции - прекрасные (посмотрите: x, y, z, qwerty - не прекрасно ли?) говГо.

    shite, 03 Августа 2018

    Комментарии (12)
  9. Python / Говнокод #24536

    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
    #-*-coding:utf8;-*-
    
    combinators = {
       'I': lambda x: x if len(x) <= 1 else calc(x[1:]),
       'K': lambda x: x if len(x) <= 2 else calc((x[1],) + x[3:]),
       'W': lambda x: x if len(x) <= 2 else calc(x[1:3] + x[2:]),
       'S': lambda x: x if len(x) <= 3 else calc((x[1], x[3], (x[2], x[3])) + x[4:]),
       'B': lambda x: x if len(x) <= 3 else calc((x[1], (x[2], x[3])) + x[4:]),
       'C': lambda x: x if len(x) <= 3 else calc((x[1], x[3], x[2]) + x[4:]),
       'U': lambda x: x if len(x) <= 2 else calc((x[2], (x[1], x[1], x[2])) + x[3:]),
       'Y': lambda x: x if len(x) <= 1 else calc(('S',('K',('S','I','I')),('S',('S',('K','S'),'K'),('K',('S','I','I')))) + x[2:])
    }
    
    def calc(x):
        def f(x, top = False):
            if type(x) is not tuple or len(x) == 0:
                return x
            if top:
                while type(x[0]) is tuple:
                    x = x[0] + x[1:]
            else:
                if type(x[0]) is tuple:
                    return (calc(x[0]),) + f(x[1:])
            print(termrepr(x))
            input('Press Enter...')
            return combinators.get(x[0], lambda _: (x[0],) + f(x[1:]))(x)
    
        return f(x, True)
    
    def parse(s):
        def f(s, n):
            res = ()
            i = n
            while i < len(s):
                if s[i] == '(':
                    t, j = f(s, i + 1)
                    res += (t,)
                    i = j - 1
                elif s[i] == ')':
                    return (res, i + 1)
                else:
                    res += (s[i],)
                i += 1
            return (res, i)
            
        return f(s, 0)[0]
    
    def termrepr(x):
        if len(x) == 0:
            return ''
        if type(x[0]) is tuple:
            return '(' + termrepr(x[0]) + ')' + termrepr(x[1:])
        else:
            return x[0] + termrepr(x[1:])
    
    print('>> ', end = '')
    while True:
        print(termrepr(calc(parse(input()))))
        print('\n>> ', end = '')

    Я перепесал #24129:

    >> BUGURT
    BUGURT
    Press Enter...
    U(GU)RT
    Press Enter...
    R((GU)(GU)R)T
    Press Enter...
    GU(GU)R
    Press Enter...
    U(GU)R
    Press Enter...
    R((GU)(GU)R)
    Press Enter...
    GU(GU)R
    Press Enter...
    U(GU)R
    Press Enter...

    666_N33D135, 24 Июля 2018

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

    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <inttypes.h>
    
    void test1(void)
    {
      printf("test1\n");
    }
    void test2(void)
    {
      printf("test2\n");
    }
    void test3(void)
    {
      printf("test3\n");
    }
    void test4(void)
    {
      printf("test4\n");
    }
    
    uint8_t func_dist[3] = {(uint8_t)((char *)test2-(char *)test1), (uint8_t)((char *)test3-(char *)test2), (uint8_t)((char *)test4-(char *)test3)};
    
    void callf(uint8_t fn)
    {
      size_t sum_dis = 0;
      for (uint8_t i = 0; i < fn; i++)
      {
        sum_dis += func_dist[i];
      }
      ( (void(*)(void)) ((char *)test1+sum_dis) )  ();
    }
    
    int main(void)
    {
      callf(0);
      callf(1);
      callf(2);
      callf(3);
      return EXIT_SUCCESS;
    }

    Зожатие указателей. Главное чтоб длины функций не превышали 255 и чтоб функции шли строго подряд, как они объявлены кода
    Как сделать чтобы это компилировалось сишкой?

    j123123, 10 Июля 2018

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

    +2

    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
    Если Найти(_оинв.Комментарий,"#инвентаризация гсм#")=0 Тогда
    		_оинв.Комментарий="#инвентаризация гсм#";
    		Если не Найти(_комментарий,"газ")=0 Тогда
    			_оинв.Комментарий=_оинв.Комментарий+" газ";
    		ИначеЕсли не Найти(_оинв.Склад.Наименование,"АГЗС")=0 Тогда
    			_оинв.Комментарий=_оинв.Комментарий+" газ";
    		КонецЕсли;
    		_оинв.Комментарий=_оинв.Комментарий+" "+_комментарий;
    	ИначеЕсли не Найти(_оинв.Склад.Наименование,"АГЗС")=0 Тогда
    		Если Найти(_комментарий,"газ")=0 Тогда
    			_оинв.Комментарий=_оинв.Комментарий+" газ";
    		ИначеЕсли не Найти(_комментарий," газ газ")=0 Тогда
    			_оинв.Комментарий=СтрЗаменить(_оинв.Комментарий," газ газ"," газ");
    		КонецЕсли;
    	КонецЕсли;

    Где "_оинв" это ДокументОбъект Инвентаризация

    MyNameIs, 29 Июня 2018

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