@oop_ru

Страница 717 из 785
Вадим
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
+ dateCreate у Pet это что? Дата рождения?
Это когда животное занесли в приют

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
Aleh
18.08.2018
17:33:26
listPetsByType -> array_filter
ну или $collection->filter()

ActiveRecord ;)))
да не, знать дату создания объекта может быть нужно, если его лайфцикл в системе совпадает с лайфциклом вне в простых случаях(дата публикации поста)

ну т.е. это еще хотя бы удобно)

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

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

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
Животному точно не нужен ид. Я по типу базы планировал
Мы же разбираем в контексте классов, а не непонятно какой ORM

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

Вадим
18.08.2018
17:46:17
Животному точно не нужен ид. Я по типу базы планировал
Ну и Pet лучше интерфейсом, и AbstractPet то что у тебя сейчас в Pet

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

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

Ид, у тебя ключ массива

Ид, у тебя ключ массива
Но можешь ид и в ShelterPet писать ;)

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

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

PowerAxis
18.08.2018
21:53:19
Можно на работу пойти.
Но ведь без опыта возьмут на какую-то обезьянничью должность

Andrey
18.08.2018
21:53:53
Но ведь без опыта возьмут на какую-то обезьянничью должность
А ты хочешь чтобы тебя взяли на обезьянничью работу с опытом обезьянничей работы?)

Google
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
что это?

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
Привет всем, есть тут кто хорошо разбирается в классах, PSR, SOLID на php? Хочу спросить посмотреть на репу, есть ли, на ваш взгляд, недочеты в плане реализации.
почему тут не объект животного передается? зачем ты их тогда создавал ? https://github.com/alfredleo/shelter/blob/master/local/shelter/Shelter.php#L34

во вторых у тебя кличка прилипает к животному а одно и таже дворняга в разных приютах могут называть по разному

поэтому кличку животному в рамках приюта надо давать

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

Aleh
19.08.2018
11:33:11
Животному точно не нужен ид. Я по типу базы планировал
Для персистентности ты не можешь полагаться на сравнение по ссылке доступное в языке, хотя тем не менее в системе должна существовать только один объект для одной сущности

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

это в реальности в условиях задачи про это не слово можно конечно не предусматривать

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

Aleh
19.08.2018
11:35:17
Ну и Pet лучше интерфейсом, и AbstractPet то что у тебя сейчас в Pet
Pet - интерфейс это да, но вот нужен ли AbstractPet...

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) вот так бы я сделал инстанцировать животное за пределами

и тогда весь приют сводится к коллекции элементов

Страница 717 из 785