LINUX.ORG.RU

Оцените мой первый самостоятельный проект

 , , ,


2

1

Привет, это моя первая, написанная, протестированная, нарисованная и пропиаренная собственными руками игра! Пока только для Google play. Следующие проекты буду пилить в оба маркета.

https://play.google.com/store/apps/details?id=com.mishtus.ugadai_chto_doroje

Написана за 4 месяца(2 месяца, перерыв год - после неудачи с первой версией и баном от рекламодателя,и еще 2 месяца). Нативная разработка(android studio), Java, немного SQL. Вся графика нарисована в paint net :). Пиарю, как видите, бесплатно, где могу.

За год простоя собрала 900 скачиваний, за неделю, после последней обновы и активной рекламы - еще 900. И принесла мне прибыли - 2.11$ :).

Буду рад фидбеку, критике, оценке и поддержки. Всем добра и продуктивной недели!

Ответ на: комментарий от monk

У каждого свой «стиль».
Здесь главное не доказывать, чей стиль лучше, а брать с всего лучшее. Let it be.

Владимир

anonymous
()
Ответ на: комментарий от monk

например

Это называется «у нас нет нормального валидатора». Тут плохо будет хоть как. Сегодня там всё нижнего регистра, а завтра любого регистра в автопереводом в нижний, а после завтра еще что-нибудь придумают и не факт, что любые комментарии это всё будут внятно описывать и будут актуальными. Они не нужны и тем более, если там что-то настолько непонятное, что приходится описывать это на родном языке.
Нормальный вариант - это схема данных сразу с тестами, которая будет автоматом конвертироваться в человекочитаемую документацию при пересборке, а не вот это вот всё с комментариями хрен знает где и с названиями на 2 экрана по-русски/транслитом или наоборот латинскими аббревиатурами в верхнем регистре максимум 8 символов.

crutch_master ★★★★★
()
Ответ на: комментарий от crutch_master

А еще 1с - это не полноценный яп, а велоскриптота российской шаражки и кодить на нём, очевидно, очень приятно.

Вообще-то, полноценный. Полный по Тьюрингу и общего назначения.

monk ★★★★★
()
Ответ на: комментарий от crutch_master

Нормальный вариант - это схема данных сразу с тестами

А такое в природе встречается или только в твоих мечтах?

вот это вот всё с комментариями хрен знает где и с названиями на 2 экрана по-русски/транслитом или наоборот латинскими аббревиатурами в верхнем регистре максимум 8 символов

При отказе от русского языка всегда получается примерно такое. Потому что по-русски можно просто назвать таблицу ПланЗаказа, а в SAP приходится писать «planned orders table EBAN».

monk ★★★★★
()
Ответ на: комментарий от crutch_master

Как и brainfuck.

И что ты хочешь доказать? Что за всю свою жизнь на супер-пупер языках не принесешь и пол процента пользы от того, что наваяли «на велоскриптоте» кодеры, которые, возможно, ни английского, ни си, ни Кнута в глаза не видели?

Но гавкнуть - это ж первейшее дело!..

yyk ★★★★★
()
Ответ на: комментарий от crutch_master

На 1С за 1 час решается с нуля задача такого уровня (пример с экзамена, срок оттуда же):

Компания занимается сборкой и продажей компьютеров и периферийных устройств. Закупка деталей отражается документом «Приходная накладная», сборка системных блоков документом - «Сборка», информация о продажах отражается документом «Расходная накладная».

Учет ведется в разрезе подразделений. В каждом подразделении при продаже используется своя учетная политика «FIFO», «LIFO» или «по средней». Информация об учетной политике может меняться не чаще, чем один раз в год.

Из деталей производится сборка системных блоков, причем предполагается невозможность разборки, т.е. собрав системный блок, невозможно из него извлечь деталь обратно. Учет деталей производится в разрезе свойств и характеристик. Набор характеристик составляет свойство. У одной детали может быть несколько разных свойств.

Для каждого системного блока в информационной базе должна храниться информация о его составе (спецификация): детали, их свойства и количество. Состав деталей может изменяться не чаще чем 1 раз в неделю.

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

В шапке документа «Сборка» указывается подразделение, из которого были списаны детали и подразделение, в которое поступают собранные системные блоки.

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

В табличную часть документа «Расходная накладная» вводится информация о подразделении, системном блоке или периферийном устройстве и их количестве.

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

Реализовать отчёт по движению товаров (остатки, приход, расход). Реализовать отчёт по продажам (себестоимость, продажи, прибыль).

monk ★★★★★
()
Ответ на: комментарий от Harald

где можно посмотреть исходники

опять кончились?

на: ?????????????????????????

добавлю себе пометку

Harald ★★★★★ (01.07.19 17:04:53) снабжать этого шланга вопросительными знаками

@Dimez, налицо же постоянное преднамеренное пренебрежение правилами русского языка. где ты, когда ты так нужен?

SevikL ★★★★★
()
Ответ на: комментарий от monk

На 1С за 1 час решается с нуля задача такого уровня

А на опенкарт за час пишется магазин. В этом ничего нет такого выдающегося, что фреймворк работает как фреймворк.

crutch_master ★★★★★
()
Ответ на: комментарий от yyk

Что за всю свою жизнь на супер-пупер языках не принесешь и пол процента пользы от того, что наваяли

Кодеры «наваяли» это все на плюсах. 1Сники ничего не «ваяют», они юзают готовое.

crutch_master ★★★★★
()
Ответ на: комментарий от crutch_master

Ты просто упрямый, тупой и упрямый или просто троллишь? Конечно я про код на 1С, а на про то, на чём сама 1С написана... Хотя можешь не отвечать, тебе же лишь бы повыёбываться поспорить...

yyk ★★★★★
()
Ответ на: комментарий от monk

А такое в природе встречается

Да, Swagger, например.

Потому что по-русски можно просто назвать таблицу ПланЗаказа

Что мешает назвать её PlanOrder?

crutch_master ★★★★★
()
Ответ на: комментарий от yyk

Конечно я про код на 1С, а на про то, на чём сама 1С написана

А что стоит весь 1С-код без 1С? Ничего. Это просто портянки текста. Завтра 1с переделают, выпустят новый закон и весь этот «код» пойдёт в помойку.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от monk

1С использую «каждый день» /такова моя селяви/, но вот Foxpro 2.6 /ИМХНО много больше возможностей/ ни в чем не уступал 1С 7.7, да и VFP очень хорош.
Другое дело, что «диванные разработчики» толком их не могли использовать.
И глядя на их «поделки» можно было сделать «правильный вывод» - «Foxpro 2.6 и VFP - не нужное старье».
Но вот архитектурный подход 1С ИМХНО действительно великолепен.
Еще раз акцентирую - великолепен архитектурный подход.
Что касается реализации, то как известно «серебряную пулю» еще ни кто не создал.

Владимир

anonymous
()
Ответ на: комментарий от crutch_master

Это ты сейчас весь «java world» на три буквы послал? Ну крут!... Но дальше без меня, я в медицине слаб...

yyk ★★★★★
()
Ответ на: комментарий от yyk

Это ты сейчас весь «java world» на три буквы послал?

Java world никуда не денется, хоть бы оракл завтра забил на jdk. Один эс если вдруг станет не рентрабельным будет тоже самое, что и с фокспро.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от crutch_master

Да, Swagger, например.

Что-то не вижу возможности в https://swagger.io/docs/specification/describing-parameters/

указать что-то вроде «a char value that excepts lowercase characters». Разве что в description написать. Там в конце документации прямо такой пример

       - name: rdate
          in: query
          schema:
            type: string
          description: >
             A relative date range for the report, such as `Today` or `LastWeek`.
             For an exact range, use `start_date` and `end_date` instead.
позволяет произвольную строку, в описании два допустимых значения.

Что мешает назвать её PlanOrder?

Это вопрос к SAP: https://www.se80.co.uk/saptables/e/eban/eban.htm

monk ★★★★★
()
Ответ на: комментарий от crutch_master

Один эс если вдруг станет не рентрабельным будет тоже самое, что и с фокспро.

Замечу, что базы на фокспро до сих пор живут. Также как и на 1С 7.7.

monk ★★★★★
()
Ответ на: комментарий от monk

Что-то не вижу возможности

Сорцы открыты. Берешь, расширяешь type добавляешь test или делаешь свой велик. Это не мегасложная задача и её не обязательно решать комментариями где-то в коде.

crutch_master ★★★★★
()
Ответ на: комментарий от monk

Замечу, что базы на фокспро до сих пор живут.

Это не жизнь, а влачение жалкого существования. 90% жилфонда на фокспро + костыли в оракле.

crutch_master ★★★★★
()
Ответ на: комментарий от crutch_master

Сорцы открыты. Берешь, расширяешь type добавляешь test или делаешь свой велик.

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

Это не мегасложная задача и её не обязательно решать комментариями где-то в коде.

В Swagger даже перечисления предлагают комментариями описывать.

monk ★★★★★
()
Ответ на: комментарий от monk

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

Делают. Слышал на какой-то конференции, но кто конкретно уже не скажу. А что такого в этом подходе, чтобы его не использовать? Тесты есть? Есть. Декларативное описание api есть? Есть с начала истории. В чём проблема собрать из этого документацию, чтобы не лазить по конфигам с тестами каждый раз? Это не какой-то рокетсайнс, чтобы так делать.

crutch_master ★★★★★
()
Ответ на: комментарий от crutch_master

Я в целом, а не про конкретный SAP.

А в целом, я так понимаю, немцы не хотели длинных имён. Проще написать BSAKZ, а не ControlIndicatorForPurchasingDocumentType. Также как в POSIX структура называется dirent, а не directory_entry.

monk ★★★★★
()
Ответ на: комментарий от anonymous

«Криворукие» на любом языке разработают лишь «криворукий» проект.

Даже если не криворуко. Спецов нет, как оно сделано и как работает уже никто не знает.

crutch_master ★★★★★
()
Ответ на: комментарий от crutch_master

Дело скорее не в отсутствии специалистов.
«Часто и густо» проекты разрабатываются с пожеланиями и требованиями 20 «указателей» /начальников/.
Так вот исходный код не несет информации об этом «океане пожеланий» ...

Владимир

anonymous
()
Ответ на: комментарий от crutch_master

Делают. Слышал на какой-то конференции, но кто конкретно уже не скажу.

:-) Это называется «по-слухам».

Декларативное описание api есть? Есть с начала истории.

С формальным условием вида «a char value that excepts lowercase characters»? Где такое? Swagger не подходит, там только поле description для этого.

Вообще, тип может быть и такой:

//  Поля - Строка - имена полей, перечисленные через запятую, 
//                  Список допустимых имен полей см. в описании возвращаемого значения.
//                  Если указана пустая строка, то возвращаются значения всех полей.
//  ИНН - Строка - корректный ИНН организации

monk ★★★★★
()
Ответ на: комментарий от monk

С формальным условием вида «a char value that excepts lowercase characters»?

Кто будет проверку на типы с условием, которое даже ты не можешь распарсить. Регулярку приделают, какой-нибудь wildcard или что-то типа этого + небольшой тестовый набор. По этому однозначно будет понятно, какие должны проходить данные, а не «a char value that excepts lowercase characters».

:-) Это называется «по-слухам».

Это нормальное решение сделать проверку данных там, куда они поступают необработанные.
Ну на оракле запихают куда-нибудь в триггер. Но это оракл, лучшая субд на которой можно делать вообще всё.
На яве напишут какие-нибудь аннотации, если кодеры - не макаки. Аннотации можно вытащить из класса, запихать в документацию.
Это элементарно, я не знаю, почему тебя это удивляет и ты считаешь, что я рассказываю какие-то байки. Там уже десятки лет рулят и педалят xml вообще без кода, код с аннотациями и аннотации на страницу, которыми настраивается вообще всё. И доки собирают из этого тупо, чтобы не делать двойную работу и ничего не забыть.

Как там на 1с? Можно функцию определить в переменную и передать куда-нибудь? Аннотации завезли? Классы есть какие-нибудь? Рефлексия?

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от crutch_master

Регулярку приделают, какой-нибудь wildcard или что-то типа этого + небольшой тестовый набор. По этому однозначно будет понятно, какие должны проходить данные, а не «a char value that excepts lowercase characters».

Тестовый набор там есть в виде значений по-умолчанию. Из него однозначно ничего не понятно. Или пример из Swagger'а про rdata : «A relative date range for the report, such as `Today` or `LastWeek`». Ну будет в тестовом наборе `Today` и `LastWeek`. Это как-то поможет?

Почти везде типы ставят упрощённо. В примере на ABAP они тоже есть:

PARAMETERS: p_url type text1000 default '../index.htm',
            p_base64 type text1000 default 'aHR0cDovL3d3dy5zYXBkZXYuY28udWs='.

после слова type это тип.

Кстати, декларативное описание типа корректный ИНН хотелось бы посмотреть.

Там уже десятки лет рулят и педалят xml вообще без кода, код с аннотациями и аннотации на страницу, которыми настраивается вообще всё

Если не писать на лиспе, изобретёшь лисп в своей программе. Никогда не понимал зачем вместо программирования на нормальном языке программировать на интерпретаторе XML.

Как там на 1с? Можно функцию определить в переменную и передать куда-нибудь?

Конечно. Объект ОписаниеОповещения. Вместе с функцией даже произвольные данные прицепить можно.

Аннотации завезли?

Есть &НаСервере, &НаКлиенте, &НаСервереБезКонтекста и ещё пачка.

Классы есть какие-нибудь?

Конечно. Через Обработки.МойКласс.Создать(). Если статический (без полей объекта), то можно общий модуль как класс использовать.

Рефлексия?

Конечно. У любого объекта можно вытащить его тип, его поля, их типы, формы, ... Объект.Метаданные().Имя, Объект.Метаданные().Реквизиты, ...

monk ★★★★★
()
Ответ на: комментарий от crutch_master

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

Потому что сколько я видел XSD, там в качестве ИНН стояло «строка с длиной от 10 до 12». И Swagger как пример произвольной строки вместо перечисления.

Нормальные типы я видел в Racket.

> map
- : (All (c a b ...)
      (case->
       (-> (-> a c) (Pairof a (Listof a)) (Pairof c (Listof c)))
       (-> (-> a b ... b c) (Listof a) (Listof b) ... b (Listof c))))

Но не будучи математиком гораздо проще воспринимается "(map proc lst ...+) applies proc to the elements of the lsts from the first elements to the last. The proc argument must accept the same number of arguments as the number of supplied lsts, and all lsts must have the same number of elements. The result is a list containing each result of proc in order.". А по-русски воспринимается ещё проще.

monk ★★★★★
()

«ХАЧУ ВСЕ ЗНАТЬ».
Где обещанные исходники?

Владимир

anonymous
()
Ответ на: комментарий от monk

Тестовый набор там есть в виде значений по-умолчанию.

Там это где? Где оно значение? Ну да. Оно не особо поможет.

«A relative date range for the report, such as `Today` or `LastWeek`». Ну будет в тестовом наборе `Today` и `LastWeek`. Это как-то поможет?

Почему только today и lastWeek? Тестовый набор должен покрывать как минимум валидный ввод иначе это вообще никуда не годится.

Почти везде типы ставят упрощённо.

Типы - это вообще не про это. Это просто метод хранения. Целое положительное может быть и float. Я говорю о механизмах поверх типов.

Кстати, декларативное описание типа корректный ИНН хотелось бы посмотреть.

Что на него смотреть, ты сам только что его описал. Т.е. inn или string/inn, где inn - ссылка на функцию, которая его проверяет, как вариант. Из аннотаций и тестов в функции inn вытаскиваешь что надо, засовываешь в документацию и подписываешь, что вот, мол нужна на входе string (строка) длинной 10 или 12 символов (это можно указать в каких-нибудь аннотациях) функция проверки там-то, алгоритм там-то, пример валидных, пример кривых, если кому-то надо это будет переписывать.

Если не писать на лиспе, изобретёшь лисп в своей программе. Никогда не понимал зачем вместо программирования на нормальном языке программировать на интерпретаторе XML.

Наверное потому что лисп не слишком удобоварим. Хотя сейчас есть Scala, Clojure и прочие, вроде что-то пишут.

Есть &НаСервере, &НаКлиенте, &НаСервереБезКонтекста и ещё пачка.

А произвольные?

Конечно. У любого объекта можно вытащить его тип, его поля, их типы, формы

И что? Это всё равно настолько всё бесполезное, что нельзя на лету сгенерировать документацию и всё еще надо зарывать куда-то в код портянки с комментариями в таком-то году?

crutch_master ★★★★★
()
Ответ на: комментарий от monk

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

Серьёзно? Как бы там живёте без массивов, enum и перегрузок?

crutch_master ★★★★★
()
Ответ на: комментарий от monk

Потому что сколько я видел XSD

Это не делается в XSD или подобных. Тут всё-таки код какой-то нужен для проверки. Но ничего не мешает зааннотировать кусок кода.

crutch_master ★★★★★
()
Ответ на: комментарий от anonymous

Как-то обсуждаю с моим начальником один вопрос.
Он мне и говорит - «Вы сто раз правы, но сделайте по моему».
Такова селяви.

monk посмейся.

Сегодня мне начальник дал указание - «При вводе даты начала действия норм задайте вопрос - „Подтвердите введенную дату“».
На мое замечание, что проведение документа является подтверждением введенных данных он сказал - «Сделайте как я сказал».

А на habr.com вечно пишут о том «Как космические корабли бороздят Большой Театр».

В жизни все по другому.

Как вы думаете обсуждал ли с начальником хоть раз полезность использования объектных мета баз данных?

Скажу «по секрету» в проектах они используются, но разработал их
не Владимир, а некий профессионал одно имя которого нужно говорить на «придохе».

«Так и живем ... Скучать не приходится.».

Владимир

anonymous
()
Ответ на: комментарий от anonymous

Честно говоря мне жаловаться не чего.
Почему?
Потому что в рабочее время могу «Бороздить Большой Театр».
И получается так - «И Вовка сытый и начальник довольный».

Владимир

anonymous
()
Ответ на: комментарий от crutch_master

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

Как должен выглядеть тестовый набор для типа «простое число»? Все возможные простые числа?

Т.е. inn или string/inn, где inn - ссылка на функцию, которая его проверяет, как вариант.

Вот это и приходится писать словами. И хорошо, если валидирующая функция возможна. Для какого-нибудь map или compose сможешь валидатор описать?

Наверное потому что лисп не слишком удобоварим.

Так XML ещё меньше удобоварим.

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text"/>
    <xsl:template match="/">
        <xsl:apply-templates>
        </xsl:apply-templates>
    </xsl:template>

    <xsl:template match="factorial" name="factorial">
        <xsl:param name="n" select="@n" />
        <xsl:param name="f" select="1" />
        <xsl:if test="$n &gt; 1">
            <xsl:call-template name="factorial">
                <xsl:with-param name="n">
                    <xsl:value-of select="$n - 1" />
                </xsl:with-param>
                <xsl:with-param name="f">
                    <xsl:value-of select="$f * $n" />
                </xsl:with-param>
            </xsl:call-template>
        </xsl:if>
        <xsl:if test="$n = 1">
            <xsl:value-of select="$f" />
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>

гораздо хуже читается, чем

function factorial (f, n)
{
  if (n > 1) 
    return factorial(f*n, n-1); 
  else 
    return f
}

и даже чем

(defun factorial (f n)
  (if (> n 1)
      (factorial (* f n) (- n 1))
      f))

monk ★★★★★
()
Ответ на: комментарий от crutch_master

Как бы там живёте без массивов, enum и перегрузок?

Там всё это есть. Но для динамически определяемого списка полей enum не напишешь. Строка со списком вместо массива потому что литеральных массивов там нет, а определять каждый раз массив ради передачи списка полей просто глупо.

monk ★★★★★
()
Ответ на: комментарий от anonymous

На мое замечание, что проведение документа является подтверждением введенных данных он сказал - «Сделайте как я сказал».

Тут он прав. Проведение документа не более подтверждение, чем переход по ссылке. А подтверждение по крайней мере заставит человека несколько секунд подумать.

Мы на изменения задним числом вообще вешали окошко с требованием ввести строку «я полностью уверен».

monk ★★★★★
()
Ответ на: комментарий от crutch_master

Это всё равно настолько всё бесполезное, что нельзя на лету сгенерировать документацию и всё еще надо зарывать куда-то в код портянки с комментариями в таком-то году?

Комментарии не про поля и их типы, а про алгоритмы и обоснование этих алгоритмов. Та документация, которую можно собрать по рефлексии вообще не нужна. Она и так очевидна по коду. А вот информация, что алгоритм определяется каким-нибудь RFC или приказом ФНС очень важна. И её невозможно получить рефлексией.

monk ★★★★★
()
Ответ на: комментарий от monk

Мы на изменения задним числом вообще вешали окошко с требованием ввести строку «я полностью уверен».

Ээ.
У меня реализована «Подсистема прав», которая для каждого объекта 1С и для каждого пользователя содержит метаданные об правах /и не только/.
Ни где в коде нет ни одной строчки проверки прав.
Все права проверяются ни программистом, а «Подсистемой прав».
Некоторым пользователям разрешено «нарушить права» /через подтверждение/, другим даже вопрос не задается
/просто уведомляется, что на выполнение данных действий у них не прав/.

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

Так что ваш совет по своему правильный.
Ведь ранее не рассказывал о наличии подсистемы прав ...

«Все под колпаком».

Владимир

anonymous
()
Ответ на: комментарий от monk

Как должен выглядеть тестовый набор для типа «простое число»? Все возможные простые числа?

Я ожидал этот вопрос. Нет конечно, что перебирать нужно и реально.

Вот это и приходится писать словами. И хорошо, если валидирующая функция возможна.

Но зачем? Любой javadoc, например, это может сделать по передаваемому типу. Если там передаётся класс инн и так понятно, что это такое будет. Если упарываться по декларативщине, так там будет такой же набор функций с нормальным описанием, которое цепляется откуда-нибудь. Зачем тащить всё это в код?

Для какого-нибудь map или compose сможешь валидатор описать?

А шо это такое?

Так XML ещё меньше удобоварим.

Так им и не описывают никогда (ну, почти никогда) императивщину. Она вся в классах по ссылкам.

Но для динамически определяемого списка полей enum не напишешь.

Да ну и хрен с ним. Есть класс, в нём ассоциативный массив функций, такой же массив с параметрами для них, где находятся велоenum'ы в виде строк из списков через запятую.

А вот информация, что алгоритм определяется каким-нибудь RFC или приказом ФНС очень важна. И её невозможно получить рефлексией.

Почему? Также засовывается в переменную/таблицу/список/куда там её можно засунуть.

crutch_master ★★★★★
()
Ответ на: комментарий от anonymous

У меня реализована «Подсистема прав», которая для каждого объекта 1С и для каждого пользователя содержит метаданные об правах /и не только/.

Да много чего «поверх» 1С функционирует ...
1С и не подозревает /как в песне «А город подумал, а город подумал ученья идут»/.

Владимир

anonymous
()
Ответ на: комментарий от monk

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

01.06.2017 Начальник сказал сделать так.
03.06.2017 Сказал всё херня, сделал обратно.

12.08.2017 Был срач с товарищем N он настоял, чтобы было сделано так. Полная херня, будет один головняк.

05.04.2017 Коллегиально решили сделать так по весомым причинам (список причин)
Типа тоже важная информация да, но в коде такому не место.

crutch_master ★★★★★
()
Ответ на: комментарий от monk

Строка со списком вместо массива потому что литеральных массивов там нет

Вот, кстати и почему бы не приделать какой-нибудь lua или js. Сделать автозамену ключевых слов и обёртки для встроенных прототипов на кирилические, назвать это 1с-луа и 1c-жс. В js, кстати, можно переменные в utf.

crutch_master ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.