Функция или свойство

Во многих современных языках есть возможность создавать для объектов свойства: публичные поля, которые с точки зрения пользователя выглядят и работают как простые переменные, но к которым в объекте можно привязать обработчики на чтение и запись значений (getter'ы и setter'ы). Отсюда следует, что свойство, у которого есть только доступ на чтение, ...

Публичные конструкторы ни в чем не виноваты

Сергей Осипчук попросил меня прокомментировать свою статью про зло, заключенное в публичных конструкторах. Я решил это сделать отдельной статьей потому что кратко вряд ли получится, да и многим, думаю будет интересно. Итак, Сергей говорит о том, что публичные конструкторы классов побуждают программиста создавать непосредственно объекты классов с помощью явно заданных ...

lesscode.org

Simon Willison прорекламировал у себя на блоге новый проект: lesscode.org. Это место, в котором обсуждаются набирающие популярность подходы к проектированию систем, построенные в первую очередь на простоте. В последнее время все чаще наталкиваюсь на противопоставление двух подходов к проектированию программных систем: Большие серьезные фреймворки, мощные серверы БД, долгое и обстоятельное ...

Когда сделать функцию

Как учит нас Мартин Фаулер в книжке "Рефакторинг", функции в программе должны быть достаточно короткими, выполнять одно логически связное действие. Однако, сколько это - "достаточно" - универсально сказать нельзя. Понятно, что, стремясь к краткости, можно быстро удариться в маразм и оформлять функцию для каждого оператора :-). Я сегодня сформулировал для ...

Джоэл об Exception'ах

Джоэл Спольски снова наехал на exception'ы (они же — исключения) :-). Кто не в курсе, некоторое время назад он уже писал, почему, по его мнению, exception'ы — это плохо. К его мнению присоединился знаменитый программист из Microsoft Реймонд Чен. Однако, похоже, что весь остальной интернет против :-). Если интересно, можно ...

Универсальные системы

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