ДЛЯ НОВИЧКОВНЕ ДЛЯ НОВИЧКОВНЕ ОБЯЗАТЕЛЬНОВ РАЗРАБОТКЕ
Разработчику
Архитектору
Чек-лист самопроверки
- Что такое Smalltalk и когда он был создан?
- Кто являются авторами Smalltalk (Алан Кэй, Дэн Ингаллс и др.)?
- Почему Smalltalk считается чисто объектно-ориентированным языком?
- Что означает утверждение «всё в Smalltalk — объект»?
- Какие объекты существуют в Smalltalk: числа, строки, классы, методы?
- Что такое «образ» (image) в контексте Smalltalk?
- Как сохраняется и загружается состояние программы в Smalltalk?
- Что такое виртуальная машина Smalltalk и как она работает?
- Как устроен синтаксис Smalltalk? Сколько базовых конструкций он содержит?
- Что такое литералы в Smalltalk и какие виды бывают (числа, строки, массивы, символы)?
- Что такое символ (
#symbol) и чем он отличается от строки?
- Как отправляется сообщение объекту в Smalltalk?
- Какие три типа сообщений существуют (унарные, бинарные, ключевые)?
- В каком порядке обрабатываются сообщения при отсутствии скобок?
- Что такое приоритет операторов в Smalltalk?
- Как объявляется и вызывается блок кода (аналог лямбды)?
- Как передаются аргументы в блок?
- Что такое временные переменные и как они объявляются?
- Как работают условные выражения (
ifTrue:, ifFalse:, ifTrue:ifFalse:)?
- Как реализуются циклы в Smalltalk (через сообщения
timesRepeat:, to:do:, whileTrue:)?
- Что такое класс и как он определяется?
- Как создаётся экземпляр класса?
- Что такое метакласс и зачем он нужен?
- Как определяется метод в Smalltalk?
- Что такое селектор метода?
- Как работает наследование в Smalltalk?
- Что такое суперкласс и подкласс?
- Как вызвать метод родительского класса (
super)?
- Что такое полиморфизм в контексте Smalltalk?
- Как Smalltalk обрабатывает отправку сообщения объекту, у которого нет соответствующего метода?
- Что такое
doesNotUnderstand: и как его можно переопределить?
- Как работает сборка мусора в Smalltalk?
- Что такое рефлексия и как она реализована в Smalltalk?
- Как получить список методов объекта или класса?
- Как изменить поведение объекта во время выполнения?
- Что такое инспектор и как он используется?
- Что такое отладчик в среде Smalltalk и как он запускается?
- Как работает браузер классов?
- Что такое MVC и как он был впервые реализован в Smalltalk?
- Как организован пользовательский интерфейс в классических системах Smalltalk?
- Что такое Morphic и чем он отличается от MVC?
- Как загружать и использовать сторонние пакеты (например, через Metacello в Pharo)?
- Как пишутся unit-тесты в Smalltalk (фреймворк SUnit)?
- Что такое TDD и как он применяется в Smalltalk-средах?
- Как работает параллелизм в Smalltalk (процессы, семафоры)?
- Что такое
Delay и как его использовать для пауз?
- Как Smalltalk взаимодействует с внешним миром (файлы, сеть, FFI)?
- Можно ли вызывать код на C из Smalltalk? Как?
- Какие современные реализации Smalltalk существуют (Pharo, Squeak, VisualWorks)?
- Почему Smalltalk до сих пор изучают, несмотря на низкую популярность в индустрии?