Ломающие изменения в C#.NStar Alpha
Запись от Etyuhibosecyu размещена 20.11.2025 в 09:37
Показов 6562
Комментарии 0
Уже можно не только тестировать, но и пользоваться C#.NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом языке и уже содержит изображения и разворачивается на весь экран. Да, язык пока не ООП, так как нет полиморфизма, но над этим идет активная работа. И я решил, что с полиморфизмом, использованием перечислений, а также с файлами и потоками это будет уже версия Alpha, а не Pre-Alpha, возможно, даже раньше, чем Alpha-версия Lineedge. А значит, как раз время серьезно задуматься над руководством по стилю кода, чтобы не писали кто как хочет. Кроме того, пока C#.NStar не вошел в стадию "живет с наследием", поэтому нет ограничений на ломающие изменения, а вот в C#.NStar Beta они уже, вероятно, появятся. Поэтому я ввожу систему крахов, ошибок и предупреждений при обнаружении очевидно неприемлемых паттернов в коде.Крахи- Более 5 отступов. - Более 5 подавленных отступов. - Функция короче 3 содержательных действий - пустые строки, переносы, пустые блоки, объявления неиспользуемых переменных и копирование переменных ( var y = x;, если y больше нигде не присваивается значение) содержательными действиями не считаются (отключается директивой #pragma test, которая также отключает публичные объявления). Для объявления коротких действий, таких как Max(), будет новая конструкция, но подробнее - пока секрет.- Рекурсивная функция без нового ключевого слова recursive.Ошибки- Две пустых строки подряд. - Неуместная пустая строка (например, рядом с фигурной скобкой или в середине выражения). - Два пробела подряд (для отступов используйте табуляцию). Предупреждения- Хотя бы один подавленный отступ. - Строка длиннее 128 символов (отступ считается за 4 символа). - Функция длиннее 128 строк. - Функция содержит прямую и косвенную рекурсию одновременно (даже с ключевым словом recursive).- Имя любой конструкции из одного символа, кроме i, j, k, n, T, x, y, z и собственных операторов языка и фундаментальных констант, таких как E (отключается директивой #pragma test).- Имя любой конструкции из множества одинаковых символов (отключается директивой #pragma test).- Класс, объявленный со словом Class, содержащий более 16 функций. В качестве альтернативы - новое ключевое слово Megaclass, автоматически делающее класс статическим.- Класс, объявленный со словом Megaclass, содержащий менее 8 функций.- Программа, содержащая более 8 классов. В будущем слово "программа" будет заменено на "сборка". - Точка с запятой в середине строки (цикл for в моем языке ее не содержит). - Имя типа, функции, метода, свойства, кроме приватных и/или защищенных, лямбда-выражения, списка или словаря лямбда-выражений, начинающееся со строчной буквы. - Три и более уровней вложенных типов. Надеюсь, я сам смогу следовать этим правилам при написании транслятора C#.NStar на этом же языке. |
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии


