def utf8len(s):
return len(s.encode('utf-8'))
Отлично работает в Python 2 и 3.
Некоторые вопросы вы можете найти, выполнив поиск по тегам доменно-ориентированный дизайн или ddd здесь, в SO. Книга Эрика Эванса также дает хорошее представление о некоторых ситуациях, с которыми вы можете столкнуться.
Одно важное замечание: ddd похож на тесты в том аспекте, что он увеличивает время разработки новых функций, но повышает качество (и, следовательно, снижает разработку время в долгосрочной перспективе). Возможно, вам понадобится постоянный контакт с экспертами в предметной области, чтобы вы могли уточнять модель каждый раз, когда возникает проблема.
ИМХО, самая важная проблема ddd - это наличие хорошей, значимой предметной области.
По моему опыту, одно из главных правил - « Постройте универсальный язык ». Не забывайте об этом, это один из самых ценных аспектов, который DDD предоставляет в процессе разработки. С сильным и повсеместно распространенным языком приходит значимая область и общее видение проблемы, что очень помогает.
Мое второе правило: « Модель только одна »: не моделируйте данные, объекты, классы, таблицы ... просто обращайтесь к предметной области модели, все остальное должно быть получено естественным образом из В этой модели нет разрыва между классом UML в модели и классом Java (или языком, который вы используете).