1. Objective C / Говнокод #12626

    −107

    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
    - (void)viewDidLoad
    {
        [super viewDidLoad];
    	[self performSegueWithIdentifier:@"manWomanView" sender:self];
    	return;
    //40 строк кода...
            NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
    // 5 строк формируем реквест
            NSData *responseData = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:nil error:&err];
    if (!responseData) {
    			NSLog(@"Connection Error: %@", [err localizedDescription]);
    		}
    		NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
    		NSLog(@"Response: %@", responseString);
    		NSString *isSucces = [AYDataFetcher isSucces:responseString];
    		if ([isSucces isEqualToString:@"success"]) {
    			NSLog(@"Signup Succes");
    				// Проверяем и записываем оплату
    			NSNumber *isPlat = [AYDataFetcher isPlat:responseString];
    				//NSLog(@"%@", isPlat);
    			NSLog(@"%@", [isPlat boolValue]?@"Paid account":@"No paid account");
    			[[NSUserDefaults standardUserDefaults] setBool:[isPlat boolValue] forKey:PLAT];
    			[[NSUserDefaults standardUserDefaults] synchronize];
    			
    			if(FALSE) // if([[MKStoreManager sharedManager] isSubscriptionActive:kMyFeatureIdentifier])
    			{
    // 80 строк кода
    			} else {
    				if (FALSE) {
    //50 строк кода......

    Клиент обратился - Приложение сделано фрилансером по имени Андрей Андреев. При переходе с одного таба на другой приложение подвисало на 5-10 секунд. Смотрим код, радуемся - все запросы к апи шлются через NSURLConnection sendSynchronousRequest, в коде куча блоков вроде if(FALSE). И это уже в релизе.

    Запостил: mas_an, 21 Февраля 2013

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

    • >manWomanView
      >Проверяем и записываем оплату
      Фансервис?
      Ответить
    • > - (void)viewDidLoad
      > ...
      > NSData *responseData = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:nil error:&err];
      Я аж чаем подавился. Так даже наш местный герой не делал.
      Ответить
      • Подождите... вы еще не знаете, как это из ПХП загрузить файл из той же папки, но через curl, выполнить, результат записать в JSON и оптправить вызывающему файлу.
        А я знаю.
        В моем случае, человек просто не знал, как значение из функции вернуть. Для него функции были вновинку.
        Ответить
      • > Я аж чаем подавился. Так даже наш местный герой не делал.
        Он это делал в loadView. Не прямо, конечно - из loadView у менеджера сущностей был дернут runEntities, тот стучался в команду загрузки, а та делала synchronousRequest.

        Так как у нас интернет быстрый, а модуль этот нафиг никому не нужен, то на проблему долго не обращали внимания.
        Ответить
    • Какова, кстати, судьба этого Андрея Андреева? Я бы устроил публичную порку :)
      Ответить
      • А что с ним будет, - фрилансер... Нафрилансил по тихому и пропал
        Ответить
      • >Я бы устроил публичную порку
        BDSM+ эксгибиционизм.
        Ответить
        • Обычно я расстрел предлагаю, но вот тут почему-то больше порка подходит.
          Ответить
    • > При переходе с одного таба на другой приложение подвисало на 5-10 секунд.
      В последних андроидах таких индусов наказали жестоко и надежно. При попытке сделать что-то связанное с сокетами (коннект, чтение, разрешение DNS) в главном треде андроид тупо вбрасывает NetworkInMainThreadError (не помню точного названия).

      Видимо фразы "Андроид тормозная херня у которой постоянно зависает интерфейс" их вконец достали.
      Ответить
      • В iOS есть простой способ сделать запрос ассинхронно не заморачиваясь с потоками - колбек будет мызван из главного потока автоматически. Но это же не для джедаев!
        Ответить
        • Ну в ведре тоже есть удобный AsyncTask. Просто индусам про его существование и необходимость можно объяснить только ударом по рукам...
          Ответить
    • [super viewDidLoad];
      [self performSegueWithIdentifier:@"manWomanView" sender:self];
      return;
      //40 строк кода...


      А как можно попасть на исполнение 40 строк кода, если только что был сделан ретурн?
      Ответить

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