Как Вы защищаете код от утечки снаружи? [дубликат]

Другое событие NullPointerException возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.

String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals для гарантированного непустого объекта.

Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null.

Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.

String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

14
задан JasonMArcher 10 June 2015 в 18:16
поделиться

13 ответов

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

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

, Но в конце дня, ответ выполняется более быстрый, чем конкуренция.

37
ответ дан 1 December 2019 в 05:49
поделиться

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

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

0
ответ дан 1 December 2019 в 05:49
поделиться

Предыдущие ответы все, кажется, центрируются при создании доверия и найме нравственных людей.

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

0
ответ дан 1 December 2019 в 05:49
поделиться

Я лично никогда не тестировал ни на каком реальном случае, но я предложу использовать фрагментацию кода:

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

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

0
ответ дан 1 December 2019 в 05:49
поделиться

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

  1. Разъединение "рабочий компьютер" из Интернета, купленного, потому что им нужен доступ в Интернет для ссылочной покупки все wbbook.

  2. Материал слоты USB разработчиков с эпоксидной смолой и требуют, чтобы они загрузили/разгрузили все из централизованного сервера, который сканирует все данные, которые проходят его для кода как синтаксис.

Или Вы могли просто доверять своим сотрудникам и заставить их подписать NDA...

0
ответ дан 1 December 2019 в 05:49
поделиться

Лучший шаг запускается от повторно прокладывающих борозды парней с сильного этического поведения. Различные другие шаги могут быть сделаны как вся просканированная коммуникация. Существуют места, где электронная почта и вся информация, выходящая, сканируются. Рабочий стол/ноутбук не имеет жесткого диска, или доступ ограничивается, и вся работа находится на сетевых папках, работая из дома, нужно подключиться к Интернету. Офлайновая работа синхронизируется. USB и диски разъединяются.

другие политики состоят в том, чтобы обеспечить доступ только на основе потребности. Они только замедлятся и препятствуют в некоторой степени, но, каждый очень решителен затем, он нашел бы способы обойти это. Другой путь состоит в том, если код действительно очень важен, то имейте идею copywrite защищенный по закону.

0
ответ дан 1 December 2019 в 05:49
поделиться

Хорошо, я собираюсь быть немного практичным здесь.

  • Являющийся хорошим всем и надеющийся они не причинят Вам боль, не работает.

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

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

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

Это - то, что я ЗНАЮ, происходит, вызывают, я засвидетельствовал, что он происходит с моей компанией.

Поэтому, что каждый делает?

  • Знак NDA, который конкретно упоминает, что они программист не сделают копии.
  • Распределяют Ваш продукт между программистами и, если возможно кодировали модули индивидуально и интегрированный руководителем, ответственность которого состоит в том, что все программисты делают nt получают весь код.
  • Во время завершения получают записанное обязательство от кодеров, что они не обладают никаким IP компании, и они понимают штрафы нарушения.
  • , Если кто-то нарушает Ваш IP, предъявите иск человеку! Никакие исключения. Это будет работать примером для существующей команды.

я звучу как экстремальное значение?

4
ответ дан 1 December 2019 в 05:49
поделиться

Следуйте этим инструкциям, и не должно иметь значения, если содержание Вашего всего репозитория исходного кода отправляется на всем протяжении stackoverflow:

http://geocities.com/mdetting/unmaintainable.html

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

Другой прохладный путь состоит в том, чтобы сказать одной половине, что они - "команда" и называют другую половину как ненадежную "команду b". Тогда инвертируйте его и скажите то же самое "команде b" участники. Поощрите их следить за "плохими парнями" в другой команде и сообщать о любых знаках illoyalty Вам. Опрысните несколько "индукторов конфликта" (например, скажите "Joe": ' Вы знаете то, что Ed говорит о Вас за Вашей спиной? ') и т.д. Творит чудеса, если Вы настраиваете разработчиков друг против друга и создаете несколько [изобретенных Вас] конфликтов тут и там...

(А, и не, я на самом деле не рекомендую ни одного вышеупомянутого. Просто ребячество. Но я видел, что люди используют всю тактику выше. И это не работало.)

6
ответ дан 1 December 2019 в 05:49
поделиться

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

, Но к концу дня Ваш наилучший вариант состоит в том, чтобы удостовериться, что никто НЕ ХОЧЕТ украсть от Вас. Ваша команда должна быть счастливой, они должны быть горды работать на Ваш, они должны быть лояльны к компании и друг другу. Если у Вас есть такая команда, это - простой вопрос объяснения всем, что код должен быть защищен от посторонних. Это не остановит специализированную родинку, но предотвратит несчастные случаи.

P.S. И да, надлежащие пункты в контрактах не вредили бы также, по крайней мере, они удостоверятся, что разработчики ЗНАЮТ, что взятие кода снаружи является нравственно неправильным.

8
ответ дан 1 December 2019 в 05:49
поделиться

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

В целом значение "источника" намного меньше, чем обычно рекламируется, basicly источник без людей, или организация не стоит устройства хранения данных, которое это занимает для конкурента.

кроме того, Вы пропускаете наиболее вероятный вектор атаки, и это - также то, которое Вы не можете остановить несмотря ни на что. Если кто-то действительно действительно want's, чтобы знать, как Вы сделали свое волшебство тогда, они попытаются нанять Ваших разработчиков далеко, и так как Вы не можете мешать им иметь информацию в их черепе и даже если они поворачивают во всем их имуществе там знание и доменные экспертные знания, уезжает с ними. Хранение сотрудника Basicly и доверие являются единственным путем. Извините.

16
ответ дан 1 December 2019 в 05:49
поделиться

Я помню этот случай с Клапаном, когда они разрабатывали HL-2. Интересная ссылка здесь: http://www.shacknews.com/onearticle.x/28619

2
ответ дан 1 December 2019 в 05:49
поделиться

Я не знаю, каким количеством фактической справки это будет, но:

  1. не Делают p*ss Ваши программисты прочь. Не получайте их в положении, где они хотят дать источник конкуренту. Большинство мест недооценивает своих разработчиков. Данный, где Вы (ТАК), я предполагаю, что Вы менее вероятны. Ничто не получило мне больше, чем досматривание людей продаж до конца для игр гольфа - заплаченный и заплатило за компанией - в то время как мы должны были бороться для получения пиццы один раз в месяц.

  2. Действительно, если бы Ваши прямые конкуренты получили Ваш код сегодня , что он сделал бы? Ваш товарный или вертикальный рынок то, что мантисса, что Вы не выпустили бы более новые, лучшие версии, прежде чем они могли реагировать? Нет ли никакое место для инноваций? Большинство компаний переоценивает свои "патентованные алгоритмы и внутреннее разработанное знание". Несомненно, это может сократить некоторое свободное время, но это - только приблизительно 10% проблемы.

  3. , Если бы Вы получили весь источник для всех своих продуктов конкурентов, каким количеством фактического использования это было бы? Я предположил бы, что это установит Вас назад месяцы. Не передают. Назад.

, Если бы у Вас были чистая система и мало внешнего/внутреннего знания, сколько времени оно взяло бы Вас для получения собственного продукта в buildable состояние? Сколько времени это взяло бы для развертки в код и тренировку, что продолжается? , Сколько времени и денег Вы потратили бы впустую попытку разработать что-то, вместо того, чтобы провести время и деньги о том, как сделать Ваш работа продукта лучше?

я на самом деле был в положении наличия всего источника - 1 миллиона строк + кода - к продукту конкурента. Мы ничего не сделали с ним - кроме чего-то вроде, вводят по абсолютному адресу - вокруг и затем удаляют его, который был больше, чем я был доволен - но я буду ожидать, что мы уничтожили бы месяцы времени только для получения туда, где они были затем.

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

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

Мы волновались по поводу людей, декомпилирующих наш код также. Мы прекратили волновать, когда мы поняли, что испытали достаточно затруднений при разработке того, что продолжалось внутри 500K + строки C#, C++ и HTML-кода, говорящего с MAPI/Exchange. Если кто-то может декомпилировать его и разработать его, то мы хотим нанять их......

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

11
ответ дан 1 December 2019 в 05:49
поделиться

Я работал где-то, где существовала настоящая культура секретности в отношении подобных вещей (исторически было несколько раз, когда компания была небольшой где «клиенты» злоупотребляли доступом к нашему продукту).

Хотя на самом верху руководство было очень защищенным, я вижу это несколько иначе. Я думаю, что наш код, хотя и не совсем неуместный, не так важен, как можно было бы ожидать от компании-разработчика программного обеспечения.

Причина нашего успеха:

1) Код, по сути, является решением множества проблем. Если вы получите наш код, вы получите эти решения, но у нас все еще есть умные люди, которые решили эти проблемы. Они понимают эти проблемы лучше, чем вы, и могут лучше, чем вы, решать следующий набор проблем.

2) Поскольку они действительно понимают проблемы (и решения), мы можем делать вещи быстрее, чем наши конкуренты, что означает более дешевую (или более прибыльную).

3) Кроме того, благодаря этим людям и отношению внутри компании мы хорошо справились с нашими клиентами и оказали хорошую поддержку.

4) Благодаря этому у нас хорошая репутация и клиенты, которых можно рекомендовать.

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

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

1
ответ дан 1 December 2019 в 05:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: