
Вадим
18.08.2018
17:31:06

Artem
18.08.2018
17:31:08
да, кстати интересно зачем

Aleh
18.08.2018
17:31:46
+ dateCreate у Pet это что? Дата рождения?

Alfred
18.08.2018
17:32:32

Google

Вадим
18.08.2018
17:32:36

Aleh
18.08.2018
17:32:51

Вадим
18.08.2018
17:32:56
listPetsByType -> array_filter

Aleh
18.08.2018
17:33:08

Вадим
18.08.2018
17:33:17

Aleh
18.08.2018
17:33:26
ActiveRecord ;)))
да не, знать дату создания объекта может быть нужно, если его лайфцикл в системе совпадает с лайфциклом вне в простых случаях(дата публикации поста)
ну т.е. это еще хотя бы удобно)

Alfred
18.08.2018
17:34:49
Я по замечания создам issues. Вы не против если ваши ники впишу?

Aleh
18.08.2018
17:34:58
пожалуйста)

Вадим
18.08.2018
17:35:15

Alfred
18.08.2018
17:35:36
Ну и чуть позже попробую правильно решить

Artem
18.08.2018
17:38:04
Надо учиться. Тут думаю сидят умные люди). да я из йии
Отвечает Александр Др... Ой, то есть пхп-кнопкодав, который уже год не может найти работу даже за копейки (это о достоверности того, что написано ниже).
Думаю у тебя в модели не хватает человека, который забирает животное из приюта, поэтому появляются всякие гет-ы странные
И вообще странно, если ты забираешь из приюта, то как там может быть doRemove? Животное может наполовину остаться в приюте если его забирают? Не любишь ты животных!

Google

Alfred
18.08.2018
17:39:51
По ремуву согласен надо гет и ремув методы

Artem
18.08.2018
17:39:58
точнее оно клонируется. Ну тогда ладно! Это вроде не жестоко

Вадим
18.08.2018
17:40:16

Alfred
18.08.2018
17:40:44
Array filter?

Artem
18.08.2018
17:41:14
а хотя не, не клонируется же :D ну короче не важно

Вадим
18.08.2018
17:41:15
Shelter->addPet(new Cat('Tom', 3));

Alfred
18.08.2018
17:42:34
Животному точно не нужен ид. Я по типу базы планировал

Вадим
18.08.2018
17:44:36

Alfred
18.08.2018
17:45:35
Хорошо принято. Насчёт времени поступления.

Вадим
18.08.2018
17:46:17

Alfred
18.08.2018
17:48:29
Ид, время в Шелтер. Один массив. Правильно?

Вадим
18.08.2018
17:52:58
Можешь отдельный класс сделать для внутреннего массива new ShelterPet(Pet $pet, DateTime $entryDate)
Ид, у тебя ключ массива

Alfred
18.08.2018
18:04:41
Спасибо всем. Не всегда видишь свои ошибки.

PowerAxis
18.08.2018
21:46:51
Пацаны, как стать пиздатым софтвэар инжэниар? С чего начать обучение? Ознакомился с принципами программирования, покодил на скриптовых языках веб-приложия. С партнерами проектирования также ознакомился. Как дальше развиваться?

Andrey
18.08.2018
21:48:50

PowerAxis
18.08.2018
21:53:19

Andrey
18.08.2018
21:53:53

Google

PowerAxis
18.08.2018
21:54:12

Andrey
18.08.2018
21:54:43
Ну вот и иди.

PowerAxis
18.08.2018
21:56:19
Та я уже 10 лет так делаю, вот решил разнообразить
Ну вот и иди.
Ты предлагаешь не самый эффективный, хоть и рабочий способ
Я согласен
Я немного не то спрашивал. Хотел узнать, какие технологии и принципы стоить изучать
Само собой, что практика и только практика прокачает, но ведь не лучше ли быть к ней готовым?

Mykola
18.08.2018
22:36:34
Попробуй ТК

PowerAxis
18.08.2018
22:58:03
что это?

Arky
19.08.2018
01:06:27

Евгений
19.08.2018
03:42:02


Chupa
19.08.2018
07:19:32
https://github.com/alfredleo/shelter
Пока нет никаких отличий у животных нет смысла делать им отдельные классы. Преждевременный оверинжиниринг получается. Хватит и string поля в Pet. Это как у всех подряд классов интерфейс делать и никак его не использовать, кроме как указания типа.
Дата помещения в приют должна быть опциональной в конструкторе, т.к. при создании объекта из данных из бд уже будет дата, как и id.
Из Shelter можно вынести класс, который занимается работой с коллекцией, потому что такой код более низкоуровневый и замусоривает этот объект, ухудшает понимание того, что он на самом деле делает при чтении. Этот вынесенный объект потом переиспользовать можно будет. Это тоже может оказаться оверинжинирингом в данный момент, но этот класс как-бе будет имитировать работу с бд, понадобятся в дальнейшем более низкоуровневые вещи, которые будут внутри использоваться.
Хранение нескольких отсортированных коллекций и работа с ними неоптимальна. При работе с БД на каждое действие будет производиться запрос, потому что делать это в пхп дорого. Бд делает это быстро, тем более при использовании кэширования. Поэтому можно смело возвращать новую отсортированную копию массива при каждом вызове метода.


Chupa
19.08.2018
07:20:24
+ PSR - наименование классов и директорий
+ composer

Алексей
19.08.2018
07:26:16
Но ведь без опыта возьмут на какую-то обезьянничью должность
вас возьмут на ту должность, которой вы соответствуете. Если вы докажете что можете выполнять "необязъянью" работу, то почему бы вам не поручить именно ее. Если у вас нет опыта, то просто будут приглядывать, чтобы не накосячил, в правах урежут.

Chupa
19.08.2018
07:32:37
Типичный путь развития "софтвэар инжэниа" - начинать с самой малой должности в крупной компании с кучей сервисов. Постепенно получать опыт, брать в работу более высокоуровневые задачи -> рост должности. И в определенный момент дойти до задач типа распила большого сервиса на сервисы поменьше, либо написания своих. Естественно, что все это должно происходить в среде с постоянным ревью кода, наличием опытных коллег, которые готовы помогать и делиться опытом. Серьезные дела в одиночку не делаются. Это - легенда.
С архитектором мог спутать
Единицы людей, которые дома могут "подготовиться" лучше, чем на работе к работе

Admin
ERROR: S client not available

Chupa
19.08.2018
07:35:05
Я тоже так хотел, но все свелось к тому, чтобы либо нанимать ментора за большие деньги, которых нет, либо переходить в серьезное место и там получать это бесплатно

Google

PowerAxis
19.08.2018
07:50:19

Anton
19.08.2018
08:12:19
В основном умный вид

militska
19.08.2018
10:52:38
Кто нибудь знает, что это за люди с вип каналом?

Anton
19.08.2018
10:53:12
Это люди которые идут в бан

Evgeniy
19.08.2018
11:28:40
во вторых у тебя кличка прилипает к животному а одно и таже дворняга в разных приютах могут называть по разному
поэтому кличку животному в рамках приюта надо давать
во вторых зачем тебе столько вспомогательных массивов по типам и тд животных ? https://github.com/alfredleo/shelter/blob/master/local/shelter/Shelter.php#L24
просто сделай один массив с живтоными разных типов

Aleh
19.08.2018
11:31:23

Alfred
19.08.2018
11:32:58

Aleh
19.08.2018
11:33:11

Evgeniy
19.08.2018
11:33:19
ну если предложить что в городе несколько приютов и оно убегает
это в реальности в условиях задачи про это не слово можно конечно не предусматривать

Alfred
19.08.2018
11:33:59

Evgeniy
19.08.2018
11:35:03
первый пункт указывает на то что твой приют отвечает за создание объектов животных (инстанцирование) в себе и за их хранение что как бы класс делает кое что не свое

Aleh
19.08.2018
11:35:17

Evgeniy
19.08.2018
11:35:45
ну гоу каждый свою видимость кода напишет )
чтобы сраться знатно)
еще не совсем понимаю зачем такие phpdoc методам ? https://github.com/alfredleo/shelter/blob/master/local/shelter/Shelter.php#L60 в методе указано все тоже самое (не относится к solid)

Google

Alfred
19.08.2018
11:37:56
Сраться не надо, можно решить несколько путями. Главное что бы основные принципы не нарушались.
Пхпдок нарушает что то?

Evgeniy
19.08.2018
11:39:06
не нарушает я написал, просто это бессмысленная штука в данном случае
вот еще https://github.com/alfredleo/shelter/blob/master/local/shelter/Shelter.php#L48
public function addPet(Pet $pet) вот так бы я сделал инстанцировать животное за пределами
и тогда весь приют сводится к коллекции элементов