1. C# / Говнокод #11253

    +140

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    private static object Clone(object obj)
    {
    	object newObj = Activator.CreateInstance(obj.GetType());
    	foreach (PropertyInfo pi in obj.GetType().GetProperties())
    		pi.SetValue(newObj, pi.GetValue(obj, null), null);
    	return newObj;
    }

    Потребовалось клонировать объект библиотечного класса со множеством свойств.

    Steve_Brown, 20 Июня 2012

    Комментарии (10)
  2. C# / Говнокод #11252

    +138

    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 class ImageWorkerSingleton
    {
    	private static ImageWorkerSingleton instance;
    
    	private ImageWorkerSingleton() { }
    
    	public static ImageWorkerSingleton Instance
    	{
    		get
    		{
    			if (instance == null)
    			{
    				instance = new ImageWorkerSingleton();
    			}
    			return instance;
    		}
    	}
    
    	public void Init() {}
    
    	public string UrlToImage(Guid id, ImageTypeEnum imageType = ImageTypeEnum.PhotoUndefined)
    	{
    		...
    	}
    
    	public bool IsImageExist(Guid id, ImageTypeEnum imageType = ImageTypeEnum.PhotoUndefined)
    	{
    		...
    	}
    }

    И на кой, здесь синглтон о_О

    DarkThinker, 20 Июня 2012

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

    −40

    1. 1
    *new

    Самая соль.

    Говногость, 20 Июня 2012

    Комментарии (22)
  4. PHP / Говнокод #11250

    +66

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if (mysql_num_rows(mysql_query("SELECT * FROM `usermail` WHERE `email` LIKE '%".$_POST['email']."%' "))) {
    	# email уже есть
    } else {
    	# новый email
    }

    Проверка на наличие email в таблице. Через SELECT * и LIKE !!!

    domaster, 20 Июня 2012

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

    +66

    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
    /**
         * 
         * check for collection object
         * @access public
         * @param string $session_path
         * @param string $session_name
         * @return boolean
         */
        public function open($session_path, $session_name)
        {
            $result = false;
            if ($this->__mongo_collection != NULL)
            {
                $result = false;
            }
            return $result;
        }

    Недавно искал класс для хранения сессий в базе данных и нашел его тут
    http://www.phpclasses.org/browse/file/34711.html (для тех кто не видит смотрим тут http://pastebin.com/xuQav8nD)
    При внимательном просмотре нашел этот кусок кода :)

    haker, 20 Июня 2012

    Комментарии (4)
  6. Java / Говнокод #11246

    +124

    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
    BufferedReader file = null;
        boolean moreData = true;
        //set the parameters
        this.textureDir = textureDir;
    
        //open a file
        try{
          file = new BufferedReader(
              new InputStreamReader(
              (new FileInputStream(filename))), 50000);
        } catch (Exception e) {System.err.println("kan model niet laden"); moreData = false;}
    
        //read shapes until no more data
        while(moreData)
        {
          Shape3D shape = readShape(file);
          if(shape != null)
          {
            tg.addChild(shape);
    
          }
          else
          {
            moreData = false;
          }
        }
    
        try{
          file.close();
          file=null;
        } catch (IOException e)
        {
          System.err.println("file " + filename + " could not be closed!");
        }

    Интересный способ обработки ошибок ввода-вывода.

    Естественно, при неудачном открытии файла вываливается по NullPointerException.

    someone, 20 Июня 2012

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

    +87

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
       public static final String HTTP = "http://";
        public static final String HTTPS = "https://";
    
        public static final String HTTP_UP = "HTTP://";
        public static final String HTTPS_UP = "HTTPS://";
    
        public static final String HTTP_UP_1 = "Http://";
        public static final String HTTPS_UP_1 = "Https://";
    
        private static final String STUPID_PROTOCOL = "http://http://";
        private static final String STUPID_PROTOCOL_1 = "ttp://";
        private static final String STUPID_PROTOCOL_2 = "hhttp://";

    из утилит по проверки урлов

    ykhrustalev, 20 Июня 2012

    Комментарии (24)
  8. SQL / Говнокод #11244

    −119

    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
    select a, trim(both ',' from max(SYS_CONNECT_BY_PATH(b, ',')))bb from (
      select count(1) over (partition by a order by /* Важно:*/ a,b /*!*/)rn, a, b from (
    
        select a, b from (
          select 1 a, 'a' b from dual union all
          select 1 a, 'b' b from dual union all
          select 2 a, 'c' b from dual union all
          select 2 a, 'd' b from dual union all
          select 2 a, 'e' b from dual union all
          select 3 a, 'f' b from dual
        ) order by dbms_random.value
    
      )
    )
    start with rn=1 connect by nocycle prior a=a and prior rn+1=rn
    group by a;

    Задача на агрегацию с конкатенацией строк. Можно решить правильно - через свой агрегирующий объект, а можно так, "не по правилам" ))

    RomaShka, 20 Июня 2012

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

    +161

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    $('button').not('.noBind').bind('click',function(){
    	if(...)
    	{
    		if(...)
    		{
    			return false;
    		}
    	}
    	document.location=$(this).attr('rel')
    });

    Сидели ломали голову, отчего все кнопки на странице куда-то ломятся, а тут такое наследство откопалось. В js-ке, которая грузится всегда.

    speller, 20 Июня 2012

    Комментарии (0)
  10. C# / Говнокод #11233

    +135

    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
    public TOscillPanel getOscillPanel(String nameTable, XmlNodeList parameters, String idCHPU)
            {
                var actions=new Dictionary<string, object>
                                {
                                    {"addParamOscill", new Action<string, string>(addParamOscill)},
                                    {"removeParamOscill", new Action<string, string>(removeParamOscill)},
                                    {"includeRealTimeMode",new Action<string>(includeRealTimeMode)}
                                };
                return (new TOscillPanel(nameTable, parameters, actions));
            }
    
    //...
                              ((Action<String, String>)_actions["addParamOscill"])(_tableChpu, ((TOptionNode)_oscillTreeView.Nodes[0]).getId());
                              ((Action<String, String>)_actions["addParamOscill"])(_tableChpu, idParameters);
    }
    else
    {
                            ((Action<String, String>)_actions["removeParamOscill"])(_tableChpu, ((TOptionNode)_oscillTreeView.Nodes[0]).getId());
                            ((Action<String, String>)_actions["removeParamOscill"])(_tableChpu, idParameters);
    }

    Это практически единственные и основные упоминания в коде контейнера _actions.
    Говорила же мне мама: "возьми динамически типизированный язык", а я её не слушал. Не мне конечно же. Код из очень крупного частного проекта.
    Динамически типизированный язык тут конечно же не нужен. Просто создаем трудности, а потом стоически их решаем.

    Говногость, 19 Июня 2012

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