А есть ли повторное использование кода?
От: Кодёнок  
Дата: 27.07.05 13:55
Оценка: 16 (4) +2
Чисто из практики, не могу припомнить случая, когда я просто включил чужой код в свою программу (размером больше 500 строк) и начал его использовать.

Иногда это возможно. Но при этом в этом коде оказывается столько лишнего, что хочется его удалить (и когда есть время, я удаляю). Иногда без правки кода не обойтись. В общем случае получается, что при повторном использовании кода его требуется хоть как-то править — пусть даже чуть-чуть.

Примеры:

1. Подключаю хорошую коммерческую библиотеку, в которой свой строковый класс. Теперь у меня неудобство — надо везде конвертировать эти объекты в мои CString или std::string.

2. Подключаю код, который требует RTTI. Причем без него вполне можно было обойтись, поступившить "идеологической правильностью" кода, и добавив поле-тэг.

3. Очень часто этот чужой код стремится быть как можно более независимым, т.е. не использовать вспомогательные функции OLE, Shell, CRT. Из-за этого содержит кучу функций, которые у меня в проекте тоже есть в другом виде. Вообще комично выглядит код, который изо всех сил пыжится не требовать IE выше 4.0, тогда как для всего проекта минимум — IE 5.5 И рисует сам эти несчастные тулбары.

Раньше я писал немного на Delphi и вкусил "повторное использование" и достоинства компонентности по полной. Когда один нужный компонент есть в Jedi, второй в ElPack, третий и четвертый сами по себе и так далее. С одной стороны, нет проблем все их подключить и использовать, с другой — на 30% эти библиотеки компонент дублируют друг друга и мой код, еще на 60% там что-то ненужное (ну вроде — модифицированные стандартные контролы с какими-то неважными дополнительными фичами), и 10% — то, реально используется.

Результат такого повторного использования напоминает наваленные в кучу кое-как скрученные изолентой блоки радиоаппаратуры, кое-где сопряженные с помощью дополнительных резисторов и конденсаторов. Вместо одной маленькой, простой, понятной платы. И если проект будет жить дальше, то чтобы не превратиться в мусорку, в нём надо навести порядок — путём правки и резки этого самого повторно использованного кода.

Что получается, повторное использование больших кусков кода (компонент) — временная мера? Как-то раз в детстве я собрал "магнитофон", из плеера (имеющего регулятор громкости), универсального блока питания на 1.5-3-5-9 В, простого стереоусилителя со своим боком питания и тоже регулятором громкости, и колонок от магнитофона Томь (которые тоже внутри содержат усилители). Оно работало отлично, но это было _временной_ конструкцией. И всё это можно было уместить на плате размером чуть больше платы плейера, если разрабатывать эту систему в целом, а не из компонент.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.