1. Лучший говнокод

    В номинации:
    За время:
  2. PHP / Говнокод #19797

    +12

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    //Если кто-то пытается изменить стандартный отчет и не является Кириллом
    if (in_array($reportId, Default_Model_DbTable_SupplierReport::getInstance()->getStandardIds()) == true
    	&& $this->me->id != Default_Model_User::getKirill()->id
    ) {
    	return false;
    }

    jbot, 12 Апреля 2016

    Комментарии (5)
  3. C# / Говнокод #19779

    +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
    public class FileStorage {
            public FileStorage() {
                try {
                    if (String.IsNullOrEmpty(Common.GlobalVariables.FileStorage)) {
                        throw new Exception(Common.GuiHelper.ShowErrorMessage("FileStorage", String.Empty));
                    }
    
                    if (!Directory.Exists(Common.GlobalVariables.FileStorage)) {
                        DirectoryInfo di = Directory.CreateDirectory(Common.GlobalVariables.FileStorage);
                        if (!di.Exists) {
                            throw new Exception(Common.GuiHelper.ShowErrorMessage("FileStorageDir", String.Empty));
                        }
                    }
                } catch (Exception er) {
                    throw new Exception(er.Message);
                }
            }
    
            public String CreateFileDirectory() {
                try {
                    int iIdx = 0;
                    Boolean bIsCreated = false;
                    while (!bIsCreated && iIdx < 10) {
                        String sDir = Guid.NewGuid().ToString("N").ToLower();
                        sDir = sDir.Substring(0, 2);
                        if (!Directory.Exists(Common.GlobalVariables.FileStorage + sDir + @"\")) {
                            DirectoryInfo di = Directory.CreateDirectory(Common.GlobalVariables.FileStorage + sDir + @"\");
                            if (di.Exists) {
                                return Common.GlobalVariables.FileStorage + sDir + @"\";
                            }
                        }
    
                        iIdx++;
                    }
    
                    return null;
                } catch (Exception er) {
                    throw new Exception(er.Message);
                }
            }
        }

    может я чего не понимаю, но зачем?

    Lokich, 08 Апреля 2016

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

    −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
    if(this.options.raining){
          this.dropletsCounter+=this.options.dropletsRate*timeScale*this.areaMultiplier;
          times(this.dropletsCounter,(i)=>{
            this.dropletsCounter--; // зачем это тут?
            this.drawDroplet(
              random(this.width/this.scale),
              random(this.height/this.scale),
              random(...this.options.dropletsSize,(n)=>{
                return n*n;
              })
            )
    });

    завис на этой строке... https://github.com/codrops/RainEffect/blob/master/src/raindrops.js

    makc3d, 01 Апреля 2016

    Комментарии (5)
  5. C# / Говнокод #19726

    +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
    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
    78. 78
    79. 79
    80. 80
    public interface ICachedObject<TCachedValue>
        {
            TCachedValue Value { get; set; } 
        } 
    
    public interface ICacheProvider<TCachedObject, TCachedValue>
            where TCachedObject : ICachedObject<TCachedValue>
        {
            TCachedObject Get(string key);
    
            void Set(string key, TCachedObject value);
    
            void Remove(string key);
    
            IEnumerable<TCachedObject> GetAll();
        }
    
    public class CachedEntityObject : ICachedObject<IEntity>
        {
            public EntityState State { get; set; }
    
            public IEntity Value { get; set; }
        }
    
        public abstract class CacheProvider<TCache, TCachedObject, TCachedValue> :
            ICacheProvider<TCachedObject, TCachedValue> 
            where TCache : IDictionary<string, TCachedObject>
            where TCachedObject : ICachedObject<TCachedValue>
        {
            protected TCache Cache;
    
            protected abstract void InitializationCache();
    
            public abstract TCachedObject Get(string key);
    
            public abstract void Set(string key, TCachedObject value);
    
            public abstract void Remove(string key);
    
            public abstract IEnumerable<TCachedObject> GetAll();
        }
    
     public class CacheEntity : CacheProvider<Dictionary<string, CachedEntityObject>, CachedEntityObject, IEntity>
        {
            public CacheEntity()
            {
                InitCache();
            }
    
            protected sealed override void InitCache()
            {
                Cache = new Dictionary<string, CachedEntityObject>();
            }
    
            public override CachedEntityObject Get(string key)
            {
                if (Cache[key] == null)
                    throw new NullReferenceException($"{nameof(key)} not found from cache list");
    
                return Cache[key];
            }
    
            public override void Set(string key, CachedEntityObject value)
            {
                Remove(key);
    
                Cache[key] = value;
            }
    
            public override void Remove(string key)
            {
                if (Cache.ContainsKey(key))
                    Cache.Remove(key);
            }
    
            public override IEnumerable<CachedEntityObject> GetAll()
            {
                return Cache.Values;
            }
        }

    Кэш сущностей

    Serega9I, 31 Марта 2016

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

    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
    $f = fopen("./.htaccess", "r");
    			while (!feof($f)) {
    			    $tmp = fgets($f);
    			    $tmp = str_replace(REDIRECT_USER."/", $_POST["redir_user"]."/", $tmp);
    			    $tmp = str_replace(REDIRECT_SHOP."/", $_POST["redir_shop"]."/", $tmp);
    			    $tmp = str_replace(REDIRECT_ADMIN."/", $_POST["redir_admin"]."/", $tmp);
    			    $tmp = str_replace(REDIRECT_NEWS."/", $_POST["redir_news"]."/", $tmp);
    			    $tmp = str_replace(REDIRECT_CART."/", $_POST["redir_cart"]."/", $tmp);
    			    $tmp = str_replace(REDIRECT_PAYMENT."/", $_POST["redir_payment"]."/", $tmp);
    			    $tmp = str_replace(REDIRECT_INFO."/", $_POST["redir_info"]."/", $tmp);
    			    $line[] = $tmp;
    			}
    			fclose($f);

    Настройка редиректов из админки

    drop_database, 29 Марта 2016

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

    +5

    1. 1
    https://meduza.io/shapito/2016/03/24/iskusstvennyy-intellekt-ot-microsoft-za-sutki-polyubil-gitlera-i-voznenavidel-feministok

    RIP in peace, nazi AI ;_;

    CHayT, 25 Марта 2016

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

    0

    1. 1
    if(0+$count_options!=0)

    sevenflash, 07 Марта 2016

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

    0

    1. 1
    int k = 1000 - 1000 / 7 *7;

    Процент? Что такое процент?

    nicko, 07 Марта 2016

    Комментарии (5)
  10. JavaScript / Говнокод #19577

    −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
    module Bert {
      export class Decoder {
        private b: ArrayBuffer;
        private d: DataView;
        private i: number = 0;
        result: any;
        constructor(packet: ArrayBuffer) {
          this.b = packet;
          this.d = new DataView(packet);
          if (131 == this.d.getUint8(this.i++)) {
            this.result = this.decode();
          } else {
            throw 'Not BERT';
          }
        }
        decode() {
          var tag = this.d.getUint8(this.i++);
          var r: any;
          switch (tag) {
            case 100: r = this.decodeAtom(); break; // latin1 atom
            case 107: r = this.decodeString(); break; // utf8 string
            case 109: r = this.decodeBinary(); break; // utf8 binary string
            case 115: r = this.decodeSmallAtom(); break; // latin1 atom
            case 118: r = this.decodeAtom(); break; // utf8 atom
            case 119: r = this.decodeSmallAtom(); break; // utf8 atom
          }
          return r;
        }
        decodeAtom() {
          var length = this.d.getUint16(this.i);
          this.i += 2;
          var dec = new Utf8.Decoder(this.b.slice(this.i, this.i + length));
          this.i += length;
          return dec.result;
        }
        decodeSmallAtom() {
          var length = this.d.getUint8(this.i++);
          var dec = new Utf8.Decoder(this.b.slice(this.i, this.i + length));
          this.i += length;
          return dec.result;
        }
        decodeString() {
          var length = this.d.getUint16(this.i);
          this.i += 2;
          var dec = new Utf8.Decoder(this.b.slice(this.i, this.i + length));
          this.i += length;
          return dec.result;
        }
        decodeBinary() {
          var length = this.d.getUint32(this.i);
          this.i += 4;
          var dec = new Utf8.Decoder(this.b.slice(this.i, this.i + length));
          this.i += length;
          return dec.result;
        }
        ...
      }
    }

    Перед тем, как избавлюсь от повторяющегося кода в нижней части
    (typescript)

    kgm-rj, 04 Марта 2016

    Комментарии (5)
  11. Куча / Говнокод #19550

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    // Итальянский код
    
    if (...) {
       ...
    } else {
       ...
    } elsinio {
       ...
    }

    3_dar, 29 Февраля 2016

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