Одна вещь, которая меня действительно сбивает с толку, заключается в том, что автозавершение кода в Pharo предлагает мне методы, которые не понимаются объектом моего класса.
Например, предположим, что я создаю класс Dog
с тремя методами: eat
, sleep
и bark
. Автозавершение кода в Pharo предложит мне найти собственные значения и собственные векторы этой собаки. Потому что PMMatrix
знает, что такое собственные значения. Итак, этот метод существует в системе, и он будет предложен, даже если он не имеет ничего общего с моим Dog
.
Я думаю, что это очень важно изменить, потому что каждый раз, когда мы используем какой-либо класс, нам нужно знать его общедоступный интерфейс. А открытие обозревателя системы каждый раз, когда вам нужно, отнимает много времени и отвлекает.
Кстати, было бы очень хорошо, если бы автозавершение кода не предлагало методы, помеченные как private
.
Таким образом, в этом случае автозавершение кода должно предлагать eat
, sleep
и bark
, но не digestFood
, потому что это частный метод. initialize
также не следует предлагать, потому что он неявно вызывается new
. Но я не знаю, как это реализовать.