Возможность повторного использования, тестируемость, снижение сложности кода и важность умения демонстрировать способности - PullRequest
1 голос
/ 05 июня 2010

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

Как вы оцениваете эти соображения? Что вас больше всего привлекает, когда вы решаете применить шаблон?

Интересно, сколько раз повторное использование кода (особенно для MVP, шаблонов MVC) было важно? Например, библиотека DAL часто разделяется между проектами (ее можно использовать повторно), но как часто контроллеры / представления (абстрагируемые через интерфейсы) используются повторно?

Ответы [ 4 ]

3 голосов
/ 05 июня 2010

Я думаю, что вы пропустили самый важный из вашего списка - более поддерживаемый.Код, который хорошо и последовательно структурирован (как вы получаете с легко повторно используемым кодом), гораздо легче поддерживать.

А что касается повторного использования, то да, в ряде случаев, обычно что-то вроде: создание веб-страницысохранить / обновить некоторую запись.Несколько месяцев спустя - нам нужно представить это как услугу для использования третьей стороной - если ваш код хорошо структурирован, это должно быть легко и с низким уровнем риска, поскольку вы только добавляете новый интерфейс.

1 голос
/ 02 сентября 2010

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

1 голос
/ 05 июня 2010

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

0 голосов
/ 05 июня 2010

Снижение сложности кода занимает высокое место, если я буду все упростить, я смогу поддерживать проект лучше и работать над ним быстрее, чтобы добавлять / изменять функции.

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

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

Что касается возможности похвастаться ... ну ... клиенту интересно, насколько хорошо приложение работает с точки зрения того, что он хочет от него, а не с точки зрения того, как"крутой" мой коднуфф сказал

...