В Haskell и F # меня научила одна вещь: кто-то в университете умнее меня, вероятно, уже нашел абстракцию для того, что я делаю. Аналогично в C # и объектно-ориентированном программировании, вероятно, есть библиотека для «этого», что бы я ни делал.
Особое внимание уделяется повторному использованию абстракций в программировании, и я часто испытываю дилемму между: 1) простым написанием чего-то короткого и грязного или 2) тратя то же самое время на поиск более надежной библиотеки / решения другого пользователя и просто используя его.
Как недавно один из программистов здесь написал (de) сериализатор для файлов CSV, и я не мог не подумать, что что-то подобное, вероятно, очень легко найти в Интернете, если оно еще не поставляется со стандартом .NET API.
Я не виню его, хотя, работая несколько раз в .NET, я собрал воедино решение, основанное на том, что я знаю, только для того, чтобы понять, что был какой-то вызов метода или объект или что-то , часто в одной и той же библиотеке, которая сделала то, что Я хотел, и я просто не знал об этом.
Это просто признак неопытности, или всегда есть элемент компромисса между написанием нового и повторным использованием старого? Больше всего я ненавижу, когда сталкиваюсь с решением, о котором я уже знал и забыл. Я чувствую, что один человек просто не способен переварить огромное количество кода, который поставляется в комплекте с большинством языков в наши дни.