Где я могу найти активно разработанный инструмент линта для Ruby?

Я ценил ответы knox и david. Мой ответ будет где-нибудь между их: просто сделайте формы, которые не должны быть отлажены !

я думаю, что формы должны исключительно использоваться в качестве, что они в основном, имея в виду графический интерфейс [только 1 112] , означая здесь, что они не должны быть отлажены! Задание отладки тогда ограничено Вашими модулями VBA и объектами, который намного легче обработать.

существует, конечно, естественное стремление для добавления кода VBA к формам и/или средствам управления, особенно когда Доступ предлагает Вам их большие "после Обновления" и "на изменении" события, но я определенно советую Вам не помещать любую форму или управлять определенным кодом в модуле формы. Это делает дальнейшее обслуживание и обновление очень costy, где Ваш код разделяется между модулями VBA и модулями форм/средств управления.

Это не означает, что Вы не можете больше использовать этот AfterUpdate событие! Просто поместите стандартный код в конечном счете, как это:

Private Sub myControl_AfterUpdate()  
    CTLAfterUpdate myControl
    On Error Resume Next
    Eval ("CTLAfterUpdate_MyForm()")
    On Error GoTo 0  
End sub

, Где:

  • CTLAfterUpdate стандартная процедура, работает каждый раз, когда управление обновляется в форме

  • CTLAfterUpdateMyForm, конкретная процедура, работает каждый раз, когда управление обновляется на MyForm

, у меня есть тогда 2 модуля. Первый -

  • utilityFormEvents
    , где у меня будет свой CTLAfterUpdate универсальным событием

, второй -

  • MyAppFormEvents
    содержащий определенный код всех определенных форм приложения MyApp и включая процедуру CTLAfterUpdateMyForm. Конечно, CTLAfterUpdateMyForm не мог бы существовать, если нет никакого определенного кода для выполнения. Поэтому мы поворачиваемся "На ошибке" для "возобновления затем"...

Выбор такого универсального решения означает много. Это означает достижение высокого уровня нормализации кода (значение безболезненного обслуживания кода). И то, когда Вы говорите, что у Вас нет определенного для формы кода, это также означает, что модули формы полностью стандартизированы, и их производство может быть , автоматизировало : просто скажите, какими событиями Вы хотите управлять на уровне формы/управления и определить Вашу универсальную терминологию / терминологию конкретных процедур.
Запись Ваш код автоматизации, раз и навсегда.
требуется несколько дней работы, но это дает захватывающие результаты. Я использовал это решение в течение прошлых 2 лет, и это - ясно правильное: мои формы полностью и автоматически созданы с нуля с "Таблицей Форм", связаны с "Таблицей Средств управления".
я могу тогда провести свое время, работая над конкретными процедурами формы, если таковые имеются.

нормализация Кода, даже с Доступом MS, является долгим процессом. Но это действительно стоит боли!

38
задан the Tin Man 14 April 2017 в 16:10
поделиться

5 ответов

Вы можете попробовать Diamondback Ruby . Он выполняет статическую проверку типов кода Ruby и, таким образом, обвиняет вас в использовании неопределенной переменной.

Хотя DRuby является продолжающимся исследовательским проектом, он уже достаточно хорошо работает для небольших автономных сценариев Ruby. В настоящее время он не может анализировать большую часть стандартной библиотеки Ruby «из коробки». В настоящее время они работают над типизацией Ruby on Rails (см. Их последние статьи ).

13
ответ дан 27 November 2019 в 03:42
поделиться
  • ruby ​​-c myfile.rb проверит правильность синтаксиса Ruby.
  • Reek проверяет код Ruby на наличие общих запахов кода.
  • Руди проверяет код Ruby на предмет общих проблем объектно-ориентированного проектирования.
  • Flog может предупредить вас о необычно сложном коде.

[Plug] Если ваш проект находится в общедоступном репозитории Github, Caliper может запускать последние три инструмента и другие инструменты в вашем коде каждый раз при фиксации. (Отказ от ответственности: я работаю над суппортом)

24
ответ дан 27 November 2019 в 03:42
поделиться

Да. Test :: Unit

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

Итак, для записи см. Test :: Unit в стандартной библиотеке Ruby или в одной из других сред тестирования.

Наличие модульных тестов, которые вы можете запускать и повторно запускать, - лучший способ выявлять ошибки, и вам действительно нужно их больше (тесты, а не ошибки :-) в динамических языках, таких как Ruby ...

5
ответ дан 27 November 2019 в 03:42
поделиться
avdi@lazarus:~$ irb
>> a = 20
=> 20
>> b = 30
=> 30
>> puts c
NameError: undefined local variable or method `c' for main:Object
        from (irb):3
>>

Итак, инструмент называется "IRB". Получу ли я награду?

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

-1
ответ дан 27 November 2019 в 03:42
поделиться

Ну, здесь нет предложения order_by, поэтому мне интересно, что вы имеете в виду под словом «последний». Предполагая, что вы имели в виду «последний добавленный»,

Valor.objects.filter(robot=r).order_by('-id')[0]

может сработать за вас.

любому редактору, который пытается идентифицировать несуществующие переменные / методы, потребуется загружать большую часть всей среды и постоянно тестировать несколько программных путей, чтобы получить точные результаты «достоверности». Это намного сложнее, чем в Java, где почти все программирование статично (по крайней мере, так было, когда я сбросил эту шляпу).

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

11
ответ дан 27 November 2019 в 03:42
поделиться
Другие вопросы по тегам:

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