Apr. 20th, 2004

metaclass: (Default)
Есть такая хорошая книжка - "Человеческий фактор в программировании"(автор - Ларри Константин). Имхо, эту книгу надо включить во все виды программ обучения всех, кто имеет отношение к разработке ПО. В этой книге автор костит вдоль и поперек всех виноватых в том, что все современное ПО - зло :) И заодно объясняет, как делать его так, чтобы оно злом не было.

Так вот, есть там одно спорное утверждение. То есть, оно не то чтобы спорное, оно правильное, с ним, я думаю, согласится большинство программистов, которым приходилось делать что-нибудь сложное. И касается оно повторного использования готового кода. В широком смысле - не только свой код обобщать и повсюду использовать заново, но и код соседа по работе и код библиотек и компонентов, который можно скачать/купить/заказать написать сторонней организации, а в самом широком смысле - вообще стараться не писать то, что уже где-то и когда-то было написано. Так вот тут-то собака и порылась. Я все понимаю - всем нам лень работать, мы хотим использовать готовые программы, библиотеки, наработки, итд. Но почему-то часто получается совершенно иначе.
Чтобы написать свой модуль, причем вполне универсальный, пригодный к повторному использованию, робастный, итд - достаточно посидеть пару-тройку дней/недель, подумать, написать, отладить и использовать. А теперь внимание - парадокс. Мы хотим взять то же самое, но готовое и использовать в своем проекте. И начинается:
Вариант 1 - всем хорош, но стоит каких-то заоблачных денег.
Вариант 2 - бесплатный(или дешевый), но для его использования нужно сначала прочитать 1000-страничный мануал, понять вообще с какой стороны к нему подойти, итд.
Вариант 3 - вроде и бесплатный и с понятным кратким мануалом, но использует такую загадочную комбинацию системных вызовов , что работает только в 50% случаев.
Вариант 4 - требует для устойчивой работы наличия обученного человека, ответственного за обслуживание программы,
...и так далее. В большинстве случаев варианты еще и комбинируются друг с другом.

В итоге получается следующее - использование сторонних модулей(библиотек, программ, итд) хорошо в крупных проектах, где можно выделить отдельного человека на работу с этими сторонними модулями. Чтобы ему платили деньги за чтение 1000-страничных мануалов, за разборки между системой и используемым кодом, накладывание патчей на него, итд.
А когда программу пишут один-два-три человека - множество вещей проще будет написать для себя и использовать. Использовать повторно, конечно, в каждом проекте. :)

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 10th, 2025 06:02 pm
Powered by Dreamwidth Studios