Статическая библиотека должна быть связана в заключительный исполняемый файл; это становится частью исполняемого файла и следует за ним везде, куда это идет. Динамическая библиотека загружается каждый раз, когда исполняемый файл выполняется и остается отдельным от исполняемого файла как файл DLL.
Вы использовали бы DLL, когда Вы хотите быть в состоянии изменить функциональность, обеспеченную библиотекой, не имея необходимость повторно связываться, исполняемый файл (просто заменяют файл DLL, не имея необходимость заменять исполняемый файл).
Вы пользовались бы статической библиотекой каждый раз, когда у Вас нет причины пользоваться динамической библиотекой.
Лучший способ узнать, как должен выглядеть код, - это прочитать хороший код. Постарайтесь подать пример своим собственным стилем программирования и аккуратно указать на их ошибки во время проверки кода. По сути, это просто вопрос перспективы; Как говорится, если у вас есть единственный инструмент, это молоток, каждая проблема будет похожа на гвоздь. Эти программисты рассматривают все с точки зрения языков, на которых они имеют опыт, и поэтому даже при написании Java их мыслительный процесс осуществляется на COBOL. Их стиль кодирования - это просто отражение их мыслительного процесса.
Если не считать этого, пусть все прочитают Code Complete.
Купите им копию «Code Complete» и попросите их написать отчет о книге.
Используйте один контрпример за раз со словами, объясняющими , почему ваш путь лучше, менее болезненен, помогает им вовремя вернуться домой к своим семьям и т. Д. Однако важно идти по одному, если вы действительно пытаетесь вырастить культуру органически. Некоторые примеры:
Кстати, мне никогда не удавалось назначать чтения инженерам (хотя Кэти упоминает рефакторинг, который является отличным источником именно для такого рода вещей). Для меня работает меня , чтобы читать книги, использовать предложенные техники, демонстрировать успех и то, как это облегчает мою жизнь, и затем , когда разочарование от того, «как это? что ты умеешь все это исправить ?!
Попросите их написать Java; и иметь строгие стандарты проверки кода. Если их многостраничный метод не проходит проверку кода, потому что это плохой код, объясните им, почему это плохой код. В какой-то момент они могут рассердиться; Я не думаю, что действительно возможно без некоторого раздражения изменить привычки, которые были «заложены» в течение длительного периода времени. Но пока рецензенты остаются разумными и последовательными, они со временем начнут понимать суть. Опыт действительно - единственное решение для такого рода вещей, и это действительно единственный способ получить опыт и направить его (в отличие от обучения на своих ошибках).
Мое осознание того, что между мной и программистами на COBOL, возможно, никогда не будет, пришло много лет назад, когда я преподавал коммерческие учебные курсы по C и C ++. Я только что закончил раздел курса о malloc () и free (), к общему удовлетворению большинства игроков, когда один парень из курса COBOL подошел и спросил:
«Но что это? память? И зачем мне ее использовать? »
Чтобы быть немного более конструктивным, мой опыт показывает, что программисты COBOL были обучены думать о двух вещах:
На самом деле это не так уж далеко от объектно-ориентированного подхода, и я думаю, что основная идея, которую вам нужно донести, заключается в том, что будут существовать несколько разных типов записей,
Помимо Code Complete (возможно, после этого), предложите им прочитать Рефакторинг: улучшение дизайна существующего кода (по крайней мере, введение). В нем обсуждаются как запахи стандартного кода, так и способы их устранения.
Звучит, однако, что им нужен обзор того, как мыслить объектно-ориентированным образом. Я не уверен, какая книга для этого лучше всего.
Сможете ли вы как-нибудь заставить их работать над хорошим кодом? Делаете небольшие изменения?