Обновить
59

Пользователь

2
Рейтинг
16
Подписчики
Отправить сообщение
когда речь заходит о DSL'ях, вспоминается байка:
С востока люди пришли на землю Сеннаар (в нижнем течении Тигра и Евфрата), где решили построить город (Вавилон) и башню высотой до небес, чтобы «сделать себе имя». Строительство башни было прервано Богом, который создал новые языки для разных людей, из-за чего они перестали понимать друг друга, не могли продолжать строительство города и башни и рассеялись по всей земле. [1]
как вы считаете, грозит-ли подобная участь многоязыкому YouTrack, и если нет, то — почему? )

какие KPI можете посоветовать для управления такой разработкой — в каких случаях стоит писать DSL, и это будет оправдано, а в каких нужно сказать «стоп» и тупо кодить?
Выстраивание иерахрии это и есть часть самоорганизации систем. Таким образом решаются проблемы эффективности и выживаемости. В «плоских» системах количество потенциальных связей слишком велико, в результате чего возрастают расходы на их поддержание. Как «лапша» в коде. Модульность и иерархия, образующие структуры, появляются естественным образом, с целью минимизации связей, установки границ распространения дефектов, и оптимизации информационного обмена.
просто взял и стартовал проект.

По-моему это пример очень правильной подачи материала. Рай и впрямь можно доверить хоть ангелу, хоть чёрту — заморочка лишь в степени рисков. :) А в данной истории может нет ничего волшебного. Вероятно, весь фокус кроется в опыте лирического героя.

Похожий сценарий был весьма популярен ещё в советских книжках, когда какой-нибудь отставной генерал приходил на завод и за день чудесным образом налаживал там процессы. :) Так и тут, этот хитровывернутый мастадонт ведь не совсем чтобы вот так сразу пришел туда, с улицы, чтобы чего-нибудь там по-разрабатывать. По его же словам, у него там куча давних знакомых в верхах, с которыми он поддерживает связь на протяжении лет 20-ти. За плечами работа в крупных компаниях над R&D проектами, отработанное целеполагание, поставленное проектное мышление и т.д. и т.п. Не студент, короче. Дальше всё очевидно.

Что касается разработчиков, то самоорганизация и свобода выбора, заявленные тут как чудо, на самом деле у них врождённые. Надоел проект, ищут что по душе и уходят работать в другую компанию. Прикольно, что они нашли способ, как замкнуть эту миграцию внутри себя. Но вряд-ли это означает анархию. Скорее, система похожа на грядку, где помидоры считают, что они растут сами собой. ;)
тогда по логике в nginx должно быть аналогичное условие. что-то типа:
    location / {
         if ($request_method = GET) {
            default_type  "text/html; charset=utf-8";
            set $memcached_key "YOURSITE:1:$request_uri";
            memcached_pass unix:/tmp/memcached.sock;
            error_page 404 502 = @fallback;
            break;
        }
	try_files $uri @fallback;
    }
Если вы тоже используете less, не забудьте поставить node.js на сервер и сам компилятор
есть куча доводов против того, чтобы тащить средства разработки на продакшен.
а в целом, спасибо за статью, очень познавательно.
чтобы никто из аудитории не переключал нам слайды.

используйте HTTPS, чтобы не украли секретные ссылки снифером трафика. кажется, это просто www.piware.de/2011/01/creating-an-https-server-in-python/.
какие яйца? «длина списка» это свойство списка.
Тесты это инструмент. TDD — методология. Для того, чтобы ими эффективно пользоваться, необходимо учиться, вырабатывать навыки. Это как если вы всю жизнь ползаете на четвереньках, а затем решаете ходить на двух ногах — сначала передвигаться будет медленнее и набьете много шишек. Какие-то прежние привычки придетя забыть. Кто-то может решить, что такой вариант ему не подходит. Но шанс научится бегать есть у всех. :)
Вот, посмотри сюда. Синий график – это первый человек.
оси не подписаны — это не графики, а абстрактная живопись =) можете рефлексировать сколько влезет, рассуждая о том кто такие «красные» и «синие», но по сути статья ни о чём.
Да, всё действительно так просто! @decorator — просто синтаксический сахар для конструкций вида:
Декораторы — это просто pythonic-реализация паттерна проектирования «Декоратор».
второе утверждение не верное. пруф.

конечно, это перевод и придирка относится к оригинальному тексту.
SCM делает акценты на изменения. здесь удобнее работать не с хронологической историей коммитов, а со стеком патчей. например www.procode.org/stgit/
Только http method определяет не метод передачи данных, а указывает действие над ресурсом. поэтому, что вопросы, что ответы по данной теме в книжке — полная бессмыслица. :)
мы раньше использовали Mox, пока не наткнулись на flexmock. :)
Mox заставляет делать в тестах избыточные шаги .ReplayAll(), .VerifyAll(), что утомляет. если один из них не был вызван (например из-за того, что тестируемый код бросил непредвиденное исключение), то установленные моки могут протекать в последующие тесты, что вызывает трудно диагностируемые глюки. возможно, сейчас это всё уже не актуально. что касается функциональности, то функциональности flexmock мне хватает для повседневных нужд. не хватает, пожалуй только record'а.
У Mock синтаксис бесчеловечный. ╰_╯ Сложилось впечатление, что моки это один и тех редких случаев, где fluent интересы оказываются уместным. У нас прижился лишь flexmock.
мм… что конкретно? на данный момент есть pep-3333, описывающий инженерное решение заморочек для python3. т.е., если не впадать в научный креативизм (имею ввиду pep-0444 от Армина), можно сделать всё уже прямо сейчас.

не понятно, в чём проблема — в тройке есть и юникодные, и бинарные строки.
В питоне нормальные неймспейсы и система импортов, статические методы классов поэтому там редко когда нужны.

термин «статический метод» из ООП — это самостоятельная штука, которая ортогональна и неймспейсам, и модулям. в подмене одного понятия на другие нет причинно-следственной связи — они все абсолютно нормальные, в своих понятийных областях. ООП предлагает чёткий логический фреймворк для структурирования кода, и к каким последствиям приведёт такое замещение, предсказать сложно.

думаю, хорошим контр-примером здесь служит Django, которая очень активно пытается использовать систему питонячих модулей, для структурирования ООП-кода, и каким заморочкам это приводит на практике. мм. т.е. известно к каким — при таком подходе к зависимостям от интерфейса, добавляются зависимости от неймспейса (читай — конкретных библиотек) — в результате чего код намертво привязывается к конкретной реализации.
тогда прошу прощения, я не правильно понял тезис. вот только рельсы, в этом отношении, смотрятся ещё привлекательнее, за счёт более тесной интеграции с рубячей инфраструтурой (gems, rake и т.д.). :)
Django реально выматывает своей политикой релизов. с одной стороны, они вроде бы тащат за собой кучу deprecated и legacy кода, с другой — всё равно ломают обратную совместимость в самых неожиданных местах.

Информация

В рейтинге
1 922-й
Зарегистрирован
Активность