Посты
Неведение — это блаженство при использовании фреймворков
31 августа 2015 г. • 2 мин чтения

В разработке программного обеспечения преобладает идея о том, что инженер должен использовать фреймворк только тогда, когда он понимает его внутреннее устройство. Это заблуждение.
Почему мы должны знать внутреннее устройство — действительно ли детали настолько важны? Некоторые могут сказать, что неведение — это блаженство.
Автомобильный двигатель
Давайте рассмотрим двигатель автомобиля:
Сколько людей действительно знают, как работает двигатель?
Можете ли вы сказать мне, почему он называется 4-тактным двигателем?
Что делает каждый такт?
В чем разница между 4-тактным и 2-тактным двигателем?
Кто-нибудь?
И тем не менее мы все еще водим наши автомобили, не задумываясь о том, «как» автомобиль доставляет нас к месту назначения.
Мы взаимодействуем с автомобилем, используя руль, рычаг переключения передач, педаль газа и тормоза.
Кого волнует, как это работает, пока это доставляет нас к месту назначения. Когда автомобиль ломается, мы отвозим его к эксперту.
Ключевая компетенция бизнеса
В бизнесе у компании есть специализированные знания, которые позволяют ей быть конкурентоспособной. Это называется ключевой компетенцией компании.
Ключевая компетенция может быть процессом или продуктом.
Чтобы оставаться конкурентоспособной, компания должна неустанно совершенствовать свою ключевую компетенцию. Использование ресурсов для деятельности, не поддерживающей ключевую компетенцию компании, ослабляет конкурентное преимущество компании. Это открывает окно возможностей для конкурентов, чтобы превзойти конкурентное преимущество компании.
Эта идея лучше всего иллюстрируется примером.
Apple
Apple известна своей простотой и красивыми продуктами. Можно подумать, что это легко воспроизвести, но это не так, просто спросите Samsung, HTC и Microsoft.
Почему эти компании потерпели неудачу? Потому что простота — это сложно, а Apple — эксперт в простоте.
Ключевая компетенция человека
Ключевая компетенция может применяться и к людям.
Что отличает вас от других?
Чтобы развить свою ключевую компетенцию, вам пришлось строго сосредоточиться в одной области, иногда годами, получая понимание и знания, которые отличают вас от других.
Как и в бизнесе, чтобы сохранить свое конкурентное преимущество, вы должны постоянно оттачивать свою ключевую компетенцию.
Использование небольших частей
Инженер-программист ничем не отличается от компании или любого другого профессионала. Мы должны выбирать, что изучать, чтобы оставаться в соответствии с нашей ключевой компетенцией.
Понимание внутреннего устройства каждого фреймворка, который мы используем, неппрактично и отнимает много времени. Я ожидаю, что автор фреймворка будет экспертом в области фреймворка, поэтому мне не нужно знать его внутреннее устройство.
Разве не в этом суть программного обеспечения — использовать черные ящики функциональности для создания более крупной и сложной работы? Я считаю, что да.
В конце концов, все сводится к фокусу и времени, и то, и другое ограничено.
Автор: Чак Конвей специализируется на разработке программного обеспечения и генеративном ИИ. Свяжитесь с ним в социальных сетях: X (@chuckconway) или посетите его на YouTube.