ЙажаСценарий / Говнокод #10548 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
ISQ.Widget.ContactForm.clickEventHandler=function(a){
    switch(a.result){
    case ISQ.Forms.clickEventEnum.SUBMIT:
	ISQ.Widget.Log.add("contactForm submit");
	ISQ.Widget.ContactForm.send(a.formElements);
	ISQ.Widget.ContactForm.close(true);
	break;
    case ISQ.Forms.clickEventEnum.CANCEL:
	if(ISQ.Cnf.limited){
	    break
	}
	ISQ.Widget.Log.add("contactForm cancel");
	if(a.query!==""){
	    ISQ.Widget.HTML.queryField.value=a.query
	}
	ISQ.Widget.ContactForm.canceled=true;
	ISQ.Widget.ContactForm.close();
	break;
    case ISQ.Forms.clickEventEnum.ERROR:
	ISQ.Widget.Log.add("contactForm input error");
	break
    }
};

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

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

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

    • Вы бы залились слезами, если бы тут был весь проект. Я его пока что читаю и параллельно отступы расставляю, так, если что-то приметное попадается, то сюда.

      total 1792
      -rw-r--r-- 1 wvxvw  23214 Jun  3 19:23 Ajax.js
      -rw-r--r-- 1 wvxvw   2536 Jun  3 18:45 ExtendingECMA.js
      -rw-r--r-- 1 wvxvw   4068 Jun  3 18:44 ISQ.Base.js
      -rw-r--r-- 1 wvxvw   6662 Jun  3 19:32 ISQ.CDC.js
      -rw-r--r-- 1 wvxvw   7698 Jun  3 13:28 ISQ.CSS.js
      -rw-r--r-- 1 wvxvw  13558 Jun  3 19:09 ISQ.Data.js
      -rw-r--r-- 1 wvxvw   1774 Jun  4 14:39 ISQ.Debug.js
      -rw-r--r-- 1 wvxvw   3264 Jun  3 19:13 ISQ.Event.js
      -rw-r--r-- 1 wvxvw  21637 Jun  3 13:47 ISQ.Forms.js
      -rw-r--r-- 1 wvxvw   5624 Jun  3 19:42 ISQ.GUI.js
      -rw-r--r-- 1 wvxvw    919 Jun  3 19:13 ISQ.Handler.js
      -rw-r--r-- 1 wvxvw  21508 Jun  3 19:15 ISQ.Html.js
      -rw-r--r-- 1 wvxvw   7969 Jun  3 13:11 ISQ.Http.js
      -rw-r--r-- 1 wvxvw   1028 Jun  3 13:50 ISQ.ImagesList.js
      -rw-r--r-- 1 wvxvw   3037 Jun  3 19:12 ISQ.Infra.js
      -rw-r--r-- 1 wvxvw   3638 Jun  3 18:44 ISQ.Profiler.js
      -rw-r--r-- 1 wvxvw  38049 Jun  4 14:34 ISQ.Protocol.js
      -rw-r--r-- 1 wvxvw   1485 Jun  3 19:14 ISQ.Timer.js
      -rw-r--r-- 1 wvxvw  18686 Jun  3 19:11 ISQ.Tools.js
      -rw-r--r-- 1 wvxvw  75123 Jun  4 15:19 ISQ.Widget.AutoQuestion.js
      -rw-r--r-- 1 wvxvw  30114 Jun  4 17:10 ISQ.Widget.ContactForm.js
      -rw-r--r-- 1 wvxvw   4034 Jun  4 17:08 ISQ.Widget.Escalate.js
      -rw-r--r-- 1 wvxvw  97861 Jun  4 15:15 ISQ.Widget.Html.js
      -rw-r--r-- 1 wvxvw 116814 Jun  4 15:01 ISQ.Widget.js
      -rw-r--r-- 1 wvxvw  33655 Jun  4 16:58 ISQ.Widget.Query.js
      -rw-r--r-- 1 wvxvw   3134 Jun  4 17:04 ISQ.Widget.ThumbUp.js
      -rw-r--r-- 1 wvxvw   4630 Jun  4 17:01 ISQ.Widget.Translation.js
      -rw-r--r-- 1 wvxvw   1346 Jun  3 19:26 nanoRep.js
      -rw-r--r-- 1 wvxvw 219547 Jun  4 14:40 n.js
      -rw-r--r-- 1 wvxvw   5619 Jun  3 19:37 VisualEffects.js
      -rw-r--r-- 1 wvxvw   5120 Jun  3 19:34 VisualEffects.js~


      И это еще даже не весь проект.
      Ответить
  • а по-моему два брейка вполне нормально
    это как писать return в самом начале ф-ции после какой-то элементарной проверки и если делать больше ничего не надо
    с таким же успехом можно было бы убрать первый break и обернуть весь case в if. но зачем?
    Ответить
    • Кстати да. К сожалению многие считают правило типа один return на функцию религией. И устраивают крестовые походы на тех, кто так не делает.
      Но на самом деле, зачастую, в небольшой функции (а они ведь должны быть небольшими!) несколько return'ов, отбрасывающих кривые данные или return в цикле поиска очень наглядны и удобны, по сравнению с флагами, коими пытаются нас кормить адепты-одноретурнцы.

      Так что не вижу ничего плохого в двух бряках. Да собственно как и в варианте без двух бряков.
      Ответить
    • Тут проблема не в том, что их два (хотя меня и от этого коробит), а в том, что если условие будет наоборот, то и второй брейк не нужен будет. Т.е. зачем автор так сделал - мне не понятно.

      Т.е. конструкция практически идентична if (condition) else { code }
      Ответить
      • второй break нужен чтобы не провалиться в следующий case, очевидно же
        Ответить
          • прочитал. когда я отвечал, второго абзаца не было 🙂

            все равно не понимаю как можно без последнего break'а
            Ответить
            • Под вторым break'ом здесь, очевидно, понимается первый.
              Ответить
              • если так, то это дело вкуса и экономия табов на отступах внутри if 🙂
                Ответить
      • if(!ISQ.Cnf.limited) {
        	ISQ.Widget.Log.add("contactForm cancel");
        	if(a.query!=="") {
        	    ISQ.Widget.HTML.queryField.value=a.query
        	}
        	ISQ.Widget.ContactForm.canceled=true;
        	ISQ.Widget.ContactForm.close();
        }
        break;

        Ну, в принципе, может так оно и лучше. Хотя лично я не вижу плохого в обоих вариантах.
        Ответить
      • Имхо эта конструкция больше похожа на if (condition) return; code нежели на if (condition) {} else { code }. Но сколько людей - столько и мнений.
        Ответить

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

Семь раз отмерь — один отрежь, guest!

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


    8