Goвно / Говнокод #27849 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
// Create a Version 4 UUID, panicking on error.
// Use this form to initialize package-level variables.
var u1 = uuid.Must(uuid.NewV4())

https://github.com/gofrs/uuid

Питули запилили функцию, которая никогда error не возвращает, и запилили обёртку вокруг неё для "игнорирования" этой "ошибки".
Пиздец

3_dar 3_dar, (Updated )

Комментарии (37, +37)

Goвно / Говнокод #27585 Ссылка на оригинал

0

  1. 1
- Я так раньше никогда не делала. Мне понравилось. А тебее? - сказала она после того, как я влил в неё свой заряд и, уставший, уселся прямо на ковролин на полу кабинета.

- Я так раньше никогда не делала. Мне понравилось. А тебее? - сказала она после того, как я влил в неё свой заряд и, уставший, уселся прямо на ковролин на полу кабинета.

ajtkulov ajtkulov, (Updated )

Комментарии (5, +5)

Goвно / Говнокод #27530 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
func (c *Client) DeleteFile(filename string) {
	_, err := s3.New(c.session).DeleteObject(&s3.DeleteObjectInput{
		Bucket: aws.String(c.bucket),
		Key:    aws.String(filename),
	})
	if err != nil {
		return
	}
}

Ошибочка обработана

Vitanaki Vitanaki, (Updated )

Комментарии (77, +77)

Goвно / Говнокод #27411 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
func getTransport(tt string) (iTransport, error) {
	if tt == "scooter" {
		return newElectricScooter(), nil
	}
	if tt == "quadcopter" {
		return newQuadcopter(), nil
	}
	return nil, fmt.Errorf("Wrong type")
}

https://habr.com/ru/post/556512/
> Factory Method Pattern
> Привет, друзья. С вами Alex Versus.
> Ранее мы говорили про шаблоны проектирования Одиночка и Стратегия, про тонкости реализации на языке Golang.
> Сегодня расскажу про Фабричный метод.

PolinaAksenova PolinaAksenova, (Updated )

Комментарии (48, +48)

Goвно / Говнокод #27395 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
if req.Lang != "" {
	req.Lang = "EN"
}

Я сказал английский!

[Поставленная задача: если пришёл запрос без поля, поставить значение по умолчанию]

anon007 anon007, (Updated )

Комментарии (20, +20)

Goвно / Говнокод #22

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
REM 101.22.25. Постройте алгоритм разложения натуральных чисел на простые множители.
REM В какой форме будут представлены результаты работы этого алгоритма?
        
Dim input As Integer REM Число, вводимое с клавиатуры
Dim min As Integer, max As Integer

input = Int(Val(T1.Text)) REM Ввод данных
If input < 1 Then input = 1
If input > 1000000000 Then input = 1000000000
L3.Text = input & ": "

min = 2 REM "min" - число, которое проверяется, является ли оно делителем числа "max"
max = input REM "max" - число, для которого ищутся делители

Do While min < max
    If max Mod min = 0 Then
        L3.Text = L3.Text & min & " "
        max = max / min
    Else
        If min * min > max Then Exit Do
        min = min + 1
    End If
Loop

L3.Text = L3.Text & max

Разложение числа на простые множители.

jura_k jura_k,

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

Goвно / Говнокод #21

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
REM 52.10.18. Напишите алгоритм подсчёта количества "счастливых" автобусных билетов.
REM (Билет называется "счастливым", если сумма первых трёх цифр номера билета равна
REM сумме последних трёх цифр.)

Dim a As Integer, b As Integer, c As Integer
Dim d As Integer, f As Integer, g As Integer
Dim h As Integer REM Число "счастливых" билетов

h = -1 REM Число 000000 в набор автобусных билетов не входит. Его вычитаем.

For a = 0 To 9
    For b = 0 To 9
        For c = 0 To 9
            For d = 0 To 9
                For f = 0 To 9
                    For g = 0 To 9
                        If a + b + c = d + f + g Then h = h + 1
                    Next
                Next
            Next
        Next
    Next
Next

L3.Text = "Число счастливых билетов " & h

jura_k jura_k,

Комментарии (5, +5)

Goвно / Говнокод #19

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
Public Class F1
    Inherits System.Windows.Forms.Form

    Dim number(3, 30) As Integer REM Массив для хранения 200-значного числа

    Private Sub B1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B1.Click
        REM 52.5.16. Используя алгоритм вычисления функции n! в качестве вспомогательного,
        REM напишите алгоритм вычисления суммы факториалов всех чётных чисел от 2 до 100.

        Dim input As Integer REM Число, вводимое с клавиатуры
        Dim a As Integer, b As Integer REM Временные переменные

        REM Ввод числа с клавиатуры
        L3.Text = ""
        input = Int(Val(T1.Text))
        If input < 0 Then input = 0
        If input > 100 Then input = 100

        For a = 1 To 3
            For b = 1 To 30
                number(a, b) = 0
            Next
        Next

        number(1, 1) = 1
        For a = 1 To input
            multiply(a)

            If a = input Or a Mod 20 = 0 Then
                L3.Text = L3.Text & a & "! = "
                shownumber(1)
                L3.Text = L3.Text & "   "
            End If

        Next
    End Sub

    Sub multiply(ByVal a As Integer) REM Умножение массива "number (1)" на число "a"
        Dim d As Integer, e As Integer REM Временные переменные

        For d = 1 To 30
            number(1, d) = number(1, d) * a
        Next

        REM Перенос остатка, большего 10 млн., в следующий разряд массива
        For d = 1 To 29
            e = number(1, d) \ 10000000
            number(1, d) = number(1, d) Mod 10000000
            number(1, d + 1) = number(1, d + 1) + e
        Next

        If number(1, 30) > 10000000 Then
            For d = 1 To 30
                number(1, d) = 0
            Next
        End If
    End Sub

    Sub shownumber(ByVal a As Integer) REM Вывод на экран массива "number (a)"
        Dim d As Integer, e As Integer, f As Integer REM Временные переменные

        d = 30 REM Верхняя граница отображения числа (элемент не равен нулю)
        While d > 1 And number(a, d) = 0 REM Вычисляем, где кончается ненулевая часть числа
            d = d - 1
        End While

        REM Вывод старших разрядов
        L3.Text = L3.Text & number(a, d)

        REM Вывод младших разрядов
        d = d - 1
        For e = d To 1 Step -1 REM Какое число в массиве выводим (по одной цифре)
            f = number(a, e)
            L3.Text = L3.Text & f \ 1000000 & f \ 100000 Mod 10 & f \ 10000 Mod 10 & f \ 1000 Mod 10 & f \ 100 Mod 10 & f \ 10 Mod 10 & f Mod 10
        Next
    End Sub
End Class

Программа расчета 100!

jura_k jura_k,

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

Goвно / Говнокод #27261 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
// https://docs.docker.com/engine/api/v1.24/#create-a-container

POST /v1.24/containers/create HTTP/1.1
Content-Type: application/json
Content-Length: 12345

{
       "Hostname": "",
       "Domainname": "",
       "User": "",
       "AttachStdin": false,
       "AttachStdout": true,
       "AttachStderr": true,
       "Tty": false,
       "OpenStdin": false,
       "StdinOnce": false,
       "Env": [
               "FOO=bar",
               "BAZ=quux"
       ],
       ...
}

Ядро предоставляет сисколл execve. Execve принимает переменные окружения в виде массива строк A=B -
не знаю конкретных причин, почему так сделано, но скорее всего просто потому что писать хэшмапу под
это дело, которая еще и будет выкинута из памяти через относительно небольшое время - дело дорогое и
ненужное, плюс наверняка какой-нибудь лишний пердолинг со стеком.
https://man7.org/linux/man-pages/man2/execve.2.html

Го, "человеческий язык" с поддержкой обычных мап из коробки, ничтоже сумляшеся не замечает никакой
проблемы и заставляет пользователя передавать переменные окружения в том же формате, потому что у
языка не только синтаксис должен быть таким же тупым, как программист на нём и вообще мы же тут
делаем вид, что мы C, только лучше.
https://golang.org/pkg/os/exec/#example_Command_environment

Докер, "человеческий сервис" с HTTP API, использующим формат JSON с поддержкой обычных мап из коробки,
ничтоже сумляшеся не замечает никакой проблемы и заставляет пользователя передавать переменные
окружения в том же формате, потому что на программист на языке должен быть тупым, как этот язык.
https://docs.docker.com/engine/api/v1.24/#create-a-container

В результате мы имеем пачку долбоебов, из-за которых оперирующие (мапами / объектами / словарями / как угодно назовите)
нормальные люди должны вести себя как типичные гошники.

Fike Fike, (Updated )

Комментарии (42, +42)