- 1
- 2
Result := not FExecuting;
if not Result then Exit;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+92
Result := not FExecuting;
if not Result then Exit;
сейчас работаю над правкой компонента доставшегося от другого разработчика :), причем эта вершина мысли была обнаружена в недрах левого компонента, используемого моим компонентом :) ,который использовал этот разработчик :), Сам код соправождаемого мною компонента не далеко по стилю ушел от этого куска
грамматикфюрер не прощает :р
Result := not FExecuting;
if FExecuting then Exit;
несколько нагляднее?
но конкретно это на говнокод не тянет.
А если Exit переопределена и в ней туча побочных эффектов?
А вот fexecuting - может быть и переопределена.
Например, if OpenDialog1.Execute - с побочным эффектом, хотя по её виду не скажешь. Было бы Execute() - было бы понятно, но нет же, почему-то решили освободить паскалистов от написания двух скобочек, спасибо Вирту, блять, за это, а ещё спасибо ботланду за проперту, с которыми, блять ваще хуй поймёшь, что где, потому что она косит под переменную, а на самом деле это сраный вызов метода. Я вообще проперти в своих классах не использовал никогда (кроме когда совсем зелёный был) именно из-за этой путаницы, я лучше буду писать SelColor($123456) и сразу видеть, что это хитрожопый метод, но нет же, Color := $123456 - это же так модно смотрится, так сишарпненько, пидарасы, блять.
Проперти позволяют с одной стороны сохранять инкапсуляцию а с другой делать код более естественным.
хотя, конечно, так вроде приоритеты другие и ничего не заработает
Приставка F кагбэ намекает на просто field. Но да, лучше перепроверить :)
1) префикс F - по стандарту это поле
2) сам пишу всегда с пустыми скобочками, чтобы другим было видно, что это функция
if not not FExecute then Exit; что равносильно:
if FExecute then Exit;
вот это и есть говнокод. тупое непонятное решение которое просто и изящно можно записать 1 строчкой. Уж недумал что все настолько слепые. а вы начинаете тут полемику разводить функция/не функция
Вообще это я типа пошутил, потому что закладываться на особенности внутренней реализации - это говнокодно.
Ну может компилятор в еах поле суёт перед сравнением, хотя тут не знаю.
это ж не брутальный asm ret end
Я только что узнал, что функция может вызываться и без скобочек...