
Aleserche
23.05.2017
16:53:26
естественно там тестов нет. Просто ручками все сверяют по отчетам, а там уж как повезет

Evgeniy
23.05.2017
16:54:09
мы так релизим
перекрестился и деплоишь по фтп )))))

Google

Aleserche
23.05.2017
16:54:51
а если упадет? Что тогда?

Evgeniy
23.05.2017
16:57:04
на все воля аллаха

Sergei
23.05.2017
17:11:14
У нас на проекте была такая кнопка - сами делали.

Aleserche
23.05.2017
17:11:50
для чего?

Sergei
23.05.2017
17:12:57
Собирали проект. Это было 15+ лет назад, когда всякие модные CI ещё были на так чтобы mainstream.
Нажал на кнопку - скрипт вытянул сорцы из репозитория, запустил сборку. Баловство, конечно, но выглядело весело.

Aleserche
24.05.2017
14:51:24
https://refactoring.guru/ru/design-patterns/flyweight вот понять не могу. Как рощу отрисовывать будет, если некоторые объекти фактически одни и те же. Дерево не сможет находиться в разных координатах. В чем прикол?

Sergei
24.05.2017
15:00:53
Паттера lightweight.

Артур Евгеньевич
24.05.2017
15:01:05

Sergei
24.05.2017
15:01:51
Идея как раз в том, что различающаяся информация хранится в объекте, а одинаковая - в одном каком-то месте, и много объектов на неё ссылаются.

Sergei
24.05.2017
15:04:49

Sergei
24.05.2017
15:05:17

Google

Sergei
24.05.2017
15:06:31
С этим мне сложно согласиться.
Вот в java например Integer кешируются до 128 (если не ошибаюсь) по дефолту и везде в рантайме, где бы ты не использовал допустим целое число 8, то везде это будет ссылка на один и тот же обьект.

Sergei
24.05.2017
15:06:49
Кэширование по сути сохранение информации дольше, чем необходимо, с целью повышения скорости доступа к ней.
Lightweight идейно про другое.
В одном случае - усккорение доступа, в другом - экономия памяти.
К словм сказать, кэширование как раз НЕ экономит память обычно - скорее наоборот.

Sergei
24.05.2017
15:08:20

Sergei
24.05.2017
15:08:34

Sergei
24.05.2017
15:09:55
Суть - есть много одинаковых сущностей, вместо использования 100 этих сущности мы будет использовать один экземпляр сущности, а везде где нужно будем на неё ссылаться.

Sergey
24.05.2017
15:11:03
да что ты не как джавист, памяти мало что-ли?

Sergei
24.05.2017
15:11:55
Это про lightweight. А пример про Integer - кэширование (заранее создать объекты, хранить их, не удаляя, чтобы когда попросят - быстро выдать их, без задержек на выделение памяти).
Хотя по реализации похоже, да.
Повторюсь, цели разные, а реализация похожая.

Sergei
24.05.2017
15:13:30

Sergei
24.05.2017
15:14:30
С кэшем это не всегда устраненте дублирования - может быть несколько же кешей, где как раз дублирующиеся данные.


Sergei
24.05.2017
15:22:38
"Как рощу отрисовывать будет, если некоторые объекти фактически одни и те же. Дерево не сможет находиться в разных координатах. В чем прикол?" Выше писали вот это, я думаю что проблема как раз в том что дерево ещё и знает где оно находиться, сейчас нашел пример в книге Гранд "Шаблоны проэктирования на java" там пример с приложением текстовым редактором, где каждая буква это обьект, чтобы не создавать каждый раз к примеру новую букву А, создается только один экземпляр, а потом уже отдается ссылка на этот экземпляр (а это же чем то еще напоминает синглтон....) То же самое что и мой пример с Integer
Нет, всё таки там пример не совсем удачный, дерево не должно знать о своём расположении в лесу.

Aleserche
24.05.2017
15:53:19
меня немного другое смущает. Допустим у нас 3 породы деревьев. Нужно нарисовать 30 деревьев, отличаются только по высоте. Каждой породы по 10 штук. Как я одним объектом в один момент времени отображу 10 деревьев одной породы в один момент времени?

Oleg
24.05.2017
16:01:02
Это коллекция объектов будет

Google

Oleg
24.05.2017
16:01:11
В которой есть метод отобразить

Sergei
24.05.2017
16:04:32

Aleserche
24.05.2017
16:05:10
видимо пример неудачный

Sergei
24.05.2017
16:05:14

Sergei
24.05.2017
16:05:22

Aleserche
24.05.2017
16:09:07
породы одинаковые, высота будет отличаться
а может и не отличаться, там уж как повезет

Sergei
24.05.2017
16:10:36
а может и не отличаться, там уж как повезет
Если говорить с практической точки зрения - в играх первый кандидат на lightweight будет текстура, шейдер для дерева, так как обычно для всех деревьев стараются использовать одну и ту же текстуру "кора дерева", например.

Aleserche
24.05.2017
16:13:09
я похоже зря заострил внимание на позиционировании деревьев. Несколько одинаковых деревьев в одной точке не будет нарисовано, т.к. это не имеет смысла. В итоге выигрыш, расход памяти меньше
в общем я понял. Чем-то составной ключ напоминает

Sergei
24.05.2017
16:16:58
Да, по сути так и есть - вместо хранения всего в одной "записи" ты хранишь часть данных отдельно, "в другой таблице", и несколько "записей" на них могут туда ссылаться.

Sergei
24.05.2017
16:17:32
И логика в общем очень сильно похожая - избегаем дублирования.

Артур Евгеньевич
24.05.2017
18:48:16
у на стут было обсуждение что такое архитекктура. вот наткнулся на определение
Software architecture is the structure that
defines the flow of information through a software system. It is a set of decisions made about
how software is organized and operates in order to meet the goals of that software.
Architecture is simply a set of attributes about how your code is laid out, organized, and how it interacts with other pieces or layers of the code.


Sergey
24.05.2017
22:15:21
оно... менее двусмысленное
ну и в целом очень похоже на то что ты привел
И логика в общем очень сильно похожая - избегаем дублирования.
когда избегаем дублирования стоит учитывать откуда приходят изменений. То есть не стоит устранять дублирование, даже если код выглядит 1 в 1, если у этих штук разные потоки изменений. У меня пример был - новости. Есть новости пользователей (определенной группы) и есть новости администрации. И то и то - просто новости пользователей. И разработчик который это пилил просто сделал это одной штукой. А потом через пару недель пришли изменения - для пользователей нужна премодерация, а для администраторов нужен чуть-чуть другой флоу публикации.

Google

Sergey
24.05.2017
22:18:17
в итоге разработчик попытался решить все кастылями, через 2 дня попыток пришлось просто переписать модуль

Admin
ERROR: S client not available

da horsie
25.05.2017
01:25:46

Sergei
25.05.2017
01:35:05

da horsie
25.05.2017
01:48:04
http://blog.cleancoder.com/uncle-bob/2017/05/05/TestDefinitions.html
Классификация тестов (еще одна, теперь банановая)

Мурад
25.05.2017
18:15:49
У кого опыт с event sourcing.
Как вы делаете версионирование событий?
Вариант который предлагают многие: Создать новый класс ивента с меткой V2 в имени класса, а старый отметить как Deprecated.
class AccountCreated => AccountCreated_V2
Но такое чувство, как будто костыль какой-то.
Может есть более изящный способ, с преобразованием старых ивентов в новые, прозрачно для системы?

Aleh
26.05.2017
08:41:37
тут несколько вопросов:
1. в чем их разница
2. что делать со старыми

Sergey
26.05.2017
09:59:43
> class AccountCreated => AccountCreated_V2
а чем они отличаются?
я знаю про практику когда просто добавляются небольшие специализированные ивенты или же они просто дублируются. А если ты говоришь про то что уже хранится в базе - есть варианты как это хэндлить но все сильно к конкретному кейсу привязано
https://www.youtube.com/watch?v=PJjHfa5yxlU

Alisher
29.05.2017
02:56:08
Доброе утро, какую архитектуру сейчас круто использовать, при проектирование андроид приложений?
Mvc, mvp, mvvm

Aliaksandr
29.05.2017
03:08:03

Alisher
29.05.2017
03:08:35
А нумерация начинается с нуля или 1?))

Sergey
29.05.2017
06:55:10
Mvc, mvp, mvvm
чаще юзают mvp, можно попробовать силы с mvvm, ну а далее зависит от того что ты делаешь
есть же еще вэйперы всякие, которые перед использованием нужно хорошенько изучить и понять зачем

Alisher
29.05.2017
07:07:42
Ну задача моя, есть у меня активити на котором 10 фрагментов будет
Если использовать, mvp то мне нужно для каждого фрагмента модельку и презентер делать?

Google

Alisher
29.05.2017
07:09:37
Есть ещё вроде mvp clean architecture
Где соблюдается солид
Правда ещё не разобрался
)

Sergey
29.05.2017
07:11:45
в целом смотря как ты будешь делать, есть варианты при которых "моделькой" будет тупо структура данных проброшенная из сервисного слоя
http://unpetitaccident.com/pub/compeng/languages/JAVA/Principles_and_Patterns.pdf
почитай для начала