Субъективный Си / Говнокод #12248 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
if (resetPasswordAlert != nil)
{
    resetPasswordAlert = nil, [resetPasswordAlert release];
}
[resetPasswordAlert release];
resetPasswordAlert = [[ResetPasswordAlert alloc] init];

Memory management по-белорусски...

Запостил: ZaR ZaR, (Updated )

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

  • Вот за что еще можно не любить обжективСи так это за то что можно без креша отправить сообщение нулевому указателю.
    Ответить
    • Ага, это несколько неочевидно, что отправляем неподдерживаемый селектор объекту - краш, отправляему нилу - все ок.
      Ответить
      • С другой стороны - это удобно тем, что не надо писать безумные цепочки проверок при обращении к вложенным свойствам
        Ответить
        • Да я же только за! Я к тому, что надо было довести дело до конца, не падать, когда, попутамши типы, отсылаешь селектор ненулевому объекту, который на него не отвечает.
          Или вот если нилу можно отправить что угодно, почему нельзя за границу массива выйти тогда, получив нил-объект?
          Ответить
            • да ладно.
              нотисы и ворнинги вместо эксепшенов, что летят при _правильной_ конфиге прямо в браузер, кулхацкерам на радость.
              фатал вылетит - не поймаешь.
              event-driven без усилий только в 5.4, а так махровая процедурщина во всем.
              Ответить
              • Я php не знаю, я сужу по тому гк, что здесь проскакивает. И знайте... Долго описывать, почему я php даже не буду пытаться учить 😉
                Ответить
                • Что тогда тру в веб-программировании? Node.js? Django? Perl?
                  Ответить
                  • Скажем так, я не знаю, что труЪ в веб-программировании, ибо я никогда для веба ничего не писал. Но php мне не нравится как язык. Если бы мне приспичило что-то срочно закодить под веб для себя - я взял бы луа - он последовательнее, что ли, да и давно его хочу попробовать.
                    Ответить
                    • Луа может в веб?

                      Я бы взял node.js (очень удобно писать и клиентскую и серверную части на одном языке).

                      Можно и рельсы конечно, да и питон ничем не хуже.

                      Perl тоже по-своему хорош, правда боюсь, что придется лизать шрамы.

                      Ну а против PHP ничего не имею. Язык ущербный, но если потребуется воспользуюсь.
                      Ответить
                        • scala и groovy тоже могут в веб?

                          p.s. сейчас как раз учу скалу, очень жалею, что начал учить ее после хаскеля.
                          Ответить
                          • В веб может даже брейнфак, CGI пока никто не отменял.

                            P.S. Правда у брейнфака нет доступа к переменным окружения, поэтому он может выдавать только одну статическую страничку ;(
                            Ответить
                          • > scala и groovy тоже могут в веб?
                            Где вы спали 10 лет, пока жаба залезала на ваши сервера, плодила свои контроллеры и навязывала свои модели?
                            Ответить
                            • надо вспомнить, что жаба была рождена для интернета, а скала и груви компилируются в жабабайткод, и вопросы сами отпадут, обнажая конфуз
                              Ответить
                              • Жаба была рождена для телевизоров и микроволновых печей, но внезапно поднялась на интернете, причём изначально на клиентской стороне (богомерзкие апплеты). Только потом догадались, что жабо-интерфейсы настолько убоги и страшны, что лучше спрятать жабу на сервер и прикрыть непотребство обычным html.
                                Ответить
                            • > Где вы спали 10 лет

                              Я всю жизнь в веб не совался, примерно неделю назад начал копаться, но дальше "hello world" на node.js не ушло.
                              Ответить
              • > прямо в браузер
                Я видел сайт (не отладочный, боевой в инторнете) на джанго с DEBUG = True, вот это на самом деле дружественный к пользователю вывод прямо в браузер. Хорошо, что они хитрые и прячут пароли и явки.
                Ответить
        • Типа таких?
          if(this==NULL)

          Я стараюсь не допускать возможности подобніх ситуаций.
          Ответить
          • krypt, скорее всего, имел в виду вот такие:
            if (x && x->some && x->some->thing) {
                foo(x->some->thing);
            }
            Ответить
              • А если foo — это метод класса, то тогда вообще можно так:

                [x.some.thing foo];
                Ответить
        • Помнится, перенос некоторых алгоритмов с Objective-C на Яву превращался в русскую рулетку из-за такой нехорошей фичи nil.
          Ответить
          • Имхо, фича nil'а отличная, просто кое-кто на любит документацию читать 😉
            Ответить

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

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8