
Антон
14.03.2017
21:43:02
кароче: нет тестов - нет камней, нет камней - нет дворца, нет дворца - нет дворца

Evgeniy
14.03.2017
21:43:05
в before_save она уже по идее сохранена если autosave: true

Антон
14.03.2017
21:43:41
кофейная гуща это не про рельсы

Eugene
14.03.2017
21:44:02

Google

Evgeniy
14.03.2017
21:45:52
да. в общем autosave: true это обычный before_save
в котором она и сохраняется
посколькоку коллбэки выполняются в порядке их определения

Антон
14.03.2017
21:46:30
это не я придумал
я могу себе позволить не писать тесты за это страдаю иногда
однако, умный человек, не будем показывать пальцем, хотя это был Тимофей Цветков сказал: "Или вы на столько умны, что пишите тесты, или вы не столько умны что не пишите тесты"

Evgeniy
14.03.2017
21:46:32
то в следующем before_save ее уже видно

Антон
14.03.2017
21:46:53

Eugene
14.03.2017
21:47:02
Тима Цветков, не знаю его. Кто такой?

Антон
14.03.2017
21:47:30
одна из старых-стырах марсиан
еще тех

Eugene
14.03.2017
21:48:31
а щас я слышал там плохо не?

Антон
14.03.2017
21:48:52
там нет цветкова - там плохо
там все может быть зашибись, но цветкова нет
везде, где нет цветкова, плохо

Google

Eugene
14.03.2017
21:50:35
он твой кум или ты поклоняешься ему?

Антон
14.03.2017
21:50:44
поклоняюсь
он можетбыть уже не торт, но воспоминания еще живы :)

Eugene
14.03.2017
21:52:09
"Есть множество гемов, которые чуть иначе решают одни и те же задачи. С разным синтаксическим сахаром, с разной эстетикой кодирования. Выживают лучше это хорошая стратегия, но не когда «мусора» становится очень много. В Питоне есть библиотеки, которые развиваются и поддерживаются годами, есть проекты, где авторы (к большому сожалению) умерли, но библиотеки все равно активно поддерживаются и развиваются. С руби, когда смотришь на гем, в первую очередь идешь на гитхаб и смотришь сколько людей поддерживает гем, как часто в него коммитят и нередко оказывается, что лучше написать свое, чем использовать гем, который в любой момент могут перестать поддерживать или уже почти перестали поддерживать, ибо любая внешняя зависимость с плохой поддержкой — потенциальная проблема для проекта, который не умрет завтра, послезавтра и в ближайшие несколько лет совершенно точно."

Антон
14.03.2017
21:53:14
ну ок
тока давайте разберем по слогам

Eugene
14.03.2017
21:53:31
ну неплохая цитатка от него

Антон
14.03.2017
21:53:45
в питоне нет гемов которые написал какой-то урод и перестал поддерживать?

Evgeniy
14.03.2017
21:54:26
На RailsClub последнем был доклад Сергея Долганова из Марсиан.. как раз по поводу того как определить матюрность гема и его production ready
и вот они написали такую штуку ossert
https://github.com/ossert/ossert

Антон
14.03.2017
21:55:29
понты

Evgeniy
14.03.2017
21:56:41
Ну это пет прожект насколько я понимаю, но в качестве одного из инстурментов оценик - достаточно интересно на мой взгляд

Антон
14.03.2017
21:57:06
интересный, но понты

Evgeniy
14.03.2017
21:57:22
он есть онлайн
ну как скажешь)

Антон
14.03.2017
21:57:41
по таким метрикам у меня закрытый core-gem супер-пупер
я не буду говорить какое это штако на самом деле

Evgeniy
14.03.2017
21:59:24
по каким - таким? Я насколько понял они оценивают rubygems, github, SO..
И щас еще хотят еще добавить reddit

Google

Антон
14.03.2017
22:00:12
Opened and Closed Issues
Opened, Merged and Closed PRs
...
Releases Count
Last Release Date
Commits count since last release
Amount of changes each quarter
Stale and Total branches count
Это все плюсы
Opened and Closed Issues
Opened and Merged PRs
Releases Count
Downloads divergence
Downloads degradation per release (Comes later)
Stale Branches Count
это все плюсы
по всем метрикам кроме Opened non-author Issues, "with author comments" and total count
у нас плюсы
только гем никто не видел и никто о нем не знает, но он публичный

Evgeniy
14.03.2017
22:03:52
там видимо в доке не все
https://github.com/ossert/ossert/blob/84e455dbff69c41264bb57b4d24a32b67594d6cc/lib/ossert/fetch/stackoverflow.rb
Не думаю что у закрытого гема будет много осбуждений на SO
но как бы да я не говорю что это прям руководство к действию, голову тоже надо включать)

Антон
14.03.2017
22:04:45
я предлагаю свернуть дискуссию, а то ojab нас забанит

Evgeniy
14.03.2017
22:04:51
ок )

Nikita
15.03.2017
09:37:59
ребят, скажите пожалуйста, как лучше присваивать новому объекту дефолтные значения в базе на уровне приложения, а не на уровне базы

Nikita
15.03.2017
09:38:16
ну, то есть, допустим admin_level по дефолту должен быть 0, можно сделать дефолтное значение для колонки
но хотелось бы именно на уровне приложения, вешать на колбек after_create приватный метод и делать?

ojab
15.03.2017
09:41:03
прозреваю что ты хочешь как минимум before_create, чтобы значение попало в базу

Dmytro
15.03.2017
09:41:07
after_initialize

Nikita
15.03.2017
09:41:22
а, понял

ojab
15.03.2017
09:41:31
приватный метод делать не обязательно, можно лямбду прямо в строчку с объявлением коллбека вписать
но вообще это стоит делать на стороне базы

Nikita
15.03.2017
09:41:52
ну, а если перенос будет?

Google

Nikita
15.03.2017
09:42:03
а, ну хотя дефолт останется там

I
15.03.2017
09:42:26
на стороне базы - это в миграциях
ведь не будете перенос делать без миграций?

ojab
15.03.2017
09:42:29

Nikita
15.03.2017
09:42:50
да, все

ojab
15.03.2017
09:42:52
(через Model.new(admin_level: :whatever))

I
15.03.2017
09:42:55
не, ну можно, но сомнительная радость

pny
15.03.2017
09:49:34
def initialize(attrs)
super(attrs)
self.admin_level = 0 if admin_level.nil?
end

Nikita
15.03.2017
09:50:58
да мне нужно, чтобы в базу писало 0

Admin
ERROR: S client not available

pny
15.03.2017
09:51:44
коллбеки - последний рубеж

Ruslan
15.03.2017
09:52:17
почему не сделать это на уровне базы если тебе так нужно ставить дефолт если он не задан? Зачем городить эту фигню?

pny
15.03.2017
09:52:36
зачем размазывать бизнесовую логику еще и на базу?

Ruslan
15.03.2017
09:52:47
то что у поля стоит дефолт у енума?
это такая жестокая размазанность?

pny
15.03.2017
09:53:16
то что у поля стоит дефолт в базе, а не в приложении
и так в 100500 таблицах

Ruslan
15.03.2017
09:53:29
конечно, лучше ж написать кучу калбеков и всякой хрени, это же удобнее, читабельней (сарказм)
и что?

pny
15.03.2017
09:53:51
да, инициалайз удобнее и читабельнее

Ruslan
15.03.2017
09:53:55
а так в приложении куча Г в виде калбеков и прочей фигни

Google

Ruslan
15.03.2017
09:53:58
да нифига
если уж на то пошло и ты хочешь всегда явно видеть логику, как у тебя создается запись - создавай сервисный класс, в котором явно будут проставляться все поля
и используй только его

ojab
15.03.2017
09:55:30

pny
15.03.2017
09:56:35
а fk уже вопрос дискуссионный, и зависит от многих факторов

Ruslan
15.03.2017
09:57:40
и какие факторы в пользу того, чтобы их не юзать?
когда в БД есть свои ограничения это избавит тебя от ошибок в приложении, во всяком случае ты их сразу увидишь, когда у тебя лупанет какой-то запрос на удаление или еще что-то и хопа, а таких рекордов нету или нельзя завалить, потому что релейшен мешает

Dmitry
15.03.2017
09:58:54
я вижу только один - большая бд которая на один сервер не помещается
иначе стоит юзать я думаю

Ruslan
15.03.2017
09:59:15
ну это сомнительный аргумент, сейчас дисковое пространство нифига не стоит
гигом больше, гигом меньше

Dmitry
15.03.2017
09:59:26
причем тут это
есть базы которые не влазиют на один сервак
и там твои fk и триггеры и джойны сразу идут по бороде

pny
15.03.2017
10:00:01
да, при распределенной бд fk не заработают

Sergei
15.03.2017
10:00:45
Всем привет. Такой вопрос. Может кто сталкивался с проблемой при миграции в случае использования Postgres schema? Т.е при использовании одной базы данных но разных схем, миграция зависает в определенный момент на комите.

Ruslan
15.03.2017
10:00:47
ну на сколько я помню там есть свои решения для маштабирования если так

Vasiliy
15.03.2017
10:02:07
чет вы дичь какую-то разводите - дефолт в конструкторе ставить
тогда может ну нахуй вообще миграции выкинем, они ж к бизнес-логике не относятся

ojab
15.03.2017
10:07:43