В редкие-прередкие свободные минутки делаю универсальный программный фреймворк, который:
а) неограниченно масштабируется по горизонтали (число клиентов, серверов, БД);
б) неограниченно масштабируется по вертикали (n-tiers/n-layers; хотя количество tiers/физики в противоположность layers/логике надо по-хорошему
минимизировать);
в) легок и крайне прост в использовании;
г) позволяет применять при обработке прикладной логики любые механизмы, функциональное/мета/DSL-программирование итп;
д) кросс-платформен (достаточно трех паттернов: на c# для win/.net/mono; на java как универсальная версия; на delphi для standalone, win/ios, мобилок/планшетов);
е) главное, тотальное принуждение этим фреймворком к low coupling через развязки между всем чем только можно.
Один такой, умник)) уже нашелся:
CSLA.NET. Однако он не делает явный акцент на наиболее важном пункте е) (который Мартин Фаулер вроде еще в 2006-м обозвал "самым главным в проектировании"), хотя и упоминает несколько раз, что "minimizing coupling at the syntactic level is absolutely critical" и "semantic coupling is the harder part of the problem", обещая тут "next big thing".
Но пока главный вредитель на этом пути -- это
яндексовский пунтосвичер!
Делаю прототип на delphi xe3, и при закрытии программы она постоянно вылетает из-за конфликта с раскладчиком клавиатуры: