Под катом рассказ о самой авангардной форме архитектуры которую мне с коллегами удалось получить, как ещё больше можно развить этот подход.
DDD не на коленке, а за дорого ;)
User
Под катом рассказ о самой авангардной форме архитектуры которую мне с коллегами удалось получить, как ещё больше можно развить этот подход.
DDD не на коленке, а за дорого ;)
От переводчика: мне понравился подход к объяснению декораторов, описанный в этой статье, а так как других вариантов перевода я не нашёл, я решил поделиться этим с аудиторией Хабра. Надеюсь что этот текст будет полезен как новичкам, так и опытным программистам.
Если вы программируете на языке Python, вы должны были слышать о декораторах, однако существует много людей, которые либо не знакомы с ними, либо, что еще хуже, знакомы с ними (использовали так или иначе), но так и не поняли их суть.
Цель этого краткого руководства — развеять мифы, которые вы слышали о декораторах, и показать вам другие их стороны, о которых вы и не подозревали.
Опыт показывает, что разработчики редко задумываются о проблемах, которые могут возникать при многопользовательском доступе к данным. При этом практически любое web-приложение является многопользовательским и так или иначе использует блокировки при доступе к данным в БД. При неправильном использовании эти блокировки могут больно бить по пользователям, а иногда и по системе в целом. Поэтому рано или поздно каждый разработчик многопользовательских систем должен задуматься о том, как ему начать работать с БД так, чтобы пользователи не мешали другу другу. Многие считают, что это сложно, давайте вместе убедимся, что это не так.
Эта статья является переводом материала «What is functional programming?».
В этой статье Владимир Хориков попытается ответить на вопрос: что такое функциональное программирование?
Итак, что такое функциональное программирование? Этот термин возникает довольно часто, и каждый автор, пишущий о нем, дает собственное объяснение. На взгляд автора оригинала, самым простым и в то же время точным определением является следующее: функциональное программирование - это программирование с математическими функциями.
Математические функции не являются методами в программном смысле. Хотя мы иногда используем слова «метод» и «функция» как синонимы, с точки зрения функционального программирования это разные понятия. Математическую функцию лучше всего рассматривать как канал (pipe), преобразующий любое значение, которое мы передаем, в другое значение
Чтобы создать что-то по-настоящему новое, порой достаточно сделать первый шаг: выйти из плоскости.
Начну этот рассказ с краткого отступления – истории, изложенной в книге «Код» Чарльза Петцольда.
Луи Брайль (1809 - 1852), знаменитый автор шрифта для слепых, от рождения слеп не был. Отец Брайля работал шорником, и девятилетний ребенок случайно попал себе в глаз острым инструментом, играя в отцовской мастерской. На один глаз он ослеп сразу, но затем инфекция быстро перекинулась и на второй глаз, в результате чего Луи полностью утратил зрение и оказался в парижском приюте Валентина Гаюи (1745 - 1822), который в 1784 году основал в Париже «Мастерскую трудящихся слепых», а в 1806-1818 годах занимался аналогичной работой в Санкт-Петербурге.
Именно Валентин Гаюи впервые попытался разработать тактильный шрифт для слепых. Он делал рельефные отпечатки латинских букв, которые затем должны были на ощупь изучать его воспитанники. Тем не менее, эта система оказалась малоэффективной и непонятной, поскольку Гаюи не смог поставить себя на место слепого человека, вообще не представляющего, что такое визуальное восприятие буквы. Система Брайля, сделанная ослепшим для слепых, оказалась гораздо более эффективной и семантически насыщенной, чем изобретение его учителя.
Прим. переводчика: само правило достаточно старое, да и пример, приведенный в статье - на мой взгляд самый простой. Поэтому статья подойдет скорее для новичков, люди с хорошим опытом написания автотестов, возможно, не найдут для себя ничего нового.
Большинство присутствующих в аудитории поднимают руки
Information