пятница, 20 марта 2009 г.

Идея и некоторые тезисы курса по ГМ и Smalltalk

Логика примерно такая:

Гибкие методологии --- это хорошо. Поэтому их надо применять. Применять можно на разных уровнях. Базовый уровень --- программистский. Здесь работает Test-Driven Development.

Чтобы эффективно применять TDD, нужны соответствующие средства. Mainstream-овые языки на эту роль подходят не очень хорошо. С динамическими скриптовыми языками (которые тоже потихонечьку смываются в главный поток) дела, наверное, получше, но и у них многовато недостатков. В применении к ГМ на сегодняшний день Smalltalk --- (как минимум) одно из лучших решений. Поэтому будем его изучать.

Эти мысли излагаются на первых двух--трех лекциях. Далее "вперемжку" (!) небольшими кусками излагаются основы программирования на Smalltalk и Test-Driven Development.

Примечание 1. Про гибкие методологии



Гибкие методологии --- не очень адекватный перевод терамина Agile methodology.

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

Идея agile --- практически обратная: простота, достаточная для конкретного узкого применения. Но простота "правильная", позволяющая приспособить код к новым задачам. Делать это предполагается программно и без серьезного усложнения кода --- по крайней мере, без претензий на то, что наш код будет без изменений работать для любых задач. Другими словами, в основе agile лежит осознание того факта, что написать универсальный код неимоверно (или по крайней мере, слишком) сложно, и мы лучше напишем просто работающий код, но будем готовы его изменять под новые задачи.

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


Примечание 2. Про скриптовые динамические языки программирования



Тезис по поводу скриптовых языков требует проработки и обоснования. Однако отсутствие единой среды разработки и выполнения --- уже весьма существенный "минус" (по крайней мере для разработки более-менее крупных систем).


Примечание 3. Почему Smalltalk?



Собственно, цель курса и состоит в том, чтобы ответ на этот вопрос был бы понят и прочувствован.

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

вторник, 10 марта 2009 г.

Отложенные ошибки

Коллега предложил очень интересную идею, которую тоже можно рассмотреть в рамках курсовой.

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

Особенно актуально для Web...

MVC(P) для Seaside, Pier

Ссылки по теме: 

суббота, 7 марта 2009 г.

Content Management Systems

Цель --- разработка Web-сайтов на Smalltalk.
Задачи:
  • преимущества и недостатки Pier относительно других CMS
  • что хорошо и что не очень хорошо в устройстве Pier
  • перенос Pier в VisualWorks
  • разработка своей CMS

О чем и для кого этот блог

Здесь я буду писать о
  • языке программирования Smalltalk и соответствующих средах
  • методологии Test-Driven Development (TDD)
  • о том, как TDD работает в Smalltalk
  • о "смежных" вопросах
Для кого я буду это писать:
  • для себя --- чтобы не забыть и, надеюсь, когда-нибудь использовать эти записи
  • для студентов, которых мне доведется учить
  • для всех интересующихся указанными вопросами
Замечание: весьма вероятно, этот пост будет модифицироваться в будущем...