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

    Всего: 8

  2. Java / Говнокод #16599

    +144

    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
    public static void main(String[] args) {
        int temp = 0;
        out: // label
        for (int i = 0; i < 3; ++i) {
            System.out.println("I am here");
            for (int j = 0; j < 20; ++j) {
               if(temp==0) {
                   System.out.println("j: " + j);
                    if (j == 1) {
                        temp = j;
                        continue out; // goto label "out"
                    }
                }
            }
        }
        System.out.println("temp = " + temp);
    }

    Оригинал: http://stackoverflow.com/questions/2545103/is-there-a-goto-statement-in-java

    Помнится, кто-то недавно упомянул именнованные циклы.
    Вот они и нашлись.

    Получается, что по "continue out" мы пойдём на следующую итерацию внешнего цикла, а при "break out", выйдем из внешнего цикла.
    Странно, что M$ не утянули себе такую фичу...

    TauSigma, 26 Августа 2014

    Комментарии (21)
  3. JavaScript / Говнокод #16460

    +154

    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
    var SomeObject = {
    	ToggleUploadButton: function () {
    		/// <summary>Отобразить или спрятать кнопку загрузки</summary>
    		var arr = this._ImageList.getElementsByTagName("LI");
    		if (arr.length > 0)
    			$(this._UploadPanel).removeAttr("disabled");
    		else $(this._UploadPanel).attr("disabled", "disabled");
    	},
    	OnButtonClick: function (e) {
    		/// <summary>Обаботка события нажатия на кнопку "Загрузить". Проходим по всем миниатюрам из списка, читаем у каждой свойство file (добавленное при создании) и начинаем загрузку, создавая экземпляры объекта uploaderObject. По мере загрузки, обновляем показания progress bar, через обработчик onprogress, по завершении выводим информацию.</summary>
    		if (!this.IsUploadCompatible)
    			return true;
    
    		if ($(this._UploadPanel).attr('disabled') !== undefined) return false;
    
    		//...
    	}
    }

    Вот таким красивым способом проверяем на наличие файлов в контейнере для загрузки...

    TauSigma, 01 Августа 2014

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

    +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
    $(function(){
            var keyword = '';
            if (typeof crtg_content !== 'undefined' && crtg_content) { keyword = crtg_content; }
            var custom = { 4:ar_duo1 };
            custom[1] = 'soft';
            custom[2] = 'design';
            custom[3] = 'linux';
    
            /* Антоша не удаляй это условие блеать! Как я тестить буду? */
            //if (true)
            //    show_inner_banner_block('ertelecom');
            //else
                new adriver("adriver_banner_132032996", {sid: 176776, bt: 52, bn: 3, custom: custom, keyword: keyword});
    });

    С известного ИТ ресурса.
    Не говнокод, конечно, но коментарий весёлый. :)

    TauSigma, 25 Июля 2014

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

    +134

    1. 1
    IEventDetails evt = logger.GetEvent((Int32)((Object[])msg.ID)[0], (Int64)((Object[])msg.ID)[1]);

    Нашёл свой код бородатой давности в одном решении, в котором присутсвует дедлок, а лезть в код не хотелось.
    Вот теперь думаю, ковырять компонент дальше или пусть себе с дедлоком живёт.....

    TauSigma, 01 Июля 2014

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

    +129

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    public class DataLayer
    {
    ...
    public List<Employee> GetEmployees() { ... }
    public List<Department> GetDepartments() {...}
    public List<Roles> GetRoles() {...}
    }

    Обратил внимание, что некоторые коллеги любят использовать в качестве возвращаемых типов не обычные массивы, а обязательно List<T>.
    Долго гадал, что-ж такая за практика интерсная, на стеке прям несколько вопросов подрял.
    Затем, обратил внимание, что все они используют в качестве основного инструмента паттерн MVC.
    Проштудировав самые известные книжки по MVC, таки нашёл виновника:
    http://www.ozon.ru/context/detail/id/19064535/ - Программирование на основе Microsoft ASP.NET MVC (Дино Эспозито)
    Везде где только можно, всё просто обделано LIst'ами. Даже данные передаваемые во View...

    TauSigma, 15 Июля 2013

    Комментарии (134)
  7. C# / Говнокод #13304

    +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
    // System.Web.Security.FormsAuthentication
    /// <summary>Returns the redirect URL for the original request that caused the redirect to the login page.</summary>
    /// <returns>A string that contains the redirect URL.</returns>
    /// <param name="userName">The name of the authenticated user. </param>
    /// <param name="createPersistentCookie">This parameter is ignored.</param>
    public static string GetRedirectUrl(string userName, bool createPersistentCookie)
    {
    	if (userName == null)
    	{
    		return null;
    	}
    	return FormsAuthentication.GetReturnUrl(true);
    }

    http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication. getredirecturl.aspx
    Разработчики ASP.NET'а опять доставляют... И не лень было столько параметров делать, а потом ещё и описывать...

    TauSigma, 04 Июля 2013

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

    +136

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    protected Boolean GetStatus(VinRequestStatusId statusId, Int16 id)
    {
    	if(statusId == VinRequestStatusId.CarDataNeeded && id == 0)
    		return true;
    	if(statusId == VinRequestStatusId.WaitingClientAnswer && id == 1)
    		return true;
    	return false;
    }

    Разработчику гуя лень было лезть в DAL. Наложил прямо на форме.

    TauSigma, 01 Июля 2013

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

    +132

    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
    public static string[] GetLogicalDrives()
    {
    	// System.Environment.GetLogicalDrives()
    	new EnvironmentPermission(PermissionState.Unrestricted).Demand();
    	// System.IO.Directory.GetLogicalDrives()
    	new SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Demand();
    
    	int logicalDrives = Win32Native.GetLogicalDrives();
    	if (logicalDrives == 0)
    	{
    		__Error.WinIOError();
    	}
    	uint num = (uint)logicalDrives;
    	int num2 = 0;
    	while (num != 0u)
    	{
    		if ((num & 1u) != 0u)
    		{
    			num2++;
    		}
    		num >>= 1;
    	}
    	string[] array = new string[num2];
    	char[] array2 = new char[]
    	{
    		'A',
    		':',
    		'\\'
    	};
    	num = (uint)logicalDrives;
    	num2 = 0;
    	while (num != 0u)
    	{
    		if ((num & 1u) != 0u)
    		{
    			array[num2++] = new string(array2);
    		}
    		num >>= 1;
    		char[] expr_6E_cp_0 = array2;
    		int expr_6E_cp_1 = 0;
    		expr_6E_cp_0[expr_6E_cp_1] += '\u0001';
    	}
    	return array;
    }

    Копался сегодня в дебрях .NET'а и нашёл 2 метода получения списка дисков:
    System.Environment.GetLogicalDrives() и System.IO.Directory.GetLogicalDrives()
    Различается код только первой срокой запроса разрешений.

    Если один метод устарел-бы, то можно было его форварднуть через атрибут TypeForwardedTo.
    Или хотя-бы объединить код вынеся запрос разрешений.

    Оба метода доступны ещё с .NET 1.1. Но вот класс DriveInfo, который появился только в .NET 2.0 использует метод Directory.GetLogicalDrives()

    Это такая "фича" с копипастом кода или тут есть какой-то сакральный смысл?

    TauSigma, 25 Июня 2013

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