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

    +131

    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
    private static List<Vessel> boosterVesselList = new List<Vessel>();
    		/// <summary>
    		/// Вернуть судно по строковому обозначению судна
    		/// </summary>
    
    		private static Vessel GetVesselByIdString(string vesselStrId)
    		{
    			Vessel findVessel = null;
    
    			// Просмотр в ускоряющем списке
    			foreach (Vessel boostVessel in boosterVesselList)
    			{
    				if (boostVessel.Name == vesselStrId)
    				{
    					findVessel = boostVessel;
    					break;
    				}
    			}
    
    			// Если в списке не нашли, ищем в БД
    			if (findVessel == null)
    			{
    				findVessel = VesselBusinessLogic.GetItemByName(vesselStrId);
    
    				if (findVessel == null)
    				{
    					findVessel = new Vessel
    					{
    						Id = -1,
    						Name = vesselStrId
    					};
    
    					findVessel.Id = PublicFunctions.AddOrUpdate(findVessel);
    					boosterVesselList.Add(findVessel);
    				}
    			}
    
    			return findVessel;
    		}

    Это один из методов класса для работы с морскими судами. Я пока не совсем понял как так и зачем так. Боже мой.... мама, роди меня обратно. Комментарии оригинальные.

    Запостил: alex_lis, 17 Марта 2015

    Комментарии (6) RSS

    • > VesselBusinessLogic
      Нашел в проекте над которым тружусь классы с названиями XXXBusinessLogic - долго не хотел туда заглядывать, но потом пришлось. Оказалось, что это классы-контейнеры графического интерфейса, каких-то кнопок и текстовых полей.
      Ответить
      • >> boostVessel.Name == vesselStrId

        если имя равно айдишнику... чувствуете это дуновение безумия?
        Ответить
    • > ускоряющем списке
      Линейный поиск в ускоряющем списке.
      Ответить
      • warp 9, mister Sulu
        Ответить
      • И чё? У него тут запрос к БД, он на несколько порядков дольше выполняется, чем линейный поиск в любой структуре данных любого вменяемого размера (предположим, что этот код не с Big Data работает всё-таки, или у них 24 GB оперативы на машине). Вообще нельзя сравнить.
        Ответить
    • Что вы прикопались? Кэширование данных из БД человек сделал. Ну, имена переменных и классов тупые, ну, сунул кэширование не в слой данных, в `VesselBusinessLogic.GetItemByName()`, а на слой выше, и что? Где здесь говнокод?
      Ответить

    Добавить комментарий