Последние комментарии

Для меня эта страница - это удобный способ смотреть, что нового происходит в комментариях и сразу находить заметку, не заходя в админку. Думаю, она будет полезна и тебе.


Предоставить условия это мала сказано. Не 1-н программист не раскажет и не скажет что он может. Темболее в Русской армии.  


яя

нужна ваша помощь


Михаил Фленов

Копипаст - это клонирование кода. Если ты сделаешь 10 копий и вдруг что-то меняется, то нужно будет менять в 10 местах. Проще написать одну функцию и использовать ее в 10 местах и в случае смены логики достаточно будет изменения только в одном месте.

Когда я говорю о универсальности, то тут нужно просто провести для себя грань разумности. Если где-то код не отличается вообще (чистый копипастинг) или отличается совсем чуть чуть, то имеет смысл оформить функцию, метод или даже класс. По моему опыту это 9 из 10 случаев копипастинга. Если же логика у двух кусков кода слишком разная и универсальная функция будет слишком сложная, то это же уже не копипастинг.

Пример, у меня на работе приложение сидит на серверах за сетевым экраном, балансером нагрузки и проксиком. Чтобы получить IP адрес нужно лезть в одно поле запроса. На рабочих же машинах IP будет в другом поле. В приложении в нескольких раз склонировали код типа:

if (Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null)
используем Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
else
используем Request.ServerVariables["REMOTE_ADDR"];

И вот подобных клонов несколько. А ведь так просто написать функцию GetIPAddress() и использовать ее везде, где нужен IP адрес. Проще сопровождать и меньше шансов допустить ошибку новым программерам, которые не знают о такой специфике наших рабочих серверов, если где-то в недрах MS или проксика произошли изменения и поле REMOTE_ADDR поменялось на VERYREMOTE_ADDR, код обновляется магическим образом за секунды.


Overdrive

А чем так плох копипаст? Аргументируйте.
Да и универсальную функцию делать сложнее и дольше. И она нуждается в лучшей отладке.


Knops

Закон кучности редких событий в действии (распределение Пуассона) :) Или беда не приходит одна.


Kastor

Новая клава покруче будет!


Михаил Фленов

Ну я не знаю, на сколько системщик хороший. Знаю, что он спросил нужна ли мне информация или нет. Мне больше нужен был мой новый компьютер и Windows 7, потому что сейчас я пишу под MVC, который не поддерживается в XP. Возможно, что если бы я сказал, что информацию нужно спасти, он бы мучался с ней.


Юрась

плохой системщик. Если только вы не роняли веник с крыши офиса, то почти всю инфу можно спасти.


Дмитрий

Я вот больше всего не понимаю, как XxX может ручатся за специалистов сразу трех стран


мари

Уважаю анонимус


О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне