Помимо того факта, что я создаю веб-приложение, используя множество технологий с открытым исходным кодом (которые, очевидно, не могут владеть), что на самом деле означает это утверждение?
В контракте должен быть пункт об использовании материалов с открытым исходным кодом или сторонних библиотек. Обычно что-то вроде того, что вы должны уведомить клиента о любых используемых вами материалах с открытым исходным кодом. Убедитесь, что вы не используете ничего с вирусной лицензией с открытым исходным кодом.
Если в контракте нет положений о материалах с открытым исходным кодом/сторонних библиотеках, клиент, вероятно, слишком неопытен, чтобы с ним стоило работать, но вам все равно следует найти время, чтобы объяснить, что вы никогда не сможете выполнить задачу, если вам придется изобретать колесо, молоток, нарезанный хлеб и электричество. (Однажды я беседовал с потенциальным клиентом, который хотел создать приложение для Android без использования каких-либо сторонних технологий. Мне пришлось объяснить ему, что создавать приложение без использования Android SDK или какого-либо стороннего приложения непрактично. рамки разработки.)
Если я напишу красивый, элегантный, собственный метод (скажем, before_filter), который решает конкретную проблему в этом проекте (с которой я никогда раньше не сталкивался, но хотел бы использовать в будущем), согласившись с этим пунктом, я сделаю это? означает, что я не могу использовать этот собственный метод или любые другие оригинальные работы, которые я создаю для этого проекта?
Конечно. Если это вас беспокоит, у вас будет очень трудные времена на фрилансе. Я всегда использую некоторые вспомогательные функции и служебные классы, которые я переписывал с нуля десятки раз для разных клиентов.
Я не юрист, но думаю, что общее эмпирическое правило заключается в том, что вы можете защитить авторские права на конкретный фрагмент написанного кода, но не можете защитить авторские права на алгоритм. Допустим, вы придумали новый алгоритм сортировки во время работы над проектом, и сам конкретный алгоритм сортировки не является важной внутренней частью приложения (т. е. вы можете разумно заменить его другим алгоритмом сортировки). . Тогда вам, вероятно, будет ясно воссоздать этот алгоритм. по памяти о будущем проекте. Однако, если вас наняли специально для написания этого алгоритма или алгоритм узкоспециализирован и не может быть разумно заменен другим алгоритмом, вам, вероятно, не следует пытаться воспроизвести его позже. Кроме того, не запоминайте код алгоритма настолько хорошо, чтобы его можно было полностью переписать построчно из памяти; в этот момент вы копируете, а не воссоздаете.
Это похоже на ловушку повсюду. Как мне не попасть в наручники и не лишиться возможности постоянно совершенствовать свое мастерство, используя работу, которую я проделал в других проектах, и улучшая ее?
Это не ловушка, это вполне стандартно. Почему люди хотят платить вам за написание кода, который вы можете сохранить и использовать позже без их разрешения? Вероятно, вы найдете клиентов, которых это устраивает, но не планируйте этого.