Pull to refresh
-1
0
Денис Боровиков @dborovikov

User

Send message
> Сколько вам нужно времени, чтобы запомнить, что `defroutes` объявляет список роутов?

Столко-же, что бы и запомнить, что path задает роут в Spray. И совершенно не ясно как defroute работает внутри. В spray можно хотя бы по сигнатурам функция посмотреть что происходит. У вас нечто, что генерит на выходе другое нечто.

>и в вашем случае проблема именно в Scala, а не в макросах.

Нет там никакой проблемы. Впрочем и в вашем случае нет. Повторю еще раз, я ЗА макросы в популярных библиотеках, я против активного использования, в частности написания своих макросов.

> макросы — это ну ни разу не новый язык

Как это не новый? Макросы по определению — это расширение языка.
Эти два примера оба используют достаточное количество magic. Их понятность субьективна, во что разворачивается код мне очевидней в случае со Scala, я же на ней пишу :) Устройства вашего код на Clojure для меня абсолютная загадка.

P.S. и таки да, вам уже правильно написали, коды действительно неэквиваленты. Код на Scala делает больше — он привносит типипзацию как минимум.
>Вопрос — почему макросы настолько отличаются от функций, что нельзя писать свои.

Функции не привносят какой-то новой семантики, не меняют порядка вычислений. Выучив один раз язык без всяких расширений, можно без пробоем быстро вникнуть в любой проект или библиотеку. Я это не по наслышке знаю, я пишу на Scala, в библиотеках часто используют макросы, так вот каждый раз, когда изучаешь такую библиотеку, ощущение такое, что учишь новый язык. Меня эта особенность сильно отталкивала. Компромис я нашел в том, что выбрал для себя стек технлологий, в котором я более-менее знаком с макро-расширениями. За написание своих макросов нужно решительно бить по рукам.
Тут дело скорее в том, что я не понимаю зачем к ним привыкать, если мне не нужно писать макросы в промышленных масштабах :)
Да, я и не говорю, что Лисп фигня. Специфичный интсрумент, дейтсвительно полезный там, где жужно делакь какие-то предметно-ориентированные языки, и привыкнуть к нему надо, как к любому инструменту.
Функции желательно тоже использовать из общеизвестных бибилиотек, а не велосипедить свои. При этом в их переиспользовании нет ничего плохого, так как остаешся в рамках одного языка. С макросами по сути придется учить свой диалект в каждом случае. Все это детсад и фантазерство.
Макросам место в общеиспользуемых и общеизвестных билиотеках. Умельцам, которые на каждый чих расширяют синтаксис нужно пальцы пооткручивать. Тако подход годится что-то там у себя дома на коленке пописать по приколу. С промышленной коммандой разработкой это не имеет ничего общего.
Nemerle здох, но не в этом суть. Есть таже Scala. Там есть макросы, и вот мой реальный опыт: макросы пишутся в специфичных случаях и чаще всего в библиотеках. Ради этого стоит потерпеть всякие странности при разборе AST. Более того, там есть квази-цитаты и написание макросов не так уш и ужасно, как вы описываете. Калечить язык ради макросов — это безумная идея. от которой веет юношеским максимализмом за версту. Не зря у Луговского столько поклонников у молодежи :)
Извините, никогда не поверю, что у вас так много задач связанным с метапрограммиронием, что готовы работать с языком практически без синтаксиса. Складывается ощущение, что народ просто начитался Луговского, и на лиспах делает тоже, что и все — запросы в БД пуляет, что-то делает с результатами и отрисовывает, а себя успокаивает тем, что «зато тут макросы и метапрограммирование можно делать».
На борзость можно только борзостью ответить увы. Вы же понимаете, что такие люди другого языка не понимают?
Да, чувак дерзкий попался :) Можно было его в ответку подколоть, типа, да может и не важно, но не важно для Яндекса, что ничего удивительного, т.к. вы там поди технологии каменного века используете, с чем вас и поздравляю ))
Я и работал в крупных конторах и соответсвенно на собесах был не раз. Так вот, это скорее вы на себя как-то не правильно переносите. С говном никого не машают, задают в основном стандартные вопросы, но из области базы + да, бывают довольно сложные алгоритмические задачм, и странно, что они оказываются полной неожиданностью для соискателей. Почему-то в народе бытует такой наивный подход, что достаточно почитать доки по библиотекам, там или стековерфлоу, и все, ты программист. Как программист может называться оным без базовых знаний алгоритмов и структур данных и problem solving skills?
Так и есть, я долго искал понятное определение Agile для себя, до этого было только интуитивное понимание. Так вот Agile — это когда разработчики и заказчик решают пойти по стопам кота Леопольда и говорят «давайте жить дружно». Т.е. работать как одна комманда со взаимопониманием и доверием — «мы не требуем от вас четкого ТЗ на весь проект, а вы не требуете от нас четкой оценки бюджета всего проекта, вместо этого работаем поэтапно, и вместе решаем проблемы». Кстати, когда решают «давайте жить дружно» разработчики и админы, из этого получается DevOps.
Скажите, а в чем основное отличие Elm от PureScript?
С распределением акторов по сети понятно, тут уже есть смысл.
Просто сервис в смысле просто обычный класс с методами. И методы можно вызывать в отдельных потоках, через ExecutorService. Который тоже можно конфигурить во вне.
А почему сервисы сделаны в виде акторов, а не просто сервисов? В чем в данном случае профит от их использования? Про разделение комнат аргумент не ясный, так как они бы и так были бы изначально в разных потоках.
Вы не используете сисему управления зависимостями, у вас хромает code style. Саму службу было бы проще сделать с помощью Jersey, а не вручную. Там в итоге одна страница кода была бы + файл с зависмостями (pom.xml, gradle.build, etc), а вы тут что-то понаписали. Вобщем, вам есть куда разбираться самим =)
Кассандра ниразу не БД общего назначения, а как раз для таких штук вроде обработки событий и разрабатывалась. C Постгресом вообще сравнение не корректное.
>под их нужды пропатченый билд Mono.

Это вообще агонь. Нафиг-нафиг.

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity