(Mis), понимающий Smalltalk и TDD

Можете ли вы изменить логику разбивки на страницы?

Если да, вы можете поместить номер страницы в маршрут и использовать маршрут для разбивки данных на страницы, при этом вам не нужно прослушивать событие браузера слушателя. [ 115]

Пример (маршрутизация):

{ path: 'list/:page',      component: ExampleComponent },

ExampleComponent

constructor(private route:ActivatedRoute){}
ngOnInit(){
   this.route.params.subscribe( params => {
      this.currentPage = params['page'];
      this.updatePaginator();
      this.updateStorePaginator();
   });
}

Btn для изменения страницы:

<a routerLink="/list/5">Page 5</a>

Для обновления пути с изменением из paginator вы можете сделать это

<mat-paginator (page)="change($event)">
</mat-paginator>

change(e.page){
   this.router.parent.navigate(e.page);
}
7
задан Tordek 22 March 2009 в 06:07
поделиться

9 ответов

Хорошо, несколько частей здесь.

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

Во-вторых, часть причины, что это - Путь Smalltalk, - то, что Smalltalk, большим количеством способов, не как другие языки. Существует действительно, для всех практических целей, никакой способ сделать "отдельный" исполняемый файл Smalltalk: все, что можно сделать, делают изображение Smalltalk с некоторыми относительно маленькими фрагментами собственного кода включенным. Когда Вы пишете код с помощью внешнего редактора, как с синтаксисом Вы показываете, Вы - буквально просто рука, вводящая импорт/формат экспорта, который несколько легче вручить тип, чем XML. Но только несколько.

Мораль, сделайте это Smalltalk путь с браузерами.

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

На TDD Вы находитесь в удаче, потому что Smalltalk был первым местом для получения xUnit. Для Smalltalk это назвало SUnit, и здесь существует хорошее учебное руководство.

Вы используете утверждения там в том, что, кажется, в основном "дизайн контракта" подход. Была работа, сделанная на добавляющем дизайне контракта к Smalltalk, как здесь. Для простых утверждений можно добавить код как в этом ТАК вопрос.

assert: aBlock 
    "Throw an assertion error if aBlock does not evaluates to true."
    aBlock value
        ifFalse: [AssertionFailure signal: 'Assertion failed']
11
ответ дан 6 December 2019 в 05:49
поделиться

Я очень не хочу сказать это (потому что Вы ясно указали, что не хотите слышать его), но войдите в IDE. Попытка получить Вашу голову вокруг smalltalk, не используя IDE похожа на поездку в Париж и еду в Макдоналдсе. Несомненно, Вы находитесь в Париже, но Вы действительно не подвергаете себя тому, о чем это - все.

Ключевая вещь о smalltalk состоит в том, что это - все объекты. Полностью вниз (целые числа и символы являются объектами) и полностью (классы, методы, браузеры, сам IDE) все объекты. Если Вы настоите на том, чтобы бороться с ним, то у Вас будет почти столько же удачи сколько кто-то желающий изучить, как записать C путем перетаскивания вещей.

9
ответ дан 6 December 2019 в 05:49
поделиться

При загрузке Некоммерческого Cincom Smalltalk существует много учебных руководств онлайн. Запустите здесь:

http://www.cincomsmalltalk.com/userblogs/cincom/blogView?content=tutorials

При загрузке Писка запустите здесь:

http://wiki.squeak.org/squeak/792

И да, действительно необходимо использовать IDE для работы эффективно с Smalltalk.

На тестировании, загрузке SUnit. В Cincom Smalltalk это - загружаемый компонент; я покрыл загрузку (и использование) это в видео учебных руководствах, связанных выше. Я не совсем уверен, как загрузить его для Писка, или является ли это частью основы там, но это, конечно, доступно для него.

6
ответ дан 6 December 2019 в 05:49
поделиться

Так, об утверждает, Писк, который Smalltalk уже приносит Объекту>>, утверждает: Так, я предполагаю, что можно сделать:

self assert: self isNotEmpty.
self assert: result dimensions equal: (self height)@(anotherMatrix width)

При использовании GNU smalltalk это могло бы ответить, как сделать утверждения там: Smalltalk и Assertions

Niko

1
ответ дан 6 December 2019 в 05:49
поделиться

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

Хороший список ресурсов для новичка может быть найден в этом вопросе: https://stackoverflow.com/questions/481976/is-there-a-dive-into-smalltalk-book

3
ответ дан 6 December 2019 в 05:49
поделиться

Относительно утверждает, посмотрите на другой вопрос, недавно отправленный.

Относительно TDD, да, звоня gst-sunit -f matrix.st -f matrix-test.st BaseMatrixTests вид лучшего способа. Все остальное просто основывается на этом, например, они могли быть тобой альтернативы:

  • заставьте все подклассы TestCase для своего пакета наследоваться фальшивому подклассу так, чтобы можно было сказать AllMatrixTests* на командной строке GST-sunit (когда Вы добавляете больше тестов).
  • файл в matrix.st от матрицы-test.st, таким образом устраняя одну-f опцию.
  • создайте Make-файл и файл package.xml для создания .star файла для пакета, как описано здесь. Затем можно сделать просто gst-sunit -pMatrix.
1
ответ дан 6 December 2019 в 05:49
поделиться

Было предложено выше добавить #assert: кому: Object, а скорее я добавил бы #assert кому: BlockClosure (или безотносительно [] class находится в GNU Smalltalk).

assert
    this value ifFalse: [AssertionFailure signal: 'Assertion failed']

и таким образом используйте в качестве в

[ value notNil ] assert.
[ value > 0 ] assert.
[ list isEmpty not ] assert.

и так далее.

1
ответ дан 6 December 2019 в 05:49
поделиться

Краткая информация Smalltalk является введением в Основы Ориентированного на сообщение Программирования с Smalltalk

0
ответ дан 6 December 2019 в 05:49
поделиться

http://stores.lulu.com/store.php?fAcctID=2748699 (Также вы найдете ссылку для скачивания pdf)

.
0
ответ дан 6 December 2019 в 05:49
поделиться
Другие вопросы по тегам:

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