Api возвращает список программ по указанным фильтрам, для каждой программы есть параметр, который может содержать одно из следующих значений: Программа полностью бесплатная, программа бесплатная но имеет платные функции, единоразовая плата, ежемесячная плата и т. д. Эта переменная содержит константу, например: FREE, PAID и т. д. Как лучше назвать эту переменную на английском?
Jun06Man, Ну условно у вас программа и может быть платной или бесплатной. За проверку наличия/отсутствия платных фич, типа оплаты, периода оплаты и т.п. должны отвечать другие компоненты/свойства.
Не смотря на то что я не стал спорить, я всё равно не считаю это название хорошим. Оно возможно неплохо сыграет, если английский не ваш родной язык или же если вы его плохо знаете.
Проблема тут в том, что модель распространения приложения -- это немного другое. Это про, например, SaaS или desktop. Ну или продаёте ли вы свое приложение на дисках или в интернете. Но совершенно не про тип лицензии.
Ваша же переменная хранит именно тип лицензирования. Вы это можете наблюдать, если расширите список, например так: freeware, shareware, commercial, learning, perpetual, developer...
На основании этого, я бы такое название на ревью не пропустил. Но какие у вас требования не знаю.
Лицензия - это такой документ, который говорит, кто собственник исходного кода, кто автор. И как другие авторы могут использовать ПО. Или вот из вики: "A software license is a legal instrument (usually by way of contract law, with or without printed material) governing the use or redistribution of software." т.е. в лицензии обязательно про использование, и, возможно про дальнейшее распространение.
Модель распространения - это как раз про способ пользования ПО, и все ваши примеры они как раз про распространение: freeware, adware, shareware, subscription. Например, freeware программа может быть защищена авторским правом и автор категорически запрещает вносить в нее изменения. Распространение тут - freeware, а лицензия - строгая-суровая.
В то время как SaaS - это модель обслуживания, которая говорит, что сервис будет предоставляться "как услуга". Но не обязательно по подписке.
Например, у Микрософта можно купить себе свое облачко, при этом ПО и железяки лицензиями прибиты намертво к МС, модель распространения там будет commercial, а вот модель обслуживания конечного юзера будет SaaS. Хотя тот же админ предприятия, в котором купили такое облако, получает под свое управление продукт по модели обслуживания IaaS.
Таким образом лицензии, модель распространения и модель обслуживания - разные понятия.
При этом можно смело утверждать, что тот же SaaS в большинстве случаев воспринимается как "облачный сервис по подписке" - т.е. тут и модель обслуживания и модель распространения в куче. Но, очевидно, так не всегда.
Vitaly, Требования сделать все как положено, для людей. Плохо знаю английский. У меня есть только две константы free и paid, все остальное я выкинул, в этом случает название licenseType выглядит странно...
berad, Да, наверно лучше использовать licensingType.
Но ваши рассуждения могут оказаться верными при определённой иерархии классов для моделирования. Тут нужно больше деталей.
Вопрос: есть софт, за софт могут не заносить бабла, могут заносить частично, полностью и тп.
Как это называется?
Далее три абсолютно разных понятия
- как платить за софт (модель распространения)
- кому принадлежит софт (лицензия)
- как пользоваться софтом (модель обслуживания)
Можно еще добавить
- где установить софт (onPremise/Self-Hosted vs Cloud/Hosted)
berad,
Вот этот тезис кажется мне изначально ошибочным:
Модель распространения - это как раз про способ пользования ПО
Распространение -- это о том, как ПО попадает к конечному заказчику. Как они пользуется -- это уже детали лицензионного соглашения. Например, должен ли пользователь платить или он должен платить только при определённых обстоятельствах -- это всё указано в лицензионном соглашении. Для некоммерческого софта это лицензионное соглашение просто не нужно, там и лицензии хватит. А вот для проприетарных программ нужно.
как платить за софт (модель распространения)
Это уже вообще способ оплаты и к модели распространения не имеет отношения.
кому принадлежит софт (лицензия)
Такая информация может содержаться в лицензии, но там не только она, вот в чём дело. Есть понятие лицензии, например GPL, а есть понятие лицензионного соглашения с пользователем EULA и путать их не стоит.
как пользоваться софтом (модель обслуживания)
Это называется руководство пользователя.
Какие еще данные нужны?
Я имел ввиду, что при какой-нибудь хитрой иерархии классов ваша модель может сработать.
Griboks, Ну вы уж попробуйте, если хотите, чтобы вас воспринимали всерьёз, ведь подобные высказывания вообще ничего не значат без обоснования или развёрнутого объяснения.
Опыт это вообще понятие относительное. Есть, допустим, формальный опыт, есть реальный и это не всегда эквивалентные понятия. Тоже самое касается и формальных должностей. Например, мы можем сравнить архитектора Василия, который 20 лет отработал на Уралвагонзаводе и программиста Джона, который пару лет отработал в Амазон. Как вы думаете, в чью пользу будет сравнение, не смотря на формальные параметры?
Griboks, Так я и сделал "как говорят умные люди" )) В панели управления google play есть раздел pricing & distribution, там можно выбрать ТИП РАСПРОСТРАНЕНИЯ )
Вы сами подумайте, причем тут цена? Речь идет о распространении. На сайте steam и gog, для каждой игры, есть параметр price, это да! Но! Там указывается цена, эта переменная содержит конкретную цену или free. В моей случае цен вообще нет. Это как пример, почему в большинстве приложений, эту переменную называют price.
вот только не надо спорить. Если вы не знаете, то просто сделайте, как говорят умные люди.
Ну это уже совсем моветон знаете ли! А как же критическое мышление и отсутствие авторитетов? А умный человек -- это какой?
Какая-то логика азиатских или полуазиатских (как Россия) стран, если честно.
Vitaly, умный человек - это я. Критическое мышление не возможно при таких вопросах на тостере. Логика вполне логичная. Вы же не спорите, что в автобусе надо уступать места девушкам?
Griboks, Окей, давайте ваше обоснование без воды. Я даже шаблон для вас подготовлю:
"Я считаю, что переменная должна называться так-то по следующим причинам:
1)
2)
3)
..."
Вы похоже тролль... По каким критериям вы умный человек?
Критическое мышление не возможно при таких вопросах на тостере.
Почему?
Логика вполне логичная.
Не могли бы вы пояснить, что вы имеет ввиду?
Вы же не спорите, что в автобусе надо уступать места девушкам?
Спорю, потому что это ничем не обосновано. Люди равны по конституции большей части развитых стран, и даже России. Если нет никаких законов, которые регламентируют условия при которых один человек должен уступать другому место, то слово "надо" здесь неуместно.
Вы конечно можете проецировать своё мировосприятие на окружающих и считать, что у всех людей в мире набор ценностей совпадает с вашим, но будьте готовы к тому, что это не так. Как минимум я -- контрпример в данном случае. А следовательно ваше число примеров конечно и общности не доказывает.
Потому что, чтобы критиковать, надо иметь свою точку зрения. В вопросе собственного мнения автора нет.
Не могли бы вы пояснить, что вы имеет ввиду?
Если челочек разбирается в теме, то вполне вероятно, что его решение будет правильным. Чем больше человек разбирается, тем больше эта вероятность. Похоже на правду, да?
"потому что это не дистрибуция" посмотрите внимательно на панель управления google play market.
MonetizationType = free тип монетизации бесплатный или тип монетизации платный :D
Я соглашусь с коллегами, что дистрибуция, всё-таки, относится к способам получения программы у пользователя. Это может быть коробочное решение, диск, скачивание дистрибутива из интернет/торрента/или ещё, получение через стор. Когда-то были программы, дискеты с которой получали через почту, исходный код (или даже машинный код) программ печатались в журналах. Это дистрибуция.
Distribution - the action of sharing something out among a number of recipients.
Дистрибуция - действие для разделения чего-либо большому количеству получателей.
Вы же сами показывали здесь, как гугл называет - Pricing & distribution. И там указаны настройки не только дистрибуции (какие страны и пр), а также тип и цену оплаты за продукт.
Выше Vitaly предложил lisenceType, и это лучше, чем дистрибуция, но мне кажется, что лицензия, всё-таки, это про тип лицензии (freeware, пропиетарная, GPL, MIT и пр.), то есть, что пользователь может делать с программой. Хотя, варианты оплаты тоже могут быть частью лицензии. А может, и нет, в лицензии, а есть в договоре, например (и у разных клиентов могут быть разные договоры, но одинаковые лицензии).
Программа полностью бесплатная, программа бесплатная но имеет платные функции, единоразовая плата, ежемесячная плата и т. д.
А тут как раз указаны варианты, как разработчик/издатель может получать деньги - оплата продукта, микротранзакции, реклама и пр. Напишите весь список, тогда, может, там будет что-то ещё, кроме монетизации.
Vitaly, возможно, licensingType и лучше, чем licenseType, я не настолько знаю английский, чтобы уловить разницу.
Jun06Man, делайте, как вам нравится, главное, чтобы потом было понятно, о чём это будет, понятно для другого разработчика и для вас-через-год. И подумайте, не появится ли в дальнейшем переменная для указания именно дистрибуции (с константами FROM_STORE и FROM_DISC).
Vitaly, Алексей Павлов Долго смотрел исходники разных программ на bitbucket и github, этот просмотр оказался полезным. Многие проекты использую available (доступность), редко можно встретить license. Я признаю, ошибся, distrtibution это другое.
Jun06Man, Вообще, если у вас всего два состояния free и paid, и добавление других не планируется, то переменную можно просто free назвать (если она ture, то free, иначе paid).
Алексей Павлов, Разница в том, что licensingType будет означать тип лицензирования. Т.е. как раз тот набор условий, на основании которых пользователь может пользоваться продуктом: должен он платить или нет. В том время как licenseType, это в действительности тип лицензии и может быть неоднозначно истолкован (например как GPL).
Vitaly, Можно сделать вывод, однозначного ответа нет! Например: слово tag это теги и ВСЕ! Слово tag ничем не заменишь. Все знают, для обозначения меток записи, переменную следует назвать tags. Еще пример сортировка, часто в различных api, можно встретить sort или sort_order и sort_by другие используют order, order_by :D Так и живем...
Jun06Man, По-моему, это было очевидно с самого начала. Совсем уж однозначного ответа не существует. Люди всегда выбирают тот термин, который больше всего соотвествует модели предметной области. Некоторые модель не правильно строят, некоторые не знаю языка, некоторые не знают определений... Всё это влияет на выбор имён. Я уже даже не помню сколько копий было сломано в спорах об именовании сущностей за всё время моей работы. Всё-таки это одна из самых сложных задач в программировании.
Слово tag ничем не заменишь.
На самом деле, в зависимости от контекста, можно много на что заменить. Что мне в голову сходу приходит: mark, sign, attribute... Открывайте английский словарь синонимов и вперёд. Выбирайте, что лучше всего отражает суть того, что вы моделируете.