
Paul
08.04.2017
18:02:43

Aleh
08.04.2017
18:02:45
короч, если для бизнеса это ничего не значит, то и в коде это не должно чего-то значить
поэтому проще лучше

Paul
08.04.2017
18:04:08

Google

Aleh
08.04.2017
18:04:45
https://12factor.net/

Paul
08.04.2017
18:04:49
поэтому проще лучше
А вот хрен знает что проще: проверять на length(trim(str)) == 0 или на Nothing

Aleh
08.04.2017
18:05:35

Paul
08.04.2017
18:06:02
Хм. Вот если в этом чатике ты отправишь пустые пробелы
То ничего не отправится

Aleh
08.04.2017
18:06:16
но где-то же придется проверить, что она не нулевая?))

Paul
08.04.2017
18:06:16
Что логично
Перед тем как класть в базу. Если нулевая, то класть NULL
Меня пугает то, что тогда, по-хорошему, нужно constraint соответствующий прописывать

Aleh
08.04.2017
18:07:56
ну вот
короче вопрос только, где это будет
просто если у тебя тип Maybe String, то там все-таки может быть значение Just ""

Google

Aleh
08.04.2017
18:09:37
а это неправда
а в случае String все ок)

pzrk
08.04.2017
18:20:57

Paul
08.04.2017
18:22:12
сколько у тебя rps?
Ограничения срабатывают на запись, коих не так много: несколько десятков тысяч в день. Так что TRIM(..) == '' меня более чем устроит

Sergey
08.04.2017
18:50:40
Автоконвертирование нулей в строку - для быдла и легаси. Если не нужно хранить нулы, то ставь констрейн not null. Иначе проверяй все явно, иначе однажды соснешь (и не единожды)

Paul
08.04.2017
18:55:45

Sergey
08.04.2017
18:59:43

Sergei
09.04.2017
14:21:49
Посоветуйте какие то книги годные, мастрид по теме.
Только не сильно известные вроде банды четырех

Java73
09.04.2017
15:03:42
Совершенный код некоторые главы
Рефакторинг

Aleh
10.04.2017
11:45:10
ребятки, не совсем по теме чатика, но насоветуйте книжек по тестам, вот то, что мне нравится:
1. Кент Бек(офк)
2. Growing object-oriented software guided by tests
3. rspec & cucumber book

(;¬_¬)
10.04.2017
11:47:21
о, тесты

Sergey
10.04.2017
11:47:48

Aleh
10.04.2017
12:02:58

Sergey
10.04.2017
12:07:41
еще хвалили the art of unit testing c#
и давным давно читал xunit test patterns, но из нее уже ничего не помню.. видимо не зашла

Sergey
10.04.2017
12:11:20
Сейчас наброшу. ООП - нинужно:

Google

Sergey
10.04.2017
12:11:36
https://www.youtube.com/watch?v=Bn132AtZLhc

Hell
10.04.2017
12:20:06
по самые гланды
книга до сих пор 80 баксов стоит.
а я ее за 1 рубль купил

Max
10.04.2017
12:31:39
эта норм

Hell
10.04.2017
13:22:33

Sergey
10.04.2017
13:22:59

Dmitry
10.04.2017
13:54:15
хорошая книга. У меня дома 3 издание в бумаге

.avolver
10.04.2017
17:44:51
А я сейчас читаю working with legacy code. И понимаю, что до этого момента писал изначально legacy код.
Т.е. протухший by-design.

.avolver
10.04.2017
17:45:39
https://books.google.ru/books/about/Working_Effectively_with_Legacy_Code.html?id=fB6s_Z6g0gIC&source=kp_cover&redir_esc=y&hl=ru
Вот это.

Roquie
11.04.2017
17:02:08
Ребят, кто знаком с DDD на практике?

Aleh
11.04.2017
17:02:57
ты лучше спрашивай конкретные вопросы

Like
11.04.2017
17:03:58
Парни, как можно разбить класс коллекций ?
https://github.com/laravel/framework/blob/5.4/src/Illuminate/Support/Collection.php
По типу этого, только методов меньше

Aleh
11.04.2017
17:04:51
new SlicedCollection(new InMemoryCollection(1, 2, 3, 4, 5), 1, 2)

Admin
ERROR: S client not available

Google

Like
11.04.2017
17:05:22
А, ты про это
Спасибо


Roquie
11.04.2017
17:26:59
ты лучше спрашивай конкретные вопросы
Для того, чтобы проект был тестируемым перелажу с прямого использования ORM (AR) на репозитории. Хочу понять, в правильном направлении работает моя думалка или нет.
Репозиторий по хорошему должен оперировать сущностями (Entity), у которых прописаны сеттеры и гетторы. Окей, мы создали сущность User для EloquentUserRepository, теперь при CRUD операциях она везде задействована и мы то гидрируем объект перед выдачей результатов, то заполняем ручками, перед сохранением (вызов `$repo->save(new User('Joe'))`) например. Идем дальше. Данных много и получать их все без пагинатора накладно. Здесь надо создать свой интерфейс и написать адаптер, например, к Illuminate Paginator'у. Теперь мы не зависим от софта для работы с базой, можем подменить Array-репозиторием для тестов. Далее, теперь я хочу внедрить слой представления данных, для вывода их то в API, то во вьюшках. В этом нам поможет обычный декоратор для UserEntity.
Что-то мне это напоминает доктрину.


Aleh
11.04.2017
17:28:24
сеттеры и геттеры уже неправильно)
ну и да, доктрина как раз для удобного персиста доменных объектов
далее, доменные сущности в идеале не должны участвовать в ваших выборках на чтение
они вам ничего хорошего не дают там, ведь все что они делают - инкапсулируют логику перехода состояний, а при чтении состояние менять не оч хорошо
у репозиториев также нет методов save/update/edit и подобных, это коллекции, в коллекцию можно добавить, можно из нее удалить, можно из нее прочитать
save/update/edit к коллекции отношения не имеет

Roquie
11.04.2017
17:33:16

Aleh
11.04.2017
17:33:50
но вторые не имеют отношения к домену)
вот хорошая презентация на тему, самого доклада не смотрел https://www.slideshare.net/Yaboomaster1/save-repository-from-save

Roquie
11.04.2017
17:34:46
так, для начала, репозиторий ведь могёт в save/update/edit?)
другое дело этого в домене не использовать, хотя и то спорно, там-же бизнес логика...
я запутался еще больше )

Aleh
11.04.2017
17:35:46
глянь презентацию)

Roquie
11.04.2017
17:36:35
смотрю
:D

Google

Roquie
11.04.2017
17:55:52
дочитал, есть еще годнота?

Aleh
11.04.2017
17:56:20
эванс?)
вернон

Roquie
11.04.2017
17:57:35
были попытки, но ответов на свои вопросы не всегда находишь
зачастую просто потому, что вопросы не правильные и не видно как надо делать
вот на презентации это показано, пусть и не все все раскрыто

Aleh
11.04.2017
18:01:28
вот миленькая приложенька на пхп https://github.com/norzechowicz/mydrinks