Если поймаю тебя еще раз - будешь висеть с петлей на шее ТГр *" г • 1 тгш 1 \ 1 л 1«а • ■ 1 | / commitstrip :: программисты :: Смешные комиксы (веб-комиксы с юмором и их переводы)

commitstrip Комиксы программисты 
Если поймаю тебя еще раз - будешь висеть с петлей на шее
ТГр	*" г	
	• 1	
тгш 1 \ 1 л 1«а • ■ 1 |'*«?) • -Ж		
		
		
1 II 1 с~	-Л—1 1 1 1	п
		1/ *
	У А/ I /—* -i 1	
II IlLU-iJ * fjfM. 11..**-*’ -	И® 1 л	
		
ComxnitStrip.com,commitstrip,Смешные комиксы,веб-комиксы с юмором и их
Подробнее
Если поймаю тебя еще раз - будешь висеть с петлей на шее ТГр *" г • 1 тгш 1 \ 1 л 1«а • ■ 1 |'*«?) • -Ж 1 II 1 с~ -Л—1 1 1 1 п 1/ * У А/ I /—* -i 1 II IlLU-iJ * fjfM. 11..**-*’ - И® 1 л ComxnitStrip.com
commitstrip,Смешные комиксы,веб-комиксы с юмором и их переводы,программисты
Еще на тему
Развернуть
Дублирование кода — термин из программирования, под которым понимается, что некоторые участки исходного кода могут встречаться более чем однажды, как внутри одной, так и в нескольких программных сущностях. Дублирование является симптомом так называемого «дурно пахнущего кода».
akatan akatan 11.03.201619:08 ответить ссылка 7.7
Знаю эту штуку, это когда вместо того чтобы писать
if (SomeRepetableConditionNeedsSpecialActions)
{
SpecialConditionAction();
}

пишут
if (SomeRepetableConditionNeedsSpecialActions)
{
Action1();
Action2();
Action3();
}
И повторяют тот же самый код, когда условие срабатывают где то еще.
Если баг засел в Action2() (например) то в первом случае он автоматический исправится во всех этих местах, а во втором нужно ходить и править во всех местах, если еще конечно о них вспомнишь.
Короче ошибка при конструировании программы.

Но дублированием так же иногда называют обычным копипастом кода.
а если в половине случаев нужно поставить костыль на велосипедной тяге, то копирование кода допускается?
GAYAR GAYAR 11.03.201619:32 ответить ссылка -0.1
В 70% случаев костыли можно обойти.
Но копировать код вообще никогда не надо, есть же инлайновые функции, их придумали специально для решения этой проблемы.
Которые дают утечку на старом Mono. Привет от Unity.
Инлайн для большинства компиляторов и платформ - всего лишь рекомендация, подсказка компилятору, а не жёсткое указание.
Компиляторы нынче больно умными себя считают...
Есть, конечно, модификаторы для некоторых очень частных случаев - форсинлайн тот же.

Собственно, я к чему.
Иногда дублирование кода - нужно. Когда ты понимаешь, как и что делаешь, и точно знаешь, что нужно именно так, а не иначе. Я на asm использовал дублирование не так уж редко (макросами), ибо там уж, извините я точно знаю, когда мне и что нужно до каждой команды.
Язык ассемблера - отдельный случай, как и низкоуровневое программирование вцелом. Ты ограничен памятью, мощностью. Оптимизируешь по самые яйца, где это нужно.
Сейчас же, в большей части как прикладного так и веб программирования важной составляющей является читаемый, легко поддерживаемый код.
Любопытства ради, приведи пример, где надо дублировать код при написании под окна, скажем.
akatan akatan 12.03.201611:41 ответить ссылка 0.0
Из недавнего... Свёрточная сеть под многопоток (нейрохерня). Вызов в параллельных потоках одной и той же точки из разных блоков тормозит процесс (гонки и требования синхронизации обращений к коду), а инлайн, как я писал выше, это ещё не гарантия того, что тупой компилятор точно вам сделает инлайн ф-ю, а не проигнорирует, и сделает по своему.
Дело в том, что инлайн при определённых условиях окружения будет медленнее вызова. И компилятор себе на уме.
Например... когда будет идти обращение к странице памяти вне подгруженной. Компилятор думает, зачем вам раздувать код? По компиляции вы вываливаетесь за текущую страницу. Давай я этому дурню за клавой сделаю без инлайн, он потом мне спасибо скажет. И он игнорирует ваш инлайн. Для однопоточного выполнения он вроде как прав. Но откуда компилятору на этапе компиляции знать, сколько у меня будет ОЗУ, на какой архитектуре запущено (компилируется ведь под семейство) как оно будет сегментировано по страницам, что уже загружено, а что нет, и прочая? Те же общие STL контейнеры в таких случаях начинают тормозить, блокировать взаимно, не давая развернуться по-полной. Мне приходилось специально делать asm-вставки в высокоуровневый код, чтобы вправить мозги, и добиться явного отсутствия синхронизации между потоками.
Но это всё конечно исключения.
В 99,9% случаев конечно в высокоуровневом программировании об этом думать не надо.
И писать именно понятный и компактный код.
больной ублюдок, открывающую скобку на новой строке!
Зависит от конкретных CodeStyle в конкретных проектах или компаниях.
Люди делятся на два типа
function ef (e:Event){
function ef (e:Event)
{
Wave Wave 12.03.201610:29 ответить ссылка 0.6
Все "правила хорошего кода" написаны кровью, вытекшей из глаз программистов, читавших чужой код
Не бывает ничего абсолютного. Та же открывающая скобка — довод за первый вариант — экономится строчка (а по вертикали их и так ограниченное число, и зрение устроено так, что человеку легче видеть панораму, чем бегать взглядом вверх-вниз). Зато во втором варианте очень легко видеть вложенности, видеть одним взглядом, где какая скобка открывалась и эта же скобка закрывалась. Без необходимости подводить курсор и искать, какую скобку подсветит в ответ.

Кроме того, в любой нормальной IDE есть функции форматирования кода, которые одним вызовом из меню (или по хоткею) преобразуют к тому виду, в котором ты хочешь это читать. Так что спор про CodeStyle — один из самых бессмысленных в программировании.
Wave Wave 12.03.201610:53 ответить ссылка 0.2
..."дурно пахнущего кода"? Чувак, ты наверное негров афроамериканцами называешь? :)
Говнокод он и есть говнокод. Не стоит тратить на него красноречие.
Это просто копипаста из вики :)
akatan akatan 11.03.201621:27 ответить ссылка 0.6
Какая разница, если в случае исправления, расширения или чего-то еще придется менять код во всех местах куда вы его нашпиговали.
при использовании общего метода следующие плюсьі:
# при изменении только внутреней логики, меняем только метод
# при изменении требуемьіх параметров от вьізівающей стороньі, хоть нам и придется править тауже каждое место вьізова, зато гарантировано не забудем поправить везде т.к. в большинстве случаев приложение даже не сбилдится.
Wolfdp Wolfdp 11.03.201621:46 ответить ссылка 0.0
Если поймаю тебя еще раз - будешь висеть с петлей на шее
						
				1		
CovYiimitStrip.com
Art.Gav Art.Gav 11.03.201619:18 ответить ссылка 10.1
Это как с воровством, за 1 баян вешают, а за 100 - дарят звезды.
Alex23 Alex23 11.03.201620:19 ответить ссылка 5.3
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты