Check Levi9 best QA positions to Backbase team!
×Закрыть

Використання коду, написаного власноруч на попередніх проектах

В процесі роботи вирішуються багато типових завдань. Але так як програміст вирішує їх за гроші замовника, він не володіє кодом що пише. Власником виступає компанія, на яку програміст працює. І зрозуміло що ніхто не буде у вільний час писати специфічні ліби під конкретний бізнес, щоб потім зекономити час=гроші якомусь дяді.

Виникає питання — «А чи можу я, взяти, не зв’язаний бізнес логікою з конкретним клієнтом код, і застосувати його в продукті для нового клієнта?». Якщо так, то де межа, коли ти вже копіюєш бізнес логіку. Скоріше відповідь ні. Тоді постає питання, а що робити? В 100-тий раз писати один і той же код? Виглядає контрпродуктивно. Але все ще краще, ніж попастися патентним тролям, вірно?

А вас не їсть совість, що ви змушені працювати неефективно певну частину часу, особливо на старті проекту? Чи ви не переймаєтесь і протягом кар’єри таки копіпастите собі код, який потім допилюєте за гроші клієнтів і в результаті маєте власну базу міні ліб?

👍НравитсяПонравилось0
В избранноеВ избранном0
LinkedIn

Похожие топики

Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

використання коду, скопiпасченого власноруч зi stackoverflow для попередніх проектiв.
чи можна його скопiпастити ще раз?

все залежить що ти напідписував і що за код,
якщо це не високочастотний трейдинг і ти нічого не підписував мож копіпастити свої ліби скільки хочеш ;)
ніхто то на рівні сорців не інфорсає
принаймі прицідентів в історії не бачив

Если владелец кода нехочет им делится(опенсорс например), то если поймают прийдется поделится заработанными долларами.

угу попробуй опен сорс в коммерческий код вписать без согласования с отделом согласования и узнаешь много интересного ))

youtu.be/Of7Xh0IYytc

Запросто. Еще не видел ни одной конторы, где бы это не рекомендовалось начальством — драть всё из опенсурса и юзать в проприетарном. Это какие-то уж про какие-то совсем законопослушные американские ты рассказываешь.
Код то конторы закрытый и никому не показываемый, что там знают только на этой конторе.

Код то конторы закрытый и никому не показываемый, что там знают только на этой конторе.

name it ))

Я в вашем ангельском жаргоне не силен. Скажи на местном тут.

Это называется «Огласите весь список, пжалуйста». Видео сам найдешь.

У нас нельзя. Ели что-то берётся, то лицензия проверяется. GPL нельзя.

В 100-тий раз писати один і той же код?

Да.

Виглядає контрпродуктивно

Ну, платящий тебя дядя же не горит желанием делится твоим текущим кодом с твоими будущими работодателями? Врядли. Ну пусть оплачивает твою «непродуктивность» в связи с этим.

А чи можу я, взяти, не зв’язаний бізнес логікою з конкретним клієнтом код, і застосувати його в продукті для нового клієнта?

можна поки хтось не почне колупати
а потiм стане не можна

писати специфічні ліби

може й не треба?

а какие то реальные примеры патентных троллей в коде есть?))
я вот пару строчек с if запатентую, точно у кого то будет такая!
как только искать?)))

я вот пару строчек с if запатентую, точно у кого то будет такая!

патентуй! (к) (тм)

Реиспользовать код клиента нельзя. Написать заново — можно.
То, что делаешь это (переписываешь заново) сотый раз на чужих проектах — дело житейское, тебе за это деньги платят.

ну скопипастить
перменные перименовать
коменты просмотреть

тут большой вопрос насколько уникальна и востребована эта либа вобще

или же просто «по привычке едет пан на брычке»

Ніхто тобі не скаже, але, підозрюю, що копіпастять якісь підходи чи критичні штуки типу комбо параметрів cli / конфігурації. те що в результаті все-рівно буде один в один тим самим.
А інтелектуальною власністю вважаються якісь ідеї і імпліментації, що дають бізнес перевагу, і код — лише доказ чи міра копіпасту.

Я сказав так, якщо ловиш себе на думці регулярно що «отут можна було б скопіпастити з минулого проєкту» то є шанс проекти конкуруючі і краще такого не робити. Я б призадумався змінити проект, бо сам факт що ти працював раніше в конкурента може викликати проблеми бо є non-competitive agreements

Это все справедливо для больших клиентов, автор больше спрашивает про мелочевку.

А для таких клиентов решения бывают просто кастомные туториал под себя.

Та ну... Самый простой пример: фреймворк под запуск селениумных тестов.
Можно, конечно, изобрести велосипед — но, поскольку ничего принципиально нового в браузерном тестировании не придумали (те же локаторы, тот же explicit wait) — то и фреймворки мало чем будут отличаться друг от друга. При этом никакого конкурирования проектов нет и близко: 1 проект может быть связан с медициной, 2-й — с автомобилестроением.

Тоді постає питання, а що робити? В 100-тий раз писати один і той же код? Виглядає контрпродуктивно.

Это реально не твоя головная боль. Тебе платят деньги, чтобы ты веслал с этого места до ужина. А то, что ты будешь писать одно и тоже, как в дне сурка, извини, тебе платят баксами за это.

А вас не їсть совість, що ви змушені працювати неефективно певну частину часу, особливо на старті проекту?

Совесть у галерного гребца? :) И причём тут совесть, тебе платят за создание проприетарного кода за деньги заказчика. Да, таков суровый аутсорс, что иногда приходится создавать одно и тоже, мнение гребцов об этом не спрашивают.

Чи ви не переймаєтесь і протягом кар’єри таки копіпастите собі код, який потім допилюєте за гроші клієнтів і в результаті маєте власну базу міні ліб?

Это говорит о том, что многие не читают контрактов, т.к. очень многие западные конторы запрещают во время работы на них создавать опенсорсный код, т.к. он может быть написан под влиянием опыта полученного при работе над проприетарным кодом и человек может вынести из дома много кода компании сам о том не подозревая. А пихать чужую собственность в какие-то свои либы, которые будут доступны нескольким заказчикам — это уже что называется напрямую asking for troubles.

Рано и поздно прилетит обратка, всё будет работать до поры до времени пока одна из компаний не решит зарелизить код в opensource или открыть под особой лицензией/NDA своим партнёрам, есть такой сервис: www.blackducksoftware.com — для анализа кода, где переименование переменных и перестановка строчек роли не играет. И если всплывёт, что код, который находится в собственности компании был зарелизен кем-то ещё, то тут свора юристов уже начнёт потирать свои влажные ручки и строчить иски.

Это реально не твоя головная боль. Тебе платят деньги, чтобы ты веслал с этого места до ужина. А то, что ты будешь писать одно и тоже, как в дне сурка, извини, тебе платят баксами за это.

На сколько я понял Olexandr Vovchok это фрилансер, поэтому почему не использовать преимущества фрилансера для оптимизации своей работы.

Думаєте в фрілансі не діють права власності? Я погодинно працюю. По ідеї все що роблю, віддаю у право власності клієнта.

та конечно дают.

Тут такой вопрос, а если я по-памяти переписал тривиальное решение, то это тоже по-запретом?

К примеру копирования стиля именования переменных, как настраиваю DI?

Мне кажется проблема надуманная, выглядит как преждевременная оптимизация.
Если в разных проектах требуется одинаковая логика и ты её оптимально реализовал, то код будет одинаковый или очень прохожий, т.к. правильно выполнено — оно почти всегда имеет ограниченное число вариантов, близкое к 1. Это неправильных вариантов /способов множество :)

Если все это происходит на одной и той же галере, договорись с начальством, чтоб тебе выделили какое-то время на бенче, чтоб ты мог написать все эти фреймворки и тулзы, которые бы ты (и другие работники) могли использовать на коммерческих проектах, оптимизируя их продуктивность.

Если это разные галеры, то я бы лично не прикасался к коду, который я написал в другой компании, если этот код не был выложен в опен сорс.

Если ты хочешь иметь какие-то фреймворки, которые бы облегчили тебе жизнь, и таких фреймворков нет на рынке, то ты можешь использовать подход «clean room design»: написать спецификацию как ты хочешь что б этот фреймворк работал, но не вдаваться ни в какие технические детали реализации. Далее дать эти спецификации кому-то левому, чтоб их реализовали. Желательно, что б это был реальный человек и что б ваши отношения были как-то документированы (например, можно нанять на апворке). Этот код выложить в опен сорс с очень агрессивными к бизнесу лицензиями (чтоб никто этот код даже палочкой не трогал), и выдавать себе business-friendly лицензии на его использование в твоих коммерческих проектах. Посколько код лежит в опен сорсе и был написан не тобой, в «clean room», у компаний будет минимум шансов оспорить его принадлежность.

А вас не їсть совість, що ви змушені працювати неефективно певну частину часу, особливо на старті проекту?

Один из вариантов как решить проблему с совестью — перейти на уровень где код уже не несет никакой ценности, ценность несет знание того, какие подходы работают, какие не работают, какие требуют больше экспериментов. Вместо того чтоб каждый раз писать одно и то же решение проблемы, пробуй разные патерны, разные фреймворки и разные языки на разных проектах. Что-то заработает. Что-то не заработает, у тебя останется знание, которое нельзя получить другим способом.

пробуй разные патерны, разные фреймворки и разные языки на разных проектах. Что-то заработает. Что-то не заработает, у тебя останется знание, которое нельзя получить другим способом.

А це вже та моя інша тема, про те, чи можна вчитися за гроші замовника(в процесі роботи на нього звісно)))

Якщо тобі треба вчитися за рахунок клієнта то твій менеджер не робить свою роботу

Типу сам ти не вчився за рахунок клієнта

Ну от я особисто роблю так: коли щось нове, то спочатку читаю про це, щоб зрозуміти загальну картину. Роблю це безоплатно. А потім вмикаю трекер і іду реалізовувати, і якщо все плавно йде, то не вимикаючи доробляю. Якщо застряю десь на більше пів години, тоді вимикаю трекер і вирішую проблему, і лише як вирішив то вмикаю назад.

А ви дійсно бачите сенс, щоразу як попадається щось, що ще не робили, спочатку написати це за свій кошт? Адже це нове постійно з’являється. Від якоїсь апішки, до «хакінгу» фреймворку. Я на фрілансі працюю, і роблю оцінку тасок безкоштовно, тобто підготовляюся безкоштовно. Якщо ще й за новий код не брати гроші, то мало що заробиш. Ну а якщо в компанії працюєш, то я взагалі не розумію, як можна рости лише в поза проектний час. Ти ж лише на реальних проектах набиваєш шишки.

А ви дійсно бачите сенс, щоразу як попадається щось, що ще не робили, спочатку написати це за свій кошт? Адже це нове постійно з’являється. Від якоїсь апішки, до «хакінгу» фреймворку. Я на фрілансі працюю, і роблю оцінку тасок безкоштовно, тобто підготовляюся безкоштовно. Якщо ще й за новий код не брати гроші, то мало що заробиш. Ну а якщо в компанії працюєш, то я взагалі не розумію, як можна рости лише в поза проектний час. Ти ж лише на реальних проектах набиваєш шишки.

Конечно, все написать бесплатно, а потом отдать свой код клиенту что бы он NDA налепил)

Я от наивной позиции рассуждений наших коллег в шоке.

Ну от я особисто роблю так: коли щось нове, то спочатку читаю про це, щоб зрозуміти загальну картину. Роблю це безоплатно. А потім вмикаю трекер і іду реалізовувати, і якщо все плавно йде, то не вимикаючи доробляю.

Напрасно ты так делаешь. Клиент тебе платит за время, потраченное на реализацию его тасков. Если для реализации нужно учиться — значит учишься (тоже, за счёт клиента).

Впрочем, если ты видишь в таком демпинге/обесценивании своей стоимости конкурентное преимущество — дело хозяйское.

Знаю лично людей, которые сами себе, по своей собственной инициативе, из месяца в месяц урезали премию. Так что, всякое бывает.

Конечно. Иногда у тебя вообще нет других вариантов. Тебе часто нужно встроиться в существующие системы заказчика и использовать его проприетарные решения, информация о которых есть только у него. Ты никуда не сдвинешься, не изучив их, и нормальные заказчики понимают, что исполнителю нужно время/деньги на такое изучение.

На бекенде в 95% случаев нет необходимости, ибо переиспользуемые компоненты и так давно переиспользованы — спринг и прочие фреимворки + инфраструктура базы данны, редисы всяки, кафки, кубернетисы с докерами итд итп.

Думаю тут сильно залежить від функціоналу, який робить цей код. Якщо це якась типова логіка, типу сортування, чи хеш-таблиці, то навряд чи хтось вас хтось за це захоче переслідувати. Інша справа, якщо це чутлива логіка, яка формує конкурентні переваги компанії, на яку ви працювали. Копі-пастити таке зашквар.

Это делают не только лишь все. Другой вопрос, а что же тогда из этого принадлежит нанимателю? Правильный ответ — ничего. Всегда при детализации до уровня строчки кода можно найти ну очень часто повторяющиеся фрагменты. Надеюсь, троли переменную i не объявят частной собственностью?

Гораздо преступнее попытка продать большой кусок продукта или продукт в целом одновременно нескольким покупателям. Учитывая полнейшее мракобесие на территории постсовка, за это по закону наказали мало кого. Но вот по понятиям... каюсь, участвовал в травле одного такого кадра. К слову, код который он продавал, тоже на поверку оказывался ворованным. Я бы и помог владельцу... да оказалось, что он тоже код украл.

Гораздо преступнее попытка продать большой кусок продукта или продукт в целом одновременно нескольким покупателям

Как готовый продукт, Цмс, Фреймворк, библиотеку.

Кейс Моторолы против Hytera — бывший сотрудник, моторолы решил поиспользовать ранее написанный код.
digitalguardian.com/...​-dollar-trade-secret-case

„A jury ruled the telecom is owed upwards to $420 million in damages after a Chinese company was caught stealing its trade secrets for radios.”

Китайцям можна стілити!

Низзя, как оказалось, если они хотят продавать оборудование в Штатах и ЕС

Доки є що віджимати у китайців, вони ще будуть вестися чемно. А можуть як в Росії, визнати недійсними міжнародні суди, і гуляйте. Цікаво доки таких варварів міжнародне суспільство терпітиме.

С одним моим знакомым [давно] случилась такая история: сделали интернет магазин, заказчик заплатил, все хорошо. Пришел другой заказчик и тоже хотел интернет магазин. Ну они в верстке поменяли розовенькое на голубенькое и продали ему как будто все с нуля делали. Но не обратили внимания что эти два заказчика из одного города ) был скандал

Це вже нахабство. Я ще розуміє, якби продав дешевше, ніж першому. Хоча тоді виходить недобросовісна конкуренція.

З одного боку так, з іншого боку 90% інтернет магазинів, сайтів-візитівок і т.д. так робиться.

Так і робиться. Але в такому випадку продають шаблон окремо, і не сам шаблон, а право його використання (не ексклюзивне).

Іншими словами, це юридично допустимо. А тупо продавати один продукт двом кастомерам — злочин, і формально гроші можуть вимагати обидва.

Как минимум заказчик мог отзыв написать нехороший про компанию. Что мол просто цвет поменяли а сказали что разрабатывали три месяца. А как максимум требовать какую-то компенсацию.

какие могут быть претензии на фиксед прайс проект? может они и первый магазин один день педалили

Тут ще би про стековерфлов згадати. Чи переписує хтось код скопійований звідтам? :-)

Я упоротий перфекціоніст, і завжди підведу під свій код стайл. А бачив як індус тупо копіпастив навіть власний код, контролер чи що там було, під різні секції сайту не змінюючи назв внутрішніх методів і змінних. Тобто код робив одне, а написане інше.

1 раз не копипаст. дальше уже выделять модули

Тупо экономия времени. Вам это может дальше не понадобиться, а продумываение абстракций таки занимает время.

Питання масштабу.
Якщо мова про об’єм коду в декілька сот стрічок чи навіть тисячу строк, то це фігня. Таке може писатись руками за тиждень.

Якщо ж ви із проекту в проект пишете один і той самий код, обсяг якого більше тисячі строк, то тут є сенс думати про рішення. Як варіант, створити власну платну чи безкоштовну лібу, продавати її або піаритись за рахунок неї.

Також тут інше запитання, якщо вас наймають вирішувати однотипні задачі, може є сенс автоматизувати процес? Чи можна ці задачі виокремити і пропонувати як Standalone продукт?
Якщо відповідь так і так, то просто проситься створити сервіс/платформу/конструктор/whatever і продавати ці послуги.
Для кастомерів це буде явно дешевше ніж наймати програміста, писати йому задачі тестувати його роботу, менеджити його і т.д.

Вы сейчас в точности описали процесс создания собственного фреймворка по необходимости, а не по желанию (например: желание скопировать поведение других программистов, то и дело создающих собственные фреймворки)
У меня по js canvas накопилось много функций, но они слабенькие, а вот если почистить их, потестировать, оптимизировать то может получится собственный неплохой вариант.
Своя рубашка (то есть та, которую сам — сшил, соткал, пряжа, веретено, лен, солома, домотканная ) ближе к телу ( тоньше ткань? )

Вопрос июня.
Если бы среднестатистический синьор не переиспользовал по максимуму Всё что только возможно, его пеплом (от выгорания и сгорания) можно было бы удобрять маргаритки уже через месяц.

Ну але те, що середньостатичний сіньйор не думає про легальні наслідки, не значить що їх не існує. Я розумію, що в культурі програмістів зашито копіпастити, але з точки зору бізнесу, то втрати, коли конкурент дістає те ж рішення дешевше і швидше.

Ой вэй, синьор помидор переиспользовал собственный сниппет сортировки говна «с Лошадинное>Собачье на Собачье>Лошадинное».
Цэ тянет на 20 лет с конфискацией (не говна, имущества)

коли конкурент дістає те ж рішення дешевше і швидше

Сфигали?

Вы Нда подписывали?
Там как бы указывается что на прямых конкурентов работать нельзя
Так что если надо будет, найдут к чему придраться
А сниппеты для решений в каких то типовых задачах можно и так найти полно

Ні. Бувало пару раз, коли просили підписати стартапери-параноїки.

Изначально не стоит путать имущественные права и авторские.
Имущественные права — это право в том числе ипользовать код.
Авторские — в принципе, только называть себя автором кода. Этого права у вас никто не может отнять, но особо ничего больше оно и не дает. Просто признание.

В минимально профессионально составленных договорах между контрактором и компанией указывается, что результаты работы, в т.ч. исходный код, принадлежат компании, с которой у тебя договор. Момент передачи имущественных прав тоже прописывается. Это может быть подписание акта, это может быть пуш в репозиторий.

Стоит оговаривать контрибьюшен в Open Source с компанией отдельно. Это отдельная интересная тема, которая может требовать ревью кода компанией, который уходит в опен сорс, чтобы он не содержал чувствительных для бизнеса компании вещей.

Если эти моменты согласованы — вам разрешено коммитить абстрактные решения в опенсорс, то принимаем, что как результат у вас есть просто независимая Open Source библиотека, которая на новом месте работы должна рассматриваться как любая другая — с оценкой рисков по поддержке и развитию. Это может быть своего рода вендор локом для компании. Существует практика Open Source Review Board, когда группа специалистов управляет процессами использования open source решений в компании.

Если рассматривать вариант, что вы принесли свой собственный код, который вы написали не в другой компании, а для себя, или, говоря формальным языком, обладаете имущественными правами на него — этот код код должен быть предоставлен компании с подписанием соглашения о возмездном или безвозмездном использовании и дальнейшей модификации. Собственно, вы позволяете компании сделать форк и не остаться без кода когда ваши пути с компанией разойдутся. Имеет смысл получить за этот код вознаграждение, наверное.

Вариант взять код написанный для одной компании и скопипастить в другую — попахивает очень нехорошо. Даже если нет никаких договоров или легко можно накопать обходных вариантов.

Суууупер. Вельми вдячний за такий розгорнутий пост.

Це питання домовленості.

Якщо в домовленості є лише зробити, щоб працювало, то ти автор коду і усі права на код у тебе. Ти можеш в майбутньому заборонити використовувати свій код і там ще 70 років після смерті. Але є невеличке таке але.

Потрібно розрізняти код і продукт. Тобто те, що ти пишеш і те, що ти продаєш — це Дві Великі Різниці.

В такому випадку ти передаєш результат роботи, продукт. А не сам код. Люди (без додаткової домовленості) платять за те, щоб працювало, або ж за послугу чи продукт, а не за код як такий. Отже вони мають право на те, щоб воно працювало. Вони так сформулювали свою назву товару, послуги і узгодили з тобою це.

Якщо ж маєш якийсь окремий договір, то це залежить від договору. Від того що там прописано про авторство.

Якщо другий випадок прописаний чітко, то з першим є проблеми. Потрібно завжди мати докази авторства коду.

Простіше:
Якщо ти найманець і не підписуєш жодних договорів про авторство — ти автор коду, що продає послуги чи продукт і можеш відтворювати свій код де хочеш і скільки хочеш.
Якщо підписав договір про авторство — читай договір.

Коли працюєш в продуктовій компанії то простіше домовитись опублікувати на GitHub типову логіку, ось один з прикладів incidr

Ще простіше коли типова логіка використовується в багатьох мікросервісах то можна аргументувати що опублікуєш на GitHub і покриєш тестами краще

Скоріше відповідь ні.

Ахахахахаха!!!

Слова не мальчика, но уставшего архитектора!

В мене рідко стартують нові проекти.
Взагалі — думаю, можна домовитись з замовником щоб викласти такий код в LGPL лібу.
З іншого боку — тобі платять за час? Тоді можеш скопіпастить, переіменувати, і матимеш дозвілля.

Взагалі — думаю, можна домовитись з замовником щоб викласти такий код в LGPL лібу.

Незручно, особливо коли проекти маленькі і клієнтів багато.

З іншого боку — тобі платять за час? Тоді можеш скопіпастить, переіменувати, і матимеш дозвілля.

Саме за час. Якщо я зроблю щось швидше, я зароблю менше на виконанні однієї таски. особистого профіту мені нема, окрім полегшення життя, коли не треба все згадувати з нуля і перегуглювати.

А скопіпастити і переіменувати, наскільки захищає від патентних тролів? Ну і, теж таке собі рішення, прийдеться розвивати словниковий запас, щоб кожному клієнту перейменовувати хд.

Якщо я зроблю щось швидше, я зароблю менше на виконанні однієї таски.

То хто ж знає, скільки часу ти її кодив, а скільки — чай пив?

А скопіпастити і переіменувати, наскільки захищає від патентних тролів?

А що вони можуть зробить? Як порівнювати код? Де візьмуть доступ до обох проектів?

То хто ж знає, скільки часу ти її робив, а скільки — чай пив?

Тайм трекер. Звісно можна додавати і Manual Time. Проте він не гарантований Апворком, і нові клієнті думаю будуть неохоче погоджуватися на нього.

А що вони можуть зробить? Як порівнювати код? Де візьмуть доступ до обох проектів?

Так, ризик не дуже великий, поки працюєш на дрібну рибу.

Тайм трекер — зло. Напиши прогу, котра буде брать код з файлу і повільно набивать його в екран. Можна поюзать AutoIt 3.

Крупна риба або ховає код так, що його ніхто ніколи не бачить, або викладає усе в опенсорс.

Напиши прогу, котра буде брать код з файлу і повільно набивать його в екран. Можна поюзать AutoIt 3.

Та в мене ще не так багато коду для копіпасти аби так заморочуватись. Ну як, колись на шарпі досить велику апішку писав і там вже було «архітектурних» рішень, що можна б було переюзати, допиливши. А так проекти до 100 годин тепер беру.

Те що ти пропонуєш, трохи нелегально, і отримати бан апворку було б не весело. А бан пожиттєвий там. Мене більше цікавлять легальні варіанти. Як бачу їх не дуже є.

Тайм трекер — зло

Насправді залежить від рейту. Треба просто розраховувати, що рейт по трекеру це половина рейту в офісі, а то і ще менше, враховуючи офісні плюшки. От маю 20 за годину, і це десь 9-10 на галері.

Легально — набивай код сам, по дорозі переіменовуючи змінні.

Подписаться на комментарии