
Erikable
18.12.2016
13:03:54
Я подумал о Казани
Рядом с Казанью аля силиконовую долину развивают вроде как

Nikolai
18.12.2016
13:05:24
Иннополис

Erikable
18.12.2016
13:05:39
Ага ! Точно

Google

Nikolai
18.12.2016
15:22:14
я второй раз пересматриваю урок 29, в первый раз было ничего не понятно. там рассказывается про ActiveRecord
скажите, зачем вообще весь этот огород?
создать рейкфайл, создать миграции, прописать в миграциях свойства создаваемых таблиц, запустить миграции, проверить, что всё создалось как следует
имхо в уроке с созданием лепры всё проще в этом плане было. разве не так?

John
18.12.2016
15:33:31
А с какого урока рейлс пойдет?


Ro
18.12.2016
18:06:36
> скажите, зачем вообще весь этот огород?
все дело в реляционных БД, которые не приспособлены для хранения объектов, которые описывают реальный мир (я имею в виду то, что создается когда ты говоришь SomeClass.new). Пока хороших баз данных не придумано, есть движение в сторону NoSQL, это кое-что. Но в общем-то БД типа MySQL - это упорядоченная структура данных.
И этот ActiveRecord нужен чтобы просто твои объекты сохраняли свое состояние при перезапуске приложения, например. Этот процесс называется mapping. Несмотря на то, что процесс упростили, он все равно слегка геморный. 20 лет назад ты создавал иерархию классов, которые описывали бизнес-процесс за пару недель, и 2 месяца надо было на то, чтобы замэппить это все в базу данных. Сейчас попроще, но все равно это не так просто, как могло бы быть.
Миграция - вещь любопытная. Дело в том, что в БД существует ЕДИНСТВЕННЫЙ способ описания данных (говорят еще "схема"). Т.е. единственный формат, в котором лежат данные. Когда у тебя сайтик крутится в продакшне и ты добавляешь улучшение (к примеру, решаешь что теперь все юзеры должны иметь номер телефона), то у тебя меняется схема БД, меняется ее формат. И тебе нужна миграция, чтобы от одного формата перейти к другому, и чтобы при этом ничего не потерялось.
Как-то так
другими словами, все это создано для того, чтобы хоть как-то разгемороить сложившийся геморрой. Так что воспринимайте это не как геморрой, а как попытку избавиться от исторического наследия)
существуют базы данных, которые поинтереснее и попроще описывают бизнес-процессы и сущности. Но они платные. Они работают очень хорошо и супер-круто. Но бесплатных аналогов нет. Скажем, в компании Боинг такие БД применяются, т.к. обычные реляционные БД (MySQL, PostgreSQL, Oracle, и т.д.) иногда не подходят под их бизнес-процессы.
исторический экскурс про это есть тут на англ.языке https://www.youtube.com/watch?v=bW5K5cJ-AVs&t=3246s


Nikolai
18.12.2016
18:11:39
>И этот ActiveRecord нужен чтобы просто твои объекты сохраняли свое состояние при перезапуске приложения, например
не совсем понимаю
один объект это одна строка в таблице, так?
можно хранить свойства одного объекта в разных таблицах, но это, имхо, нужно только в больших и сложных системах, где у разных объектов есть одни и те же свойства

Google

Nikolai
18.12.2016
18:13:16
я с таким сталкивался на авиапроизводстве

Ro
18.12.2016
18:13:36
не обязательно, обычно 1 объект - не 1 таблица, это только упрощенный вариант
есть есть has_one, has_many - то это минимум 2

Nikolai
18.12.2016
18:15:02
правильно ли я понимаю, что если мы создали сущность (например, Clients, или Barbers), то данные, которые относятся к экземплярам этой сущности могут храниться в разных таблицах?

Ro
18.12.2016
18:17:22
скажем так: простые свойства (имя, телефон) будут храниться в 1 таблице. Как только ты делаешь сложные свойства - например барбер работает в каком-то барбершопе. То вот инфа о барбершопе хранится в другой таблице.
т.е. ты говоришь barber.barbershop.address
получается, что обращаешься к barber, а адрес барбершопа считывается из другой таблицы
но бывает и т.н. денормализация - когда данные о двух сущностях хранятся в 1 таблице
обычно эти сущности схожи

Nikolai
18.12.2016
18:20:55
а что мешает запилить одну большую таблицу и хранить там вообще всё, что относится к сущности barbers?
или если надо что-то добавить, то делать миграцию с изменением количества столбцов?

Ro
18.12.2016
18:22:29
теоретически такое возможно
на практике такое не делают, т.к. чем больше таблица - тем меньше скорость ее чтения
ну и мешать все в одно - как-то геморно, потом не поймешь что к чему относится

Nikolai
18.12.2016
18:23:54
мне кажется наоборот, можно запутаться в выискивании связей между таблицами и определении, каким sql-запросом что вытягивается

Ro
18.12.2016
18:24:21
еще подумай об индексах - индексация помогает быстрее искать по таблице. Но ты за это платишь обычно местом на диске (и/или в памяти). Чем больше индексировано полей в 1 таблице, тем больше требуется памяти на обработку данных в этой таблице. Тут уже как бы вопрос ограничений БД

Nikolai
18.12.2016
18:25:26
походу дела, надо брать книгу по теории баз данных
и курить е
ё
её

Ro
18.12.2016
18:27:34
это всегда полезно

Google

Ro
18.12.2016
18:28:15
погугли также table per type, table per hierarchy
может на хабре есть, найдешь хороший материал - скинь сюда

Nikolai
18.12.2016
18:29:05
скину

Ro
21.12.2016
04:34:18
нас уже 42
счастливое число)

Erikable
21.12.2016
04:35:02
Надеюсь легче учиться станет

DEFACE
21.12.2016
04:39:00
ребята
кто шарит
как лучше сделать изменение контента шаблона
без зранения в базе
на php можно просто записать в фаил
а тут нужно сервер перезагружать? или как лучше делать?

Nikolai
21.12.2016
04:42:03
Скажите, а есть ли какой-нибудь фреймворк/модуль для javascript, упрощающий написание кода?
А то обилие разных скобок и точек с запятыми просто ужасает
Особенно в сравнении с лаконичным Ruby

DEFACE
21.12.2016
04:43:45
попробуй coffescript
не совсем фреймворк но избавит от скобочек

Ro
21.12.2016
04:45:09
coffeescript - юзал, неплохо, но к сожалению оно медленно умирает
не прижилось
к скобочкам надо привыкать)

Google

DEFACE
21.12.2016
04:46:03
незнаю про умирает..очень часто стал видеть его везде
даже на сайтахх аля codewars

Ro
21.12.2016
04:46:56
угу, и даже atom (текст.редактор) написан на нем
но...) я бы не рекомендовал его учить, время зря тратить имхо
к слову, мой плагинчик на coffeescript: https://github.com/ro31337/jquery.ns-autogrow/blob/master/src/jquery.ns-autogrow.coffee
чтобы оценить как оно выглядит
а это то же самое в JS: https://github.com/ro31337/jquery.ns-autogrow/blob/master/dist/jquery.ns-autogrow.js

DEFACE
21.12.2016
05:16:36
как лучше сделать редактирование шаблона)
@ro31337 хочу инлайн редактирование

Ro
21.12.2016
05:18:18
задача непонятна, постарайся сформулировать вопрос в одном предложении, желательно с примером

DEFACE
21.12.2016
05:22:44

Ro
21.12.2016
05:23:32
мало что понятно, задай вопрос на ru.stackoverflow.com

DEFACE
21.12.2016
05:23:33

Ro
21.12.2016
05:23:37
в соответствии с правилами
приведи примеры того, что ты сделал
в общем, потрать время - опиши подробно
я отвечу, если вопрос будет понятен

DEFACE
21.12.2016
05:24:27
ок,
Ro видел bitrix?

Google

Ro
21.12.2016
05:25:09
нет

Evgeniy
21.12.2016
11:55:01
?

Konstantin
21.12.2016
13:40:51
puts 'Здрасте'
chat_members.each do |name|
puts "Здравствуй, #{name}!"
end
?

Pavel
21.12.2016
23:34:19
Всем привет! Может скажете x += 2 По простому как это выглядит ?

DEFACE
21.12.2016
23:34:48
x = x +2
x = 3
x = x + 2
x = 3 + 2
x = 5

Pavel
21.12.2016
23:36:03
Ок, Спасибо!
Вот задачка. Вроде бы две строки должно получиться 2 и 8 Но пишет ошибка.

Nikolai
22.12.2016
04:03:55
На самом деле 3 строки
Код выполняется последовательно
В цикле loop do сначала выполняется команда puts a, затем а = а + 3, а после - проверка условия выхода из цикла
Если условие выхода из цикла не выполнено, эта последовательность повторится ещё раз