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

    Всего: 99

  2. 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)
  3. 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)
  4. 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)
  5. 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)
  6. Куча / Говнокод #20353

    +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
    Также Дмитрий Кузнецов объяснил, каким образом будет осуществляться 
    передача ключей шифрования.
    
    «Предоставление ключей — это просто предоставление бумажного документа 
    с распечатанными столбиками цифр»,  — пояснил эксперт.
    
    Он добавил, что требования к средствам шифрования определяют то, как ключ 
    шифрования должен выглядеть в электронном виде, как его распечатать на 
    бумаге и как из распечатки перевести его обратно в электронную форму.
    
    По мнению эксперта, данное требование не вызовет проблем у операторов 
    связи, так как современный ключ шифрования без дополнительных служебных 
    полей имеет длину не более 8 килобайт, чаще всего используются ключи длиной 
    до 2 килобайт, что ничтожно мало по сравнению с размером самих сообщений.
    
    «Технических проблем с хранением и предоставлением ключей у операторов 
    не будет совершенно точно», — заключил специалист.

    оригинал - http://www.gazeta.ru/tech/2016/07/07/8376887/yarovaya.shtml

    Fike, 08 Июля 2016

    Комментарии (13)
  7. Java / Говнокод #20161

    +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
    // can only do five hundred at a time. can't find documentation
        // for this number, but if I do more than that I get an error
        // message
    	for (five_hundred <- pageranks.grouped(500))
    	{
    	  try
    	  {
    	    upload(five_hundred)
    	  }
    	  catch
    	  {
    	    // the datastore is not entirely reliable. for less than 1% of the
    	    // calls it seems to fail randomly. which is a bit annoying if
    	    // you're uploading a lot of data and don't want to stop when half of
    	    // it is already stored
    	    case ex : Throwable =>
    	    {
    	      try
    	      {
    	        ex.printStackTrace()
    	        // try a second time
    	        upload(five_hundred)
    	      }
    	      catch
    	      {
    	        // don't try a third time. just continue
    	        case ex : Throwable => ex.printStackTrace()
    	      }
    	    }
    	  }
    	}

    Наткнулся на пост, в котором некий Ph. D рекламировал scala в качестве замены питону

    Fike, 09 Июня 2016

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

    −19

    1. 1
    2. 2
    3. 3
    > What’s New In Python 3.0
    
    Removed reduce(). Use functools.reduce() if you really need it; however, 99 percent of the time an explicit for loop is more readable.

    Действительно, зачем он нужен вообще

    https://docs.python.org/3.0/whatsnew/3.0.html

    Fike, 07 Ноября 2015

    Комментарии (50)
  9. Java / Говнокод #18895

    −47

    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
    public enum AddressType implements UrlValue {
    
      /**
       * {@code STREET_ADDRESS} indicates a precise street address.
       */
      STREET_ADDRESS("street_address"),
    
      /**
       * {@code ROUTE} indicates a named route (such as "US 101").
       */
      ROUTE("route"),
    
    ...
    
      /**
       * Indicates an unknown address type returned by the server. The Java Client for Google Maps
       * Services should be updated to support the new value.
       */
      UNKNOWN("unknown");
    
      private final String addressType;
    
      AddressType(final String addressType) {
        this.addressType = addressType;
      }
    
      @Override
      public String toString() {
        return addressType;
      }

    google-maps-services:0.1.8

    миллион поклонов за внятные комментарии к типам, но вся возня с toString() выглядит мягко говоря странновато

    Fike, 20 Октября 2015

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

    −11

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    try {
    	if ( isset( $response['error'] ) ) throw new \Exception( $response['error']['error_msg'] );
    } catch (\Exception $e) {
    	die( $e->getMessage() );
    }

    Классика
    https://github.com/zelenin/VK/blob/b1acf593d4caf0361569ac300ac797b96463133e/src/Zelenin/VK.php#L134-L138

    Fike, 08 Октября 2015

    Комментарии (0)
  11. Java / Говнокод #18627

    −67

    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
    public class GooglePlusSample {
    
      private static final String API_KEY =
          "Enter API Key from https://code.google.com/apis/console/?api=plus into API_KEY";
    
    ...
    
    
      public static void main(String[] args) {
        if (API_KEY.startsWith("Enter ")) {
          System.err.println(API_KEY);
          System.exit(1);
        }
        ...

    Гуглопримерчики

    https://github.com/google/google-http-java-client/blob/4c58c9bf3c11385d1c15db7323efb35745da658a/samples/googleplus-simple-cmdline-sample/src/main/java/com/google/api/services/samples/googleplus/cmdline/simple/GooglePlusSample.java

    Fike, 24 Августа 2015

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