Писк рабочий процесс - PullRequest
10 голосов
/ 18 июня 2011

Я новичок в Squeak и Smalltalk, но не программирую в целом (у меня есть некоторый опыт работы с Python).

Я понимаю различные инструменты, присутствующие в среде Squeak, такие как Рабочая область, Системный браузер, а такжеЯзыковые конструкции Smalltalk.Я понимаю, как они работают изолированно, но я не уверен, как их использовать в целом.

Мой вопрос - каков типичный рабочий процесс при разработке в Squeak.Насколько я понимаю,

I open squeak.
I create a Class in the System Browser.
I then write/test/execute code in the Workspace, adding methods 
to my class based on the code I tried out in the Workspace.
Rinse and repeat for other classes.

Как правило, вышеизложенным следуют мелкие разговоры или есть вещи, которые я пропустил.Также будут оценены другие общие советы / ошибки (если таковые имеются).

Спасибо.

Кстати, я искал об этом и прочитал некоторые учебные пособия, но не получил удовлетворительных ответов, так что нетlmgtfy ссылки, пожалуйста;)

Ответы [ 3 ]

9 голосов
/ 18 июня 2011

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

Но то, что вы описываете, является приемлемым вариантом. Особенно, если неясно, как вещи действительно сочетаются друг с другом. Smalltalk имеет силу, что у вас есть все объекты под рукой. Так что это можно попробовать в рабочей области. Если вы получили представление о том, как это должно работать, пришло время поместить ваш код в методы. В то же время это хорошая идея, чтобы написать тест. В рабочей области вы тестировали свой код с примерами значений. Это именно тест. Поскольку вы помещаете код без значений в метод, вы можете поместить тестирование этого метода с примерами значений. Тесты помогут вам распознать, изменили ли вы что-то фундаментальное во время конструирования всего этого.

Другой стиль разработки, который я использую, - это использование инспектора. Особенно, если вы выбираете вещи из сети, это довольно легко сделать. Допустим, вы получаете XML из веб-API из сети. В рабочей области я запускаю команду url fetching и открываю инспектор по результату. В инспекторе я начинаю анализировать результат и на каждом отдельном шаге обработки открываю другого инспектора для результата, пока не получу результат, который хотел бы получить. С этого момента все инспекторы накладываются друг на друга. Вы просто создаете методы для каждого инспектора, начиная с последнего шага, затем закрываете инспектора, берете следующего инспектора и создаете из него метод и т. Д.

Наконец, многие разработчики любят разрабатывать с помощью отладчика. Вы просто пишете код, как будто он уже существует. Вы можете изменить код, находясь в отладчике, и вы можете перезапустить текущее выполнение текущего метода. Выполнение этого дает вам следующий отладчик. Вы добавляете следующий необходимый метод и затем продолжаете программу. Вы получаете следующий отладчик и т. Д.

Вы видите, что существует множество возможных стилей. Но какой из них лучше, это ваше личное мнение.

6 голосов
/ 18 июня 2011

Я обычно работаю с тремя открытыми окнами: два браузера и TestRunner. Я пишу тест, чтобы выяснить, как я хочу общаться с объектом - его API, если хотите. Затем я запускаю TestRunner, чтобы убедиться, что тест не пройден по причинам, которые я ожидаю.

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

Иногда я буду использовать Рабочую область, главным образом, как своего рода блокнот, как можно использовать REPL в Python. Если вы написали метод #initialize на стороне класса, вы, вероятно, захотите повторно инициализировать свой класс из рабочей области.

4 голосов
/ 18 июня 2011

TDD также является опцией для разработки Smalltalk.Squeak поставляется с SUnit.

Вы можете объединить TDD и отладчик, запустив тест, который завершается ошибкой, потому что вы еще не написали метод, поэтому вы используете отладчик для создания метода, а затем входите в методи напишите достаточно кода, чтобы пройти тест.

...