Библиотеки кода


6 0

Когда я программировал в Delphi или на С++, то я ненавидел все эти библиотеки DLL, потому что чтобы выделить какой-то код в отдельный файл, получалось столько геммороя, что зад краснел от просиживания на стуле. Поэтому большинство своих программ я реализовывал в виде единого исполняемого файла.

В .NET подключение библиотек свелось к банальному указанию библиотеки в References и можно писать код одновременно и в библиотеке и в основном файле, где вы используете этот код. Никаких Export или Import функций больше не нужно объявлять и это счастье.

Теперь я бью свой код по библиотекам, как капусту. У меня практически каждый листик в отдельном файле. Нет, ну конечно же не так грубо, но если какой-то класс просто по смыслу может быть отдельным, я его без проблем помещу в отдельный файл.

Нафига бить файлы на библиотеки? Самое простое - скорость компиляции. Вы можете компилировать только ту логическию часть программы, которая вам нужна, а не один громадный исполняемый файл.

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


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

Юрий

06 Ноября 2010

Здравствуйте Михаил используете ли вы Microsoft Enterprise Library из Microsoft P&P ?


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

06 Ноября 2010

Нет


Кирилл Рева

09 Ноября 2010

Михаил, а как вы относитесь к технологии Java?


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

09 Ноября 2010

Никак. Я пытался что-то писать на Java, но не срослось. Почему-то не нравится она мне.


Безумный программист

09 Ноября 2010

>> Самое простое - скорость компиляции

Для этого есть объектные файлы. DLL нужны (были по идее) совсем для другого: http://ru.wikipedia.org/wiki/DLL

Как "Программист с большим стажем" (взято из About) может писать так глубоко заблуждаться?


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

09 Ноября 2010

Как "Программист с большим стажем" (взято из About) может писать так глубоко заблуждаться?


Легко.

1. У DLL много преимуществ и если ты посмотришь на Wiki страничку, которую ты привел, то там в оглавлении нет C# и .NET, а DLL файлы .NET отличаются от класики.

2. Не нужно быть гением, чтобы увидеть "скорость компиляции". У нас на работе проект с мегабайтами кода. Даже просто обнюхивать все файлы на предмет изменения и пересборку данных из объектных файлов непозволительно долго. Поэтому, если я изменил код в банковской DLL библиотеке, то я просто перекомпилирую ее, а не запускаю сборку всего проекта заново. Библиотека маленькая, и компилируется моментально.

Если же ты все хранишь в одном громадном исполняемом файле, то его компиляция будет дольше, даже если использовать объектные файлы и любые другие методы оптимизации сборки (взято из большого стажа, а не из википедии).


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

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

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

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

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

Пишите мне