Size: a a a

2020 July 08

AB

Alexey Bolshakov in pro.elixir
хех. все тлен.
источник

P

Pavel in pro.elixir
Alex Bubnov
ну как, серьезно
так я тоже серьезно, вилка Middle разработчика Golang/Elixir/Node/Java/C# и всего чего угодно будет выше чем вилка Middle PHP, так уж рынок порешал. Потому если ты берешь технологию (к примеру Scala) и решаешь на ней пилить, то нормальная стратегия "до выбора" технолгии проработать и рыночные показатели: количество кандидатов, сложность найма, необходимость тебе этих сотрников в количестве и так далее. А тут получается что мы взяли некий X а хотим платить как за некий Y. Это вызывает некоторые вопросы (это сейчас в отрыве от вакансии, я написал коменты к ней, там больше придирок, нежели серьезного хейта кмон)
источник

P

Pavel in pro.elixir
Alex Bubnov
как минимум я сам вполне осознанно принимаю факт, что у джависта с сопоставимым резюме зарплата выше. но мне психика дороже
<sarcasm> А как же Kotlin? </sarcasm>
источник

P

Pavel in pro.elixir
источник

VK

Vyacheslav Konovalov in pro.elixir
если версия в mix.exs "~> 1.2", то значит "1.3" не подходит?
источник

VK

Vyacheslav Konovalov in pro.elixir
я в semantic versioning везде только ~ вижу, но ~> нигде не указано
источник

ŹR

Źmićer Rubinštejn in pro.elixir
iex(1)> Version.match?("1.3.0", "~> 1.2")
true
iex(2)> Version.match?("1.3.1", "~> 1.2")
true
iex(3)> Version.match?(“1.4.0”, "~> 1.2")
true
iex(4)> Version.match?(“1.9.99”, "~> 1.2")
true
iex(5)> Version.match?("2.0.0", "~> 1.2")
false
источник

AD

Anastasiya Dyachenko in pro.elixir
Vyacheslav Konovalov
я в semantic versioning везде только ~ вижу, но ~> нигде не указано
источник

ŹR

Źmićer Rubinštejn in pro.elixir
iex(8)> Version.match?("1.2.0", "~> 1.2.0")
true
iex(9)> Version.match?("1.2.99", "~> 1.2.0")
true
iex(10)> Version.match?("1.3.0", "~> 1.2.0")
false
источник

VK

Vyacheslav Konovalov in pro.elixir
спасибо
источник

VK

Vyacheslav Konovalov in pro.elixir
ограничение указано именно "~> 1.2", но не "~> 1.2.0", похоже что подходит всетаки
Version.match?("1.3.0", "~> 1.2") # => true
источник

AD

Anastasiya Dyachenko in pro.elixir
Vyacheslav Konovalov
ограничение указано именно "~> 1.2", но не "~> 1.2.0", похоже что подходит всетаки
Version.match?("1.3.0", "~> 1.2") # => true
источник

IA

Igor A. in pro.elixir
Всем привет!
Есть вопрос по работе с фениксом.

Дано:
На один из роутов приходит json в таком виде

{
 “title”: “something”,
 “pickup_point”: {
   “lat”: 30,
   “lon”: -90
 },
 “delivery_point”: {
   “lat”: 30,
   “lon”: -90
 }
}


Эти данные нужно хранить в базе в таком виде


sc
hema "tasks" do
   field :title, :string
   field :status, :string
   field :pickup_point, Geo.PostGIS.Geometry
   field :delivery_point, Geo.PostGIS.Geometry

   timestamps()
 end

где Geo.PostGIS.Geometry это кастомный тип https://github.com/bryanjos/geo_postgis
конс
труктор для которого вот такого вида pickup_point = %Geo.Point{coordinates: {30, -90}, srid: 4326}

Вопрос:
Где
и каким образом будет идиоматично для феникса
⁃ провалидировать входящие данные такого вида
⁃ преобразовать данные для сохранения (прим: %{delivery_point: %{lat: 30, lon: -90}} в %{delivery_point: %Geo.Point{coordinates: {30, -90}, srid: 4326}} )
источник

AK

Andy Krasnov in pro.elixir
Igor A.
Всем привет!
Есть вопрос по работе с фениксом.

Дано:
На один из роутов приходит json в таком виде

{
 “title”: “something”,
 “pickup_point”: {
   “lat”: 30,
   “lon”: -90
 },
 “delivery_point”: {
   “lat”: 30,
   “lon”: -90
 }
}


Эти данные нужно хранить в базе в таком виде


sc
hema "tasks" do
   field :title, :string
   field :status, :string
   field :pickup_point, Geo.PostGIS.Geometry
   field :delivery_point, Geo.PostGIS.Geometry

   timestamps()
 end

где Geo.PostGIS.Geometry это кастомный тип https://github.com/bryanjos/geo_postgis
конс
труктор для которого вот такого вида pickup_point = %Geo.Point{coordinates: {30, -90}, srid: 4326}

Вопрос:
Где
и каким образом будет идиоматично для феникса
⁃ провалидировать входящие данные такого вида
⁃ преобразовать данные для сохранения (прим: %{delivery_point: %{lat: 30, lon: -90}} в %{delivery_point: %Geo.Point{coordinates: {30, -90}, srid: 4326}} )
а зачем идиоматично валидировать для феникса
источник

AK

Andy Krasnov in pro.elixir
?
источник

IA

Igor A. in pro.elixir
хочу понимать как это принято делать в этом фрэймворке
источник

IA

Igor A. in pro.elixir
провалидировать input, перобразовать в формат для сохранения. если в фениксе это ложится (как общая практика) на плечи экто, то я видимо не разобрался как это проделать для юзкейса выше
источник

AD

Anastasiya Dyachenko in pro.elixir
Igor A.
Всем привет!
Есть вопрос по работе с фениксом.

Дано:
На один из роутов приходит json в таком виде

{
 “title”: “something”,
 “pickup_point”: {
   “lat”: 30,
   “lon”: -90
 },
 “delivery_point”: {
   “lat”: 30,
   “lon”: -90
 }
}


Эти данные нужно хранить в базе в таком виде


sc
hema "tasks" do
   field :title, :string
   field :status, :string
   field :pickup_point, Geo.PostGIS.Geometry
   field :delivery_point, Geo.PostGIS.Geometry

   timestamps()
 end

где Geo.PostGIS.Geometry это кастомный тип https://github.com/bryanjos/geo_postgis
конс
труктор для которого вот такого вида pickup_point = %Geo.Point{coordinates: {30, -90}, srid: 4326}

Вопрос:
Где
и каким образом будет идиоматично для феникса
⁃ провалидировать входящие данные такого вида
⁃ преобразовать данные для сохранения (прим: %{delivery_point: %{lat: 30, lon: -90}} в %{delivery_point: %Geo.Point{coordinates: {30, -90}, srid: 4326}} )
в резолвере либо в модели. я бы сначала преобразовала в резолвере и потом валидировала в модели
источник

AK

Andy Krasnov in pro.elixir
а я бы валидировал в changeset и пробрасывал наверх ошибки
источник

IA

Igor A. in pro.elixir
Andy Krasnov
а я бы валидировал в changeset и пробрасывал наверх ошибки
вот тут и трудности у меня. input вложенный, он может быть как пустой мапой, так и с частично заполненными полями. не ясно эту вложенную структруру пробросить правильно в changeset.

так же changeset отдаст ошибки по струкруре которую мы сохраняем, но не по той что на входе, что создает доп. сложности отображением ошибок валидации.
источник