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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
# The API methods die when an error occurs.
say $api->getMe->{result}{username};
# ... but error handling is available as well.
my $result = eval { $api->getMe }
    or die 'Got error message: ', $api->parse_error->{msg};

https://metacpan.org/pod/WWW::Telegram::BotAPI

Продолжаем пиздеть про перл.

Решил выбрать предметную область "Телеграм-бот" чтобы поднатаскаться в «Perl».

Вопрос: что за говно в оп-коде? Это говноспособ обработки ошибок предлагают, или такое распространено? Типа eval вместо try?

vistefan vistefan, (Updated )

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

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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
List<UserScoreDTO> userScores = users.stream()
                .map((u) -> ScoreUtils.aggregateUserAndFlagData(u, maxTestScore))
                .collect(toList());

return userScores.stream();

Collect to List<UserScoreDTO> then stream the list to Stream<UserScoreDTO>

johann johann, (Updated )

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

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

0

  1. 1
  2. 2
IntStream.range(1, userScores.size() + 1)
                .forEach(position -> userScores.get(position - 1).setPosition(position));

Converting from 0 based array to 1 based array (for some reason).

johann johann, (Updated )

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

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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
public static bool found13 = false;
public static bool found11 = false;
// ...
public List<int> Children = new List<int>(); //index of children
public List<int> Children13 = new List<int>(); //index of children

Код бота-автора подавляющего большинства статей на нескольких языках. В основном Шведский (автор бота — швед) и, наверное, Себуанский, не знаю как правильно по-русски, короче язык океании, где-то на Филиппинах на нем говорят. На последнем, между прочим, бот нахерачил столько, что вывел себуанскую Википедию на второе место по количеству статей вообще.

Потрясающий пример говнокода, написанного учёным для дела, и приемлемо решающий свою задачу. На основе отрытых баз знаний о таксонах биологических видов и географических объектах (реки, горы, населенные пункты), генерит статьи-заглушки с краткой информационной сводкой.

https://sv.wikipedia.org/wiki/Wikipedia:Projekt_DotNetWikiBot_Framewor k/Lsjbot/Makespecies

Сори, если баян.

vistefan vistefan, (Updated )

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

C++ / Говнокод #26793 Ссылка на оригинал

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
if (feet_yaw <= 58)
	{
		if (-58 > feet_yaw)
			player->EyeAngles()->y = body_max_rotation + player->EyeAngles()->y;
	}
	else
	{
		player->EyeAngles()->y = body_max_rotation - player->EyeAngles()->y;
	}
	if (player->GetAnimOverlay(6)->m_flPlaybackRate > 0.1)
	{
		for (int resolve_delta = 58.f; resolve_delta < -58.f; resolve_delta = resolve_delta - 20.f)
		{
			player->EyeAngles()->y = resolve_delta;
		}
	}

ресольвер

esoterik esoterik, (Updated )

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

C++ / Говнокод #26792 Ссылка на оригинал

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
if (UpdateLBY)
			{
				auto m_flDelta = csgo->local->GetPlayerAnimState()->m_flGoalFeetYaw - csgo->local->GetPlayerAnimState()->m_flEyeYaw;

				if (m_flDelta >= 35.0 && m_flDelta <= -35.0) {
					// the first lby break is left.
					csgo->cmd->viewangles.y -= 122.f;
				}
				else {
					if (m_flDelta <= -35.0) {
						// the second lby break is right.
						csgo->cmd->viewangles.y += 122.f;
					}
					if (m_flDelta >= 35.0) {
						// the loop.
						csgo->cmd->viewangles.y -= 122.f;
					}
				}
				csgo->send_packet = false;
				return;
			}

esoterik esoterik, (Updated )

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

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

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
package literatePrimes;

import java.util.ArrayList;

public class PrimeGenerator {
  private static int[] primes;
  private static ArrayList<Integer> multiplesOfPrimeFactors;

  protected static int[] generate(int n) {
    primes = new int[n];
    multiplesOfPrimeFactors = new ArrayList<Integer>();
    set2AsFirstPrime();
    checkOddNumbersForSubsequentPrimes();
    return primes;
  }

  private static void set2AsFirstPrime() {
    primes[0] = 2;
    multiplesOfPrimeFactors.add(2);
  }

  private static void checkOddNumbersForSubsequentPrimes() {
    int primeIndex = 1;
    for (int candidate = 3;
         primeIndex < primes.length;
         candidate += 2) {
      if (isPrime(candidate))
        primes[primeIndex++] = candidate;
    }
  }

  private static boolean isPrime(int candidate) {
    if (isLeastRelevantMultipleOfNextLargerPrimeFactor(candidate)) {
      multiplesOfPrimeFactors.add(candidate);
      return false;
    }
    return isNotMultipleOfAnyPreviousPrimeFactor(candidate);
  }

  private static boolean
  isLeastRelevantMultipleOfNextLargerPrimeFactor(int candidate) {
    int nextLargerPrimeFactor = primes[multiplesOfPrimeFactors.size()];
    int leastRelevantMultiple = nextLargerPrimeFactor * nextLargerPrimeFactor;
    return candidate == leastRelevantMultiple;
  }

  private static boolean
  isNotMultipleOfAnyPreviousPrimeFactor(int candidate) {
    for (int n = 1; n < multiplesOfPrimeFactors.size(); n++) {
      if (isMultipleOfNthPrimeFactor(candidate, n))
        return false;
    }
    return true;
  }

  private static boolean
  isMultipleOfNthPrimeFactor(int candidate, int n) {
   return
     candidate == smallestOddNthMultipleNotLessThanCandidate(candidate, n);
  }

  private static int
  smallestOddNthMultipleNotLessThanCandidate(int candidate, int n) {
    int multiple = multiplesOfPrimeFactors.get(n);
    while (multiple < candidate)
      multiple += 2 * primes[n];
    multiplesOfPrimeFactors.set(n, multiple);
    return multiple;
  }
}

https://habr.com/ru/post/508876/
Вероятно, хватит рекомендовать «Чистый код»
> Я остановлюсь на ещё одном вопиющем примере кода. Это генератор простых чисел из главы 8:

gost gost, (Updated )

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

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

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
async def register_experiment(self, pool):
    async with pool.acquire() as conn:
        async with conn.cursor() as cur:
            sql = "INSERT INTO " + str(self.auxname) + "." + 
                str(self.auxtable)
            sql += " VALUES(NULL, '" 
            sql += str(self.dbname) 
            sql += "', '" 
            sql += str(self.encoder) 
            sql += "', 0, '" #goodEncoder
            sql += str(self.lattices) 
            sql += "', 0, '" #goodLattices
            sql += str(self.complex) 
            sql += "', 0, '" #goodComplex 
            sql += str(self.verges_total) 
            sql += "', 0, " #goodVerges
            sql += str(self.verges_total) 
            sql += ", '" 
            sql += str(self.trains) 
            sql += "', 0, '" #goodTrains 
            sql += str(self.tests) 
            sql += "', 0, '" #goodTests 
            sql += str(self.hypotheses) 
            sql += "', 0, '" #goodHypotheses 
            sql += str(self.type)
            sql += "')"
            await cur.execute(sql)
            await conn.commit()

https://habr.com/ru/post/509338/
> Web-сервер машинного обучения «ВКФ-решатель»

gost gost, (Updated )

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

C++ / Говнокод #26789 Ссылка на оригинал

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
#include <iostream>
#include <string>

using namespace std;

struct A
{
    A() { cout << "A::A()" << endl; }
    ~A() { cout << "~A::A()" << endl; }    
};

struct B
{
    B() { cout << "B::B()" << endl; }
    ~B() { cout << "~B::B()" << endl; }    
};

union U
{
    A a;
    B b;
    int n;
    
    U() { a = A {}; b = B {}; }
    ~U() {}
};

int main()
{
    U u;
}

Запустить тут: cpp.sh/3ewfw

Получается информация о том, какой сейчас объект активен в union где-то хранится.

OlegUP OlegUP, (Updated )

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