3 условия существования Reusable Code

Написано 18 Январь, 2014 в категории Разработка ПО

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

Условия:
1. Об этом коде должны знать! Очень простая истина, которую игнорирует наше сознание. Нам кажется, что достаточно написать, красивую, гибкую библиотеку и её тут же начнут использовать. Мы представляем как некий абстрактный разработчик перед тем как выбрать библиотеку рассматривает и пробует все возможные варианты и только после этого делает свой выбор. И вы, конечно же, уверены что выбор, несомненно, падет на ваше творение! Особенно странно то, что вы сами никогда так не делаете...
Обычно процесс прост - разработчик использует то, что знает, ибо есть сроки разработки, ограничение на используемые технологии и тд. Если же разработчик пока не имеет альтернатив, то он берет несколько (2-3) наиболее известных библиотек и выбирает из них (иногда методом тыка). Но есть и 3 вариант, который встречается очень часто - пишется свой "велосипед". "Велосипеды" пишутся по ряду причин, одна из которых - просто мы не знаем где найти готовое решение и есть ли оно вообще (хотя, как правило решение в 99% уже есть).

2. Этим кодом должны уметь пользоваться. К сожалению, мало знать о существовании кода, необходимо уметь им пользоваться. Но при этом никто не будет разбираться в тоннах вашего кода, даже если он хорошо комментирован! Большинство разработчиков - не обладают способностью мгновенно вникать в то, как работает чужой код. Необходимо обучение! Хорошая документация, полезные примеры, решение проблем на форумах и чатах, а также очное разъяснение. Не всем подходят эти методы, но знать и применять их необходимо, если вы хотите чтобы ваш код использовали другие разработчики.

3. Разработчики должны считать, что лучше использовать готовое решение, чем писать свое. Скорее всего, это самое трудно преодолимое условие. Разработчики, особенно молодые, очень самолюбивы и оптимистичны в оценке своих возможностей (вспомните как часто вы укладывались в сроки) и даже если есть готовое решение, то написать самому - это некий вызов своим способностям, который разработчики с удовольствием принимают. Вся программерская субкультура основана на интеллектуальном соперничестве! Поэтому, только действительно зрелые разработчики, которые "уже всем все доказали", считают "не стыдным" для себя использовать чужие решения. Необходимо проводить маркетинг своего кода, в хорошем смысле этого слова. Разработчики должны понимать, что грамотное использование чужих решений поднимает их профессиональный статус, позволяет делать более качественные приложения и при этом экономит время.

Старайтесь рассказывать коллегам о своих задачах (daily scrum meeting), старайтесь писать developer friendly документацию и просите коллег инспектировать ваш код (code review), изучайте чужие решения. Ну и для самых экстремальных разработчиков - практикуйте иногда парное программирование.