Вопрос

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

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

Это некрасиво, потому что требует дополнительной работы, запоминания того, что было написано и где, и (вероятно, самое уродливое) дублирования кода в разных проектах.Работа с другими разработчиками без общей кодовой базы тоже является проблемой.

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

Итак, с чего же начать?Существуют ли книги или онлайновая документация, объясняющие, как создать такую кодовую базу, или описывающие существующую или воображаемую кодовую базу, как она работает, как ее поддерживают и т.д.?

Это было полезно?

Решение

Я думаю, вы имеете в виду библиотеки многократного использования.Это немного зависит от языка, потому что языки с компоновщиками и компиляторами удаляют код, который не используется для уменьшения размера результата, в то время как языки, скомпилированные или интерпретируемые точно в срок, этого не делают, поэтому ресурсы могут быть потрачены впустую при загрузке всей библиотеки.

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

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

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

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

http://en.wikipedia.org/wiki/Interface_%28computer_science%29#Software_interfaces_in_object_oriented_languages

http://en.wikipedia.org/wiki/Interface_%28computer_science%29#Programming_against_software_interfaces

Другие советы

Используйте службу управления версией, такими как Google Code или Github .Таким образом, ваш код поддерживается онлайн, и вы можете вернуться к более старым версиям, если вам нужно.

Во-первых, признать, что это значительное усилие, которое потребует участия других разработчиков и управления. Возможно, вам потребуется прекратить работу по новым функциям, пока вы реорганизуете вашу кодовую базу, что почти никогда не является вариантом управления. Даже упоминание им им может быть плохо. «Мы можем выделить это, пока после того, как повторный орг» следует затем «мы не можем сделать реверг, пока эта часть не будет сделана», и как большая задача, так и реверг ждут друг друга. Это функция управления - тупик, и это трудно исправить.

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

Продвижение вперед, вам нужно изолировать зависимости. Не позволяйте целям полагаться на проект. Не позволяйте проекту полагаться (Proja) в другом проекте (ProJB), если есть хороший шанс, что проект (Projb) в конечном итоге полагается на него (Proja) в будущем. Круговые зависимости делают для плач и скреженных зубов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top