1. Go / Говнокод #26716

    +1

    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
    func (svc *UserSvc) isEmptyName(name model.User_Name) bool {
      if name.First.RU == "" {
        if name.First.EN == "" {
          if name.First.TR == "" {
            if name.First.IT == "" {
              if name.Last.RU == "" {
                if name.Last.EN == "" {
                  if name.Last.TR == "" {
                    if name.Last.IT == "" {
                      return true
                    }
                  }
                }
              }
            }
          }
        }
      }
      return false
    }

    Проверка заполненности имени пользователя хотя - бы на одном из языков.

    anon007, 01 Июня 2020

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

    −4

    1. 1
    Принт хелло ворлд

    Oleg4260, 01 Июня 2020

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    http://lhohq.info/
    http://www.lhohq.info/lhohq_android.html
    http://octagon.lhohq.info/exploit-nomophobia.html
    http://phonograph.lhohq.info/

    Безумбреции / шизофреции с легким оттенком конардио

    Давненько не появлялось хорошего соперника DBУNOГUM

    Fike, 31 Мая 2020

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

    +1

    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
    class Values<T> {
       T data;
       Values() {}
       Values(T data) {this.setData(data);}
       public void setData(T data) {this.data = data;}
       public T getData() {return this.data;}
    }
    
    public class Main {
       public static void main(String[] args) {
          Values[][] item = new Values[3][2];
          item[0][0] = new Values("grapes");
          item[0][1] = new Values(1);
    
          item[1][0] = new Values("apples");
          item[1][1] = new Values(1);
    
          item[2][0] = new Values("peaches");
          item[2][1] = new Values(1);
       }
    }

    >>> кто меня интервьюировал на позицию Staff Engineer? Junior?
    >>>

    1. Если покупатель купит больше одного яблока,
    то он получит скидку 20% на все яблоки в корзине;
    2. Если покупатель купит пакет винограда, то второй пакет
    он получит бесплатно.

    Итог: посчитать стоимость корзины покупателя при выходе из магазина,
    при то, что данные даны в следующем виде:
    [["grapes", 1],["apples", 0],["peaches", 1]] => 12
    [["grapes", 1],["apples", 1],["peaches", 1]] => 15 ...

    https://habr.com/post/504638

    Бля-я-я-я, это просто феерия! 1024--, зацени статью, ты оценишь!

    gost, 31 Мая 2020

    Комментарии (281)
  5. Python / Говнокод #26711

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    a1=[gg for gg in range( 1,  9+ 1   , 1) ]
    b1='';b2=""
    for a in a1:
        for A1 in a1:
            b1=b1 + str(a)+'*'  +  str(A1)+ '='  +'%s' %str(int( a )* int(A1 ) )+"  "
        b2+=b1+ '\n'
        del b1; b1=''
    print(f'{b2}' )

    ТаблицаУмножения

    mosni, 30 Мая 2020

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

    +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
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    def get_build_version():
        """Return the version of MSVC that was used to build Python.
    
        For Python 2.3 and up, the version number is included in
        sys.version.  For earlier versions, assume the compiler is MSVC 6.
        """
        prefix = "MSC v."
        i = sys.version.find(prefix)
        if i == -1:
            return 6
        i = i + len(prefix)
        s, rest = sys.version[i:].split(" ", 1)
        majorVersion = int(s[:-2]) - 6
        if majorVersion >= 13:
            # v13 was skipped and should be v14
            majorVersion += 1
        minorVersion = int(s[2:3]) / 10.0
        # I don't think paths are affected by minor version in version 6
        if majorVersion == 6:
            minorVersion = 0
        if majorVersion >= 6:
            return majorVersion + minorVersion
        # else we don't know what version of the compiler this is
        return None

    Определение версии конпелятора, которой был собран «CPython».

    TEH3OPHblu_nemyx, 30 Мая 2020

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

    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
    IT Оффтоп #48
    
    
    #1: https://govnokod.ru/18142 https://govnokod.xyz/_18142
    #2: https://govnokod.ru/18378 https://govnokod.xyz/_18378
    #3: https://govnokod.ru/19667 https://govnokod.xyz/_19667
    #4: https://govnokod.ru/21160 https://govnokod.xyz/_21160
    #5: https://govnokod.ru/21772 https://govnokod.xyz/_21772
    #6: (vanished) https://govnokod.xyz/_24063
    #7: https://govnokod.ru/24538 https://govnokod.xyz/_24538
    #8: (vanished) https://govnokod.xyz/_24815
    #9: https://govnokod.ru/24867 https://govnokod.xyz/_24867
    #10: https://govnokod.ru/25328 https://govnokod.xyz/_25328	
    #11: (vanished) https://govnokod.xyz/_25436
    #12: (vanished) https://govnokod.xyz/_25471
    #13: (vanished) https://govnokod.xyz/_25590
    #14: https://govnokod.ru/25684 https://govnokod.xyz/_25684
    #15: https://govnokod.ru/25694 https://govnokod.xyz/_25694
    #16: https://govnokod.ru/25725 https://govnokod.xyz/_25725
    #17: https://govnokod.ru/25731 https://govnokod.xyz/_25731
    #18: https://govnokod.ru/25762 https://govnokod.xyz/_25762
    #19: https://govnokod.ru/25767 https://govnokod.xyz/_25767
    #20: https://govnokod.ru/25776 https://govnokod.xyz/_25776
    #21: https://govnokod.ru/25798 https://govnokod.xyz/_25798
    #22: https://govnokod.ru/25811 https://govnokod.xyz/_25811
    #23: https://govnokod.ru/25863 https://govnokod.xyz/_25863

    #24: https://govnokod.ru/25941 https://govnokod.xyz/_25941
    #25: https://govnokod.ru/26026 https://govnokod.xyz/_26026
    #26: https://govnokod.ru/26050 https://govnokod.xyz/_26050
    #27: https://govnokod.ru/26340 https://govnokod.xyz/_26340
    #28: https://govnokod.ru/26372 https://govnokod.xyz/_26372
    #29: https://govnokod.ru/26385 https://govnokod.xyz/_26385
    #30: https://govnokod.ru/26413 https://govnokod.xyz/_26413
    #31: https://govnokod.ru/26423 https://govnokod.xyz/_26423
    #32: https://govnokod.ru/26440 https://govnokod.xyz/_26440
    #33: https://govnokod.ru/26449 https://govnokod.xyz/_26449
    #34: https://govnokod.ru/26456 https://govnokod.xyz/_26456
    #35: https://govnokod.ru/26463 https://govnokod.xyz/_26463
    #36: https://govnokod.ru/26508 https://govnokod.xyz/_26508
    #37: https://govnokod.ru/26524 https://govnokod.xyz/_26524
    #38: https://govnokod.ru/26539 https://govnokod.xyz/_26539
    #39: https://govnokod.ru/26556 https://govnokod.xyz/_26556
    #40: https://govnokod.ru/26568 https://govnokod.xyz/_26568
    #41: https://govnokod.ru/26589 https://govnokod.xyz/_26589
    #42: https://govnokod.ru/26600 https://govnokod.xyz/_26600
    #43: https://govnokod.ru/26604 https://govnokod.xyz/_26604
    #44: https://govnokod.ru/26627 https://govnokod.xyz/_26627
    #45: https://govnokod.ru/26635 https://govnokod.xyz/_26635
    #46: (vanished) https://govnokod.xyz/_26646
    #46: (vanished) https://govnokod.xyz/_26654
    #47: https://govnokod.ru/26671 https://govnokod.xyz/_26671

    baropinho, 30 Мая 2020

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

    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
    Для уу = 0 по ИндексПЭ-1 цикл 
    		// ** вычисление продаж в розницу**
    		Если Отчет.НетСобственныхТорговыхСетей Тогда 
    			ПроданоВРозницу   = Окр(ОН[уу], 4) + п4_1[уу] + п4_2[уу] + п4_3[уу] - п5_2[уу] - п5_3[уу] - п5_4[уу] - п5_5[уу] - п5_5[уу] - Окр(ОК[уу],4);
    			//ПроданоВРозницу = Окр(ОН[уу], 6) + п4_1[уу] + п4_2[уу] + п4_3[уу] - п5_2[уу] - п5_3[уу] - п5_4[уу] - п5_5[уу] - п5_5[уу] - Окр(ОК[уу], 6);
    			//п5_7[уу]=п5_7[уу]+ПроданоВРозницу;
    			п5_7[уу]=ПроданоВРозницу;
    		Иначе 
    			ПроданоВРозницу =   Окр(ОН[уу], 4) + п4_1[уу] + п4_2[уу] + п4_3[уу] - п5_2[уу] - п5_3[уу] - п5_4[уу] - п5_5[уу] - п5_7[уу] - Окр(ОК[уу], 4);
    			//ПроданоВРозницу = Окр(ОН[уу], 6) + п4_1[уу] + п4_2[уу] + п4_3[уу] - п5_2[уу] - п5_3[уу] - п5_4[уу] - п5_5[уу] - п5_7[уу] - Окр(ОК[уу], 6);
    			п5_5[уу] = п5_5[уу] + ПроданоВРозницу;
    		КонецЕсли;
    		// ** вычисление колонки Итого ***
    		
    		Если Отчет.ТабачныеИзделия Тогда
    			Если уу = 8 Тогда	//  уу=6 или  уу=5
    				//колонку "Тонны" в колонку итог "млн. штук" не смешиваем....
    				Продолжить;
    			КонецЕсли; 		
    		КонецЕсли; 
    
    		п4_1[ИндексПЭ]		= п4_1[ИндексПЭ]	+ п4_1[уу]; 
    		п4_1_1[ИндексПЭ]	= п4_1_1[ИндексПЭ]	+ п4_1_1[уу]; 
    		п4_1_2[ИндексПЭ]	= п4_1_2[ИндексПЭ]	+ п4_1_2[уу]; 
    		п4_1_3[ИндексПЭ]	= п4_1_3[ИндексПЭ]	+ п4_1_3[уу]; 
    		п4_2[ИндексПЭ]		= п4_2[ИндексПЭ]	+ п4_2[уу]; 
    		п4_3[ИндексПЭ]		= п4_3[ИндексПЭ]	+ п4_3[уу];
    		п5_2[ИндексПЭ]		= п5_2[ИндексПЭ]	+ п5_2[уу];
    		п5_3[ИндексПЭ]		= п5_3[ИндексПЭ]	+ п5_3[уу];
    		п5_4[ИндексПЭ]		= п5_4[ИндексПЭ]	+ п5_4[уу];
    		п5_5[ИндексПЭ]		= п5_5[ИндексПЭ]	+ п5_5[уу];
    		п5_7[ИндексПЭ]		= п5_7[ИндексПЭ]	+ п5_7[уу];  
    		ОН[ИндексПЭ]		= ОН[ИндексПЭ]		+ ОН[уу];
    		ОК[ИндексПЭ]		= ОК[ИндексПЭ]		+ ОК[уу];
    		
    	Конеццикла;	
    	
    	Для уу = 0 по ИндексПЭ цикл
    		п5[уу] =п5_2[уу] + п5_3[уу] + п5_4[уу] + п5_5[уу] + п5_7[уу];
    		п4[уу] =п4_1[уу] + п4_2[уу] + п4_3[уу];
    	Конеццикла;

    Работаю в крупной торговой сети РБ, конфигурация переделана с 7.7 на 8-ку.
    Прилетает сегодня задачка от буха "Не сходятся цифры в алкогольной декларации", захожу в модуль отчета, в котором 2600 строк кода, вроде этого(этот самый сочный), и тут я понял что хочу уволиться))

    Не смог себя сдержать и решил этим поделиться) думаю тут этому коду самое место

    Dudozavr, 29 Мая 2020

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Если НЕ Объект.Валютный Тогда
        Объект.ПересчитыватьВалютнуюСумму=Ложь;
    Иначе
        Объект.ПересчитыватьВалютнуюСумму=Истина;
    КонецЕсли;

    Типовая УХ

    aumsej, 29 Мая 2020

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

    +1

    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
    // https://godbolt.org/z/QAR_nT
    // https://govnokod.ru/26701#comment550329
    #include <cstddef>
    #include <string>
    #include <cassert>
    
    
    struct assert_failure
    {
        explicit assert_failure(const char *sz)
        {
            std::fprintf(stderr, "Assertion failure: %s\n", sz);
            std::quick_exit(EXIT_FAILURE);
        }
    };
    
    // эта херня не совсем корректно будет обрабатывать всякую хрень вроде ", , , " - оно это посчитает за 4 аргумента,
    // и если считать " скобочки, тогда еще надо запилить обработку эскейп-последовательности, для хуйни типа "pidor\" govno"
    // но мне лень эту хуйню допиливать.
    constexpr std::size_t count_args(const char *s, std::size_t depth = 0, std::size_t pos = 0, std::size_t count = 0)
    {
      if (s[pos] == '\0'){
        if(depth != 0)
          throw assert_failure("kakoi bagor)))\n");
        if(pos == 0)
          return 0;
        return count+1;
      }
      else if(s[pos] == '{')
      {
        return count_args(s, depth + 1, pos + 1, count);
      }
      else if(s[pos] == '}')
      {
        if(depth == 0)
          throw assert_failure("kakoi bagor)))\n");
        return count_args(s, depth - 1, pos + 1, count);
      }
      else if(depth == 0)
      {
        if(s[pos] == ',')
        {
          return count_args(s, depth, pos + 1,  count + 1);
        }
      }
      return count_args(s, depth, pos+1,  count); 
    }
    
    #define TO_STR(...) #__VA_ARGS__
    #define ARGNUM(...) count_args(TO_STR(__VA_ARGS__))
    
    #define krestogovnotypeof(a) std::remove_reference<a>::type
    
    #define FOR_RANGE(type, varname, ...) for(struct {size_t cnt; krestogovnotypeof(type) arr[ ARGNUM(__VA_ARGS__)  ];  } varname = {0, {__VA_ARGS__}}; varname.cnt < sizeof(varname.arr)/sizeof(type); ++varname.cnt )
    
    int main(void)
    {
      FOR_RANGE(int[2], k, {1,2}, {3,4}, {5,6}, {7,8})
        printf("{%d %d},\n", k.arr[k.cnt][0], k.arr[k.cnt][1]);
      return EXIT_SUCCESS;
    }

    Какая крестопараша((( В вижуальхуюдии вроде собирается, но проверить корректность работы не могу. Как вы этим днищекомпилятором вообще пользуетесь?

    Было б круто, если бы были такие constexpr функции, которые в компилтайме могут куски исходного кода высирать как бы прямо в исходник, и потом уже чтоб это компилировалось

    j123123, 29 Мая 2020

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