1. ActionScript / Говнокод #14432

    −121

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    private function taskResizer_resizeFinished(event:ResizerEvent):void {
                var width:int = event.width;
                var height:int = event.height;
                task.changeSize(width, height);
                // Wake up bindings
                var zones:* = zones; // AHAHAHHAHAHA
                this.zones = null;
                this.zones = zones;
                taskResizer.width = width;
                taskResizer.height = height;
            }

    Апдейт биндингов и контрольный выстрел в (шестой) строке.

    maleka, 28 Января 2014

    Комментарии (20)
  2. PHP / Говнокод #14430

    +155

    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
    try
    {
      return ($image = $this->row->image()->first())
        ? $image->{$this->imageAlias}
        : dummyThumbnail($this->imageAlias)
      ;
    }
    catch(\Exception $e)
    {
      if ($e->getMessage() === 'Method [image] is not defined on the Query class.')
      {
          $val = parent::value();
          return (is_string($val) and \Str::contains($val, 'http://'))
            ? $val
            : $this->row->getImageSrc($this->name, $this->imageAlias)
          ;
      }
    
      throw new \Exception($e->getMessage(), $e->getCode());
    }

    mobileka, 28 Января 2014

    Комментарии (96)
  3. Java / Говнокод #14429

    +72

    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
    @Entity
    public class MyObject {
        @Column
        private int type;
    
        @Id
        private long id;
    
        @Column
        private String name;
    
        // и ещё другие поля, а также геттеры-сеттеры для них, в общем, обычная сущность
    }
    
    // managed bean в jsp 1.2 (legacy проект)
    public class MyList {
        private List<MyObject> oList;
        private SimpleDateFormat filterDateFormat;
    
        public MyList() {
            filterDateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
        }
    
        public List<MyObject> getMyList() {
            if (oList == null) {
                oList = DAO.getDAO().findAllMyObjects();
                String name = ...; // берётся из формы
                if (name != null && name != "") {
                    oList = getObjectsByName(name, oList);
                }
                Integer type = ...; // тоже берётся из формы
                if (type != null) {
                    oList = getObjectsByType(type, oList);
                }
                // и здесь ещё четыре куска такого же говнокода для других свойств MyObject
            }
            return oList;
        }
    
        private List<MyObject> getObjectsByType(Integer type, List<MyObject> oList) {
            List<MyObject> queriesByType = new ArrayList<MyObject>();
            for (MyObject o : oList) {
                if (o.getType() == type) {
                    queriesByType.add(o);
                }
            }
            return queriesByType;
        }
    
        private List<MyObject> getObjectsByName(String name, List<MyObject> oList) {
            List<MyObject> queriesByName = new ArrayList<MyObject>();
            for (MyObject o : oList) {
                if (o.getName() == name) {
                    queriesByName.add(o);
                }
            }
            return queriesByName;
        }
    
        // и ещё четыре таких же говнометода для других свойств MyObject
    }

    Наглядное руководство, как не надо работать с JPA

    evg_ever, 28 Января 2014

    Комментарии (31)
  4. Perl / Говнокод #14428

    −103

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    use Carp qw(carp cluck croak confess);
    
    carp "warning";
    cluck "warning with backtrace";
    croak "fatal error";
    confess "fatal error withbacktrace";

    Говорящие имена функций такие говорящие придирчивые, кудахтающие, каркающие, исповедывающиеся...

    bormand, 28 Января 2014

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

    +162

    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
    foreach ($foo as $key1=>$value) {
        if ($foo[$key1][parent] == 0 ) {
            echo '<li><a href="/index.php?cPath='.$key1.'">'.$foo[$key1][name].'</a>';
            foreach ($foo as $key2=>$value) { if ($foo[$key2][parent] == $key1){echo '<ul>'; break; }};
            foreach ($foo as $key2=>$value) {
                if ($foo[$key2][parent] == $key1) {
                    echo '<li><a href="/index.php?cPath='.$key1.'_'.$key2.'">'.$foo[$key2][name].'</a>';
                    foreach ($foo as $key3=>$value) { if ($foo[$key3][parent] == $key2){echo '<ul>'; break;} };
                    foreach ($foo as $key3=>$value) {
                        if ($foo[$key3][parent] == $key2) {
                            echo '<li><a href="/index.php?cPath='.$key1.'_'.$key2.'_'.$key3.'">'.$foo[$key3][name].'</a>';
                            foreach ($foo as $key4=>$value) { if ($foo[$key4][parent] == $key3){echo '<ul>'; break;} };
                            foreach ($foo as $key4=>$value) {
                                if ($foo[$key4][parent] == $key3) {
                                    echo '<li><a href="/index.php?cPath='.$key1.'_'.$key2.'_'.$key3.'_'.$key4.'">'.$foo[$key4][name].'</a>';
                                    foreach ($foo as $key5=>$value) { if ($foo[$key5][parent] == $key4){echo '<ul>'; break;} };
                                    foreach ($foo as $key5=>$value) {
                                        if ($foo[$key5][parent] == $key4) {
                                            echo '<li><a href="/index.php?cPath='.$key1.'_'.$key2.'_'.$key3.'_'.$key4.'_'.$key5.'">'.$foo[$key5][name].'</a>';
                                            foreach ($foo as $key6=>$value) {if ($foo[$key6][parent] == $key5) {echo '<ul>'; break;} };
                                            foreach ($foo as $key6=>$value) {
                                                if ($foo[$key6][parent] == $key5) {
                                                    echo '<li><a href="/index.php?cPath='.$key1.'_'.$key2.'_'.$key3.'_'.$key4.'_'.$key5.'_'.$key6.'">'.$foo[$key6][name].'</a>';
                                                }
                                            }
                                            foreach ($foo as $key6=>$value) { if ($foo[$key6][parent] == $key5){echo '</ul>'; break;} };  
                                            echo '</li>';                                      
                                        }
                                    } 
                                    foreach ($foo as $key5=>$value) { if ($foo[$key5][parent] == $key4){echo '</ul>'; break;} };
                                    echo '</li>';
                                }
                            }
                            foreach ($foo as $key4=>$value) {if ($foo[$key4][parent] == $key3) {echo '</ul>'; break;} };
                            echo '</li>';                          
                        }
                    } 
                    foreach ($foo as $key3=>$value) { if ($foo[$key3][parent] == $key2){echo '</ul>'; break;} }; 
                    echo '</li>';              
                }
            }
            foreach ($foo as $key2=>$value) {if ($foo[$key2][parent] == $key1) {echo '</ul>'; break;} };
            echo '</li>';
        }        
    }

    Правильное понимание рекурсии, привитое картинками вконтакте.

    Dotterian, 28 Января 2014

    Комментарии (13)
  6. C++ / Говнокод #14424

    +10

    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
    align.h: 
    #pragma once
    #include "stdint.h"
    namespace tblib 
    {
      template <typename T>
      struct check_align
      {
        uint8_t c;
        T t;
        check_align();
        check_align(const check_align&);
        check_align&operator=(const check_align&);
      };
    
      template <typename T>
      struct align_value
      {
        enum { value = sizeof(check_align<T>)-sizeof(T) };
      };
    
      template <int N>
      struct align_by_size;
    
      template <> 
      struct align_by_size<1> { uint8_t guts; };
    
      template <> 
      struct align_by_size<2> { uint16_t  guts; };
    
      template <> 
      struct align_by_size<4> { uint32_t guts; };
    
      template <> 
      struct align_by_size<8> { uint64_t guts; };
    
      template <typename T>
      struct align
      {
        align_by_size<align_value<T>::value> guts;
      };
    };
     класс массива (начало), файл tbarr.h: 
    #pragma once
    
    #include "stdint.h"
    #include "assert.h"
    #include <algorithm>
    #include "tbslice.h"
    #include "align.h"
    
    // FUCK THE EXCEPTIONS
    
    template <typename T>
    void construct (T* first, T* last) {
      while (first!=last)  {
        new(first) T;
        ++first;
      }
    }
    
    template <typename T>
    void destroy (T* first, T* last)  {
      while (last!=first)  {
        --last;
        last->~T();
      }
    }
    
    namespace tblib
    {  
      template <typename T, int N>
      class base_array
      {
        union
        {
          uint8_t memory [sizeof(T[N])];
          align<T> aligner;
        };
      public :

    мой выравниватель
    намного красивее бустовского, не так ли?

    TarasB, 27 Января 2014

    Комментарии (31)
  7. JavaScript / Говнокод #14423

    +155

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    var partner_id = location.href;
            //Определить значение четвертого сегмента
            var i = 1;
            while (i <= 5) {
                partner_id = partner_id.substr(partner_id.indexOf('/') + 1);
                i++;
            }
            var pos = partner_id.indexOf('/');
            if (pos > 0) {
                partner_id = partner_id.substr(0, pos);
            }

    Урлопарсинг от Папке.

    ragnar, 27 Января 2014

    Комментарии (3)
  8. Куча / Говнокод #14422

    +127

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    // ------- CLICKING STUFF IN CONTAINERS -------
    	if ((!( src in usr.contents ) && (((!( isturf(src) ) && (!( isturf(src.loc) ) && (src.loc && !( isturf(src.loc.loc) )))) || !( isturf(usr.loc) )) && (src.loc != usr.loc && (!( istype(src, /obj/screen) ) && !( usr.contents.Find(src.loc) ))))))
    		if (istype(usr, /mob/living/silicon/ai))
    			var/mob/living/silicon/ai/ai = usr
    			if (ai.control_disabled || ai.malfhacking)
    				return
    		else
    			return

    Взято из кода обработки нажатия одной опенсорсной онлайн-игрушки. Зачем, за что и почему?

    ACCount, 27 Января 2014

    Комментарии (3)
  9. Perl / Говнокод #14421

    −159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    sub trim
    {
        my ($string) = @_;
        for ($string)
        {
            s/^\s+//;
            s/\s+$//;
        }
        return $string;
    }

    for ($string) такой for ($string)...

    http://ideone.com/JWu2Kt

    bormand, 27 Января 2014

    Комментарии (25)
  10. Perl / Говнокод #14420

    −159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if ("0 but true" == 0) {
        print "Zero! ";
    }
    if ("0 but true") {
        print "But true...";
    }

    The current default implementation always returns true without actually doing anything. Actually, it returns "0 but true" which is true but zero. That way you can tell if the return value is genuine or just the default.

    http://ideone.com/8FzrUI

    Zero! But true...

    bormand, 27 Января 2014

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