Всем привет, я тут решил попробовать свои силы на фрилансе (фронтенд) и возник вопрос по поводу минификации скриптов, а нужно ли? Я до этого работал в компании и там это не делалось, более того, любой желающий мог залезть и почитать комментарии к коду. Я бы сильно не переживал по этому вопросу, но не зря же в интернете так много статей и упоминаний о минификации кода. Кто-то говорит, что нужно делать минификацию, т.к. возможны случаи наглого воровства и присвоение интеллектуального труда под чужим именем.
Просто может есть вариант использовать турбо-минификацию на скриптах при показе демо на своем хосте, а когда заказчик доволен, то выгружаешь ему исходники на продакшен?
Буду рад услышать дельный ответ.
Нужно, но не с целью "уберечься от воровства", не минифицированные исходники конечному клиенту тоже нужно предоставить так как они его собственность.
А вот с целью клиентской оптимизации - да, нужно. И поэтому во время демо тоже это нужно, что бы можно было прогнать google pagespeed например и радоваться хорошим показателям. У многих клиентов это выступает в качестве нефункционального требования - быстрая загрузка/отрисовка.
Neoline: вот с таким подходом фрилансеров нормальных долго икать приходится. Вам не за код платят, а за решение поставленной задачи. Если оно удовлетворяет требованиям - отдаем исходники и все хорошо. А если вы пытались "наколоть" заказчика - ну так это лично ваша проблема.
АртурNeolineOnYourLipsСергей Протько: Ребят, оговаривается всё заранее, затем - юр. защита Ваших АВТОРСКИХ прав на код (хотя это делается автоматом по закону) и их передача Заказчику согласно договорённостям с ним.
Neoline: програмное обеспечение - это не произведение искусства. Работа оплачена, отдаем исходники. Причем на более-менее серьезных проектах за раскрытие исходников или вообще любых деталей о реализации проекта, вам налагается нехилый такой штраф (NDA называется, и на западе его придется подписать при работе с любым серьезным продуктом).
Аналогию с exe файлами не понял. Если вы заказчик и заказали exe-ник, вам должны предоставить и исходники из которых можно потом это добро собрать.
А вот забыл добавить к вопросу. Что если я имею не просто тупо исходники, т.е. обычный файл, а целая система компиляторов на gulp'e со всевозможными соединения, преобразованиями. При передаче исходников ограничится пакетом файлов .scss .jade, .js или еще передавать gulpfile.js/gruntfile.js?
Neoline: я лучше буду поручать работу разработчикам, которые ценят клиента, а не свой код. Да и "произведения искусства" - это весьма субъективная штука. Вы же видели эти шедевры "соверменного искусства"? Большинство скажет что это просто булшит, но есть "ценители".
Программирование - это не искусство. Это просто работа. Причем скучная. Код должен быть скучным. Не вызывать вопросов (покрайнемере слишком часто) со стороны других разработчиков. И вот тогда - это идеальный код. Он работает, он скучный, и с ним может быстро разобраться любой разработчик.
p.s. Вы тесты пишите?
Fetur: Передавайте все содержимое вашего git репозитория. Я банально делаю git export. Так же у меня для каждого проекта есть README, в котором прописана детальная инструкция для разработчиков о том, как поднять проект. И делаю я это не только потому, что со мной работают другие люди, и частенько проект передается между разработчиками. Но и в принципе что бы была возможность "сбросить" надоевший проект без вреда для оного.
я могу вам с уверенностью сказать, что ваш исходный клиентский код никому кроме вас и заказчика не нужен. Обфускация не нужна. Нужны две версии - исходники с комментами и минифицированная версия для продакшена (кстати современные сборщики уже умеют даже DCE (dead code elimination))
Ну и если у вас что-то заказывают, нужно и исходники передавать, а не только результат
Neoline: В реальных проектах система сборки настолько сложна (less, sass, post-script -> autoprefixer -> css, а быть может и css-modules, функции из npm пакетов, внешние зависимости, переменные окружения вшиваются в код, удаляется development-код, какой-нибудь webpack юзается или вроде того), что выходные файлы это просто никому ненужная каша - копаться в ней обычно значительно сложнее, чем написать заново
Свой JS код нужно защищать юридически. Если Заказчик заказал функционал, реализуемый данным кодом, Вы должны предоставить ему СОВМЕСТНО ОГОВОРЕННЫЕ ПРАВА на использование этого кода.