Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 5
×

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

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Сфигали?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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