
Dany
06.01.2018
22:50:22
при условии бэкграунда 3 курс вуза по спец. программная инженерия, с++, python, data science
ок, значит берем и вкатываемся. wunsh.ru читать?

?
06.01.2018
22:51:34
На оф сайте годные гайды

Dany
06.01.2018
22:52:19
html, css, js учить?

Google

?
06.01.2018
22:52:34
Смотря для чего
Их недолго

Dany
06.01.2018
22:52:49
веб

?
06.01.2018
22:53:01
Учи

Dany
06.01.2018
22:53:14
а где еще эликсир применяется?

?
06.01.2018
22:53:42
Не знаю ?

Dany
06.01.2018
22:54:07

?
06.01.2018
22:54:32
Я только про веб знаю ?
Если бы ты ответил иначе, я бы вышел из тг

Dany
06.01.2018
22:55:02
?
ок, спасибо!

Ilja
06.01.2018
22:57:20
c++, python и data science мало помогут. Тем более, вузовские. В вузе акцент на другом: познакомить с концепциями, погрузить в сложность. А Эликсир - это простое функциональное программирование + модель Акторов. И акцент на системах, которые должны стабильно и с предсказуемым поведением работать в течение долгого времени и самоисцеляться.
То есть, в первую очередь, на мой взгляд, важно понять и прочувствовать нишу этой платформы. Тогда всё пойдёт нормально. В принципе, она проектировалась таким образом, чтобы за короткое время можно было научить джуниоров писать нормальный распределённый и многопоточный код.

Google

Евгений
06.01.2018
22:59:35
Да и если цель - найти работу, то Эликсир - так себе вариант. Вакансий очень-очень мало, тем более для джуниоров.

Ilja
06.01.2018
23:00:05
Работу вот на Go неплохо искать. Посмотрите предложение вакансий и з/п.

Dany
06.01.2018
23:00:12
ну у меня не только вузовские, я кэггл тащу понемногу, но в связи рядом обстоятельств решил посмотреть другие технологии, в частности фронтенд, который интересен и востребован и эликсир (тут конечно скорее на гностичность языка купился)


Ilja
06.01.2018
23:07:26
Не совсем Эликсир, но это основы, которые будут весьма полезны: https://www.youtube.com/playlist?list=PLYuTgpYrBrVKQDezzrRf_0YEDt1Y0H9dE
Не знаю, как в этот плейлист попали Смешарики. ?
И фронтэнд - это да, отдельный мир.
Главное, ведь нельзя заниматься фронтэндом, ограничиваясь лишь программированием. Это неизбежно UI, вся эта визуальная кухня. И ещё много чего такого, что сильно выходит за рамки программирования.
А аццкий JavaScript.

Aldar
06.01.2018
23:15:05
Адовый npm


Ilja
06.01.2018
23:15:29
?
Насчёт ниш: на мой взгляд, функциональное программирование помогает моделировать предметные области бизнеса. Моделировать так, чтобы бизнес-логика была описана в понятных бизнесу терминах. "Обычные" языки для этого менее удобны.
Что такое бизнес в данном контексте? Это то, что связано с правилами, инвариантами, валидацией, консистентностью данных, транзакциями, ветвистыми структурами данных, описывающими разнообразные документы и бизнес-сущности... Всякие такие скучные вещи, и такое программирование в корне отличается от программирования, скажем, CAD-систем для трёхмерного моделирования или сложных вычислительных задач.
Но в категорию функционального программирования попадает много платформ. Эрланг, пожалуй, среди них выделяет прагматизм. Задача, ради которой он был разработан: платформа для разработки ПО GSM-коммутаторов. Которые, как оказалось, очень похожи по предъявляемым к ним требованиям на современные web-системы.
Вернее, тех требований, которые предъявлялись к телефонным коммутаторам, ещё хватит в качестве ориентира и эталона веб-системам на ближайшие -цать лет.


Evgeny
07.01.2018
07:22:47

Timur
07.01.2018
10:27:24
Коллеги, привет. Так-как ни одного нормального ресурса с удобными поиском и большой базой IT-событий (хакатонов, конференций, вебинаров) не нашли, решили сделать свой агрегатор. Кто готов - потратьте, пожалуйста, минуту на наш Google-опросник https://docs.google.com/forms/d/e/1FAIpQLSeF62yKGrK_dA9s06MXASrGZMof2pVPsI_cBXCvKk-6BBA4-A/viewform

Eugene
07.01.2018
10:39:13

Alexey
07.01.2018
11:04:07
"решили сделать свой агрегатор" 13 конкурирующих стандартов - надо сделать единый универсальный стандарт - 14 конкурирующих стандартов

Den
07.01.2018
13:44:55

?
07.01.2018
13:45:25

Google

Dan
07.01.2018
21:23:52
Ребят, часто феникс ломают обратную совместимость?

Alexander
07.01.2018
21:37:53
на моей памяти не ломают почти за последний год-два. У Ecto api менялся, но оно обратно совместимо было. Был косяк с изменением типа данных для таймстемпов по умолчанию на NaiveDatetime, из-за этого были некоторые проблемы. Они перешли на новую структуру с контекстами прозрачно, старые проекты продолжают работать, новые можно делать по новому, всё ок

Dan
07.01.2018
21:48:16
а контексты только в 1.3 появились?

Alexey
07.01.2018
22:40:20
да, но контексты в основном про организацию проекта - каких-то специальных фич в 1.3 именно для поддержки контекстов, кроме генераторов, вроде и не было

Dan
07.01.2018
22:44:00
сейчас просто сложно смотреть всякие туторы, где старые генераторы без контекстов и старая структура файло
это огорчает(

Alex
08.01.2018
06:32:49
контекст это не какая то библиотека или встроенная хрень без которой ниче работать не будет (по шуму вокруг него такое начинает лезть в голову) , а это банальный модуль, который генерится автоматически наряду с Controller и View. До версии 1.3 не генерился а теперь генерится. Можно вообще его удалить и всю логику перенести в Controller - те сделать обратное тому ради чего он и был задуман ментейнерами языка

Никита
08.01.2018
06:34:16
Как по мне - самая главная фишка 1.3 - фолбэк контроллер. Вот фишка так фишка. А гайдов, как-таковых, про эту фишку нету(

Dan
08.01.2018
08:17:11

Никита
08.01.2018
08:18:06
Не, это типа контроллер, который обрабатывает то, что не обработали другие контроллеры

Dan
08.01.2018
08:18:41
ну так, я вроде тоже самое написал)

Никита
08.01.2018
08:19:03
исключения это другое)

Никита
08.01.2018
08:19:12
ща, ссылку найду
https://webcache.googleusercontent.com/search?q=cache:vNm8iES4ld8J:https://swanros.com/2017/03/03/phoenix-1-3-is-pure-love-for-api-development/+&cd=1&hl=ru&ct=clnk&gl=ru&client=safari

Fey
08.01.2018
11:12:45
плаг, который обрабатывает исключения – это Plug.ErrorHandler, а фолбэчный контроллер – это модуль, на котором вызывается call/2 в случае, если экшн вернул не Plug.Conn.t
типа можно писать экшены вида
with {:ok, result} <- SomeLogic.call(params) do
render conn, result: result
end
ежели логика вернёт что-другое (например, `{:error, reason}`), то оно провалится в фолбэк контроллер

Никита
08.01.2018
11:21:07
Вот так оно вернее сказанно. Если по-другому - Можно представить себе фолбэк контроллер как плаг, который вызывается после контроллеров и обрабатывает ситауции, которые в контроллерах не обработаны.

Dan
08.01.2018
12:33:46

Nick
08.01.2018
12:34:09
Тип

Dan
08.01.2018
12:34:54
ну экшены вроде должны conn возвращать. А тут берется как-то .t

Google

Fey
08.01.2018
13:11:21
ну оно и есть https://hexdocs.pm/plug/Plug.Conn.html#t:t/0

Evgeny
08.01.2018
14:00:16
этот t как-то в спеках применяется?

Admin
ERROR: S client not available

Evgeny
08.01.2018
14:02:04
я до сих пор до конца не понимаю, накой он нужен.

Никита
08.01.2018
14:04:35
Ну может просто "возвращает Conn.t" есть шорткат для "возвращает структуру соединения" Ибо вернуть то conn не проблема, надо ж чтобы это был православный conn

Dan
08.01.2018
14:10:37
странно все это)

Fey
08.01.2018
14:25:31
я до сих пор до конца не понимаю, накой он нужен.
в эрланге/эликсире вообще нет типов на уровне рантайма, но есть аннотации – тайпспеки. они используются в документации: можно понять чё ф-ия жрёт на вход и чё выдаст на выходе. также на них ещё смотрит диалайзер, с помощью которого можно найти всякие баги.
что касается t – так обычно называют тип для структуры, определённой через defstruct

Evgeny
08.01.2018
14:33:02
это приблуда только для спеков и нужна?

Fey
08.01.2018
14:41:23
t/0 не определяется, т.е. Plug.Conn.t() скажет, что нет такой функции
инфа о типах куда-то в етску складывается

Dan
08.01.2018
15:00:27
Поскажите какие-нибудь open source проекты на феникс 1.3?

Dmitry
08.01.2018
15:11:53
По-моему fallback контероллер не нужен, потому что без него логика отображения ошибок лежит в вызываемом методе, а с ним - вся свалена в одну кучу.
Из-за того, что fallback контроллер не получает в явном виде action или route - для того чтобы добавить в ошибки хоть какую-то вариативность надо теребить conn
Это может быть полезно в каком-нибудь микросервисе на 3 роута, но если пытаться сделать более менее адекватное систематизацию error handling в api - никаких преимуществ
В результате эта штука может использоваться только чтобы декорировать твой error api например в graphql
Но ты же не будешь делать это сам? Всё равно возьмёшь graphql либу, которая сделает всё за тебя
Вывод делайте сами, как всегда....

Google

Vladislav
08.01.2018
15:19:38
Ребята, подскажите пожалуйста, как лучше дебажить приложение.

?
08.01.2018
15:20:03
IO.puts

Dmitry
08.01.2018
15:20:17
А вопрос "где хранятся типы" - это блять секрет КГБ

Vladislav
08.01.2018
15:20:24
Есть какой нибудь аналог var_dump(); die(); (если кто-то с пхп знаком)

Dmitry
08.01.2018
15:20:28
Потому что нигде они не хранятся
Из везде где я смотрел

Максим
08.01.2018
15:21:08
https://medium.com/@diamondgfx/debugging-phoenix-with-iex-pry-5417256e1d11

Dmitry
08.01.2018
15:21:42
Ща спросим в слаке

Vladislav
08.01.2018
15:22:02
Спс, щас попробую)

basiliscos
08.01.2018
15:49:36
"#{inspect var}"