1. Список говнокодов пользователя Fike

    Всего: 45

  2. PHP / Говнокод #23555

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    // nullable types
    // C#
    int?
    // TypeScript
    int?
    // Kotlin
    int?
    // PHP
    ?int

    нет мочи терпеть это дерьмо

    Fike, 19 Ноября 2017

    Комментарии (24)
  3. PHP / Говнокод #23525

    +5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    // PHP при делении может неявно конвертировать целые в плавающие, и всех этих int-ограничений для него не существует
    echo 12 / 5; // 2.4
    
    // Было бы логично предположить, что другие операторы работают так же, но эта камбала неявно кастует уже плавающее к целому в соседнем операторе
    echo 9 % 0.9;
    
    PHP Fatal error:  Uncaught DivisionByZeroError: Modulo by zero in Command line code:1
    Stack trace:
    #0 {main}
      thrown in Command line code on line 1

    Fike, 13 Ноября 2017

    Комментарии (49)
  4. JavaScript / Говнокод #23433

    +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
    // http://sobchakprotivvseh.ru/static/js/main_gd.js?v3
    mainSite.mt_rand = function (min, max) { // eslint-disable-line camelcase
      //  discuss at: http://locutus.io/php/mt_rand/
      // original by: Onno Marsman (https://twitter.com/onnomarsman)
      // improved by: Brett Zamir (http://brett-zamir.me)
      //    input by: Kongo
      //   example 1: mt_rand(1, 1)
      //   returns 1: 1
      var argc = arguments.length
      if (argc === 0) {
    	min = 0
    	max = 2147483647
      } else if (argc === 1) {
    	throw new Error('Warning: mt_rand() expects exactly 2 parameters, 1 given')
      } else {
    	min = parseInt(min, 10)
    	max = parseInt(max, 10)
      }
      return Math.floor(Math.random() * (max - min + 1)) + min
    };
    
    /* копипейст минифицированного sprintf.js */

    Вчера самизнаетекто сделала [роскомнадзор], о чем вы и так прекрасно знаете
    О чем вы может быть не знаете, так это то что делавшие сайт студенты помимо слива всей тусовки заливкой данных на сайты других участников тусовочки и использованием общих идентификаторов аналитики еще и не смогли осилить жабаскрипт, поэтому они копипастят порт PHP в JS из ближайшего интернета

    Fike, 19 Октября 2017

    Комментарии (25)
  5. Java / Говнокод #23247

    0

    1. 1
    2. 2
    3. 3
    catch (Exception e) {
        System.err.println("!!");
    }

    Fike, 08 Августа 2017

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

    +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
    /**
     * "Smart" Escape String
     *
     * Escapes data based on type
     * Sets boolean and null types
     */
    function escape($str)
    {
        if (is_string($str))
        {
            $str = "'".$this->escape_str($str)."'";
        }
        elseif (is_bool($str))
        {
            $str = ($str === FALSE) ? 0 : 1;
        }
        elseif (is_null($str))
        {
            $str = 'NULL';
        }
    
        return $str;
    }

    CodeIgniter 2, "Smart"

    Fike, 11 Июля 2017

    Комментарии (0)
  7. Ruby / Говнокод #22795

    −31

    1. 1
    Net::HTTPServerException: 404 "Not Found"

    сервер виноват™

    Fike, 11 Апреля 2017

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

    −126

    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
    public static function __callStatic($method, $args)
    {
    	$instance = static::getFacadeRoot();
    	switch (count($args))
    	{
    		case 0:
    			return $instance->$method();
    		case 1:
    			return $instance->$method($args[0]);
    		case 2:
    			return $instance->$method($args[0], $args[1]);
    		case 3:
    			return $instance->$method($args[0], $args[1], $args[2]);
    		case 4:
    			return $instance->$method($args[0], $args[1], $args[2], $args[3]);
    		default:
    			return call_user_func_array(array($instance, $method), $args);
    	}
    }

    классическая блевня и ссанина в очередном модном фреймворке

    https://github.com/illuminate/support/blob/4.2/Facades/Facade.php#L198-L222

    Fike, 22 Марта 2017

    Комментарии (26)
  9. PHP / Говнокод #22588

    −23

    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
    /*
     *---------------------------------------------------------------
     * APPLICATION FOLDER NAME
     *---------------------------------------------------------------
     *
     * If you want this front controller to use a different "application"
     * folder then the default one you can set its name here. The folder
     * can also be renamed or relocated anywhere on your server.  If
     * you do, use a full server path. For more info please see the user guide:
     * http://codeigniter.com/user_guide/general/managing_apps.html
     *
     * NO TRAILING SLASH!
     */
    $application_folder = __DIR__ . '/application';
    
    ...
    
    // The path to the "application" folder
    if (is_dir($application_folder))
    {
        define('APPPATH', $application_folder.'/');
    }
    else
    {
        if ( ! is_dir(BASEPATH.$application_folder.'/'))
        {
            exit("Your application folder path does not appear to be set correctly. Please open the following file and correct this: ".SELF);
        }
    
        define('APPPATH', BASEPATH.$application_folder.'/');
    }

    CodeIgniter 2. Хороший все-таки фреймворк.

    Fike, 15 Марта 2017

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

    −39

    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
    private function removeLock($storageFile) {
        // suppress all warnings, if some other process removed it that's ok too
        @unlink($storageFile . '.lock');
      }
    
      private function waitForLock($storageFile) {
        // 20 x 250 = 5 seconds
        $tries = 20;
        $cnt = 0;
        do {
          // make sure PHP picks up on file changes. This is an expensive action but really can't be avoided
          clearstatcache();
          // 250 ms is a long time to sleep, but it does stop the server from burning all resources on polling locks..
          usleep(250);
          $cnt ++;
        } while ($cnt <= $tries && $this->isLocked($storageFile));
        if ($this->isLocked($storageFile)) {
          // 5 seconds passed, assume the owning process died off and remove it
          $this->removeLock($storageFile);
        }
      }

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

    https://github.com/Exercise/google-api-php-client/blob/master/src/cache/apiFileCache.php#L58

    Fike, 03 Февраля 2017

    Комментарии (9)
  11. PHP / Говнокод #20439

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $exceptionClass = '\yii\db\Exception';
    foreach ($this->exceptionMap as $error => $class) {
        if (strpos($e->getMessage(), $error) !== false) {
            $exceptionClass = $class;
        }
    }
    ...
    return new $exceptionClass($message, $errorInfo, (int) $e->getCode(), $e);

    Yii <3

    https://github.com/yiisoft/yii2/blob/master/framework/db/Schema.php#L625-L633

    Fike, 27 Июля 2016

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