Посоветуйте литературу по современным способам программирования (гетеры,сетеры,DI и т.д.)
Посоветуйте литературу по современным способам программирования (гетеры,сетеры,DI и т.д.)
Здравствуйте.
Много лет программирую на PHP с использованием различных фреймворков в том числе и йии, но вообще не понимаю современные подходы к программированию, когда всё реализовано на геттерах, сеттерах и различных DI. Я пришел из мира быдлокодеров (начинал программировать в 2005 году), где даже просто использование классов казалось вершиной совершенства. И не понимаю где вообще про всё это можно почитать? Какую книгу по PHP не открою, только базовый синтаксис и т.д., а я всё это и так знаю, а вот конкретно современных описаний архитектур нет либо совсем чуть-чуть. Сейчас мне надо с нуля написать довольно масштабный скрипт без использования фреймворком и код будут смотреть профессионалы, поэтому хочу хотя бы чтобы мой код в их глазах выглядел более менее грамотным и современным.
Мне даже в соседней теме посоветовали для подключения конфига использовать DI, а я не то чтобы совсем не понимаю что это такое, но просто не понимаю его плюсы и вообще смысла такого подхода. Посоветуйте, пожалуйста, литературу или статьи.
Много лет программирую на PHP с использованием различных фреймворков в том числе и йии, но вообще не понимаю современные подходы к программированию, когда всё реализовано на геттерах, сеттерах и различных DI. Я пришел из мира быдлокодеров (начинал программировать в 2005 году), где даже просто использование классов казалось вершиной совершенства. И не понимаю где вообще про всё это можно почитать? Какую книгу по PHP не открою, только базовый синтаксис и т.д., а я всё это и так знаю, а вот конкретно современных описаний архитектур нет либо совсем чуть-чуть. Сейчас мне надо с нуля написать довольно масштабный скрипт без использования фреймворком и код будут смотреть профессионалы, поэтому хочу хотя бы чтобы мой код в их глазах выглядел более менее грамотным и современным.
Мне даже в соседней теме посоветовали для подключения конфига использовать DI, а я не то чтобы совсем не понимаю что это такое, но просто не понимаю его плюсы и вообще смысла такого подхода. Посоветуйте, пожалуйста, литературу или статьи.
Re: Посоветуйте литературу по современным способам программирования (гетеры,сетеры,DI и т.д.)
Либо может быть готовый код на гитхабе посоветуйте, на примере которого можно понять современные подходы в программировании.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Посоветуйте литературу по современным способам программирования (гетеры,сетеры,DI и т.д.)
Не очень верное желание. Лучше уж написать нормально, а не делать видимость... когда делают видимость выходит навёрнуто, но от этого не грамотно и работать с таким хуже, чем с тем, что писалось без ООП.хочу хотя бы чтобы мой код в их глазах выглядел более менее грамотным и современным.
http://slides.rmcreative.ru/2016/yii2-architecture/ — полистайте. В слайдах много интересных аббревиатур, можно про них почитать. Про ООП и SOLID в особенности. Видео тоже есть: https://www.youtube.com/watch?v=YXvGM9E ... c8zaXabDO-
На тему "зачем" ответить не так просто. Весь смысл вводить ООП и абстракции в том, чтобы большие сложные системы можно было уместить в голове. Пример из жизни: автомобиль. Мы можем уместить в голове сам автомобиль, педали, двери, как с этим всем управляться. При этом вся внутренняя кухня скрыта под капотом. Если бы всё торчало наружу, осмыслить это было бы очень тяжело.
Нравится Yii? Давайте сделаем его лучше!.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Посоветуйте литературу по современным способам программирования (гетеры,сетеры,DI и т.д.)
Классические труды по ООП рекомендовать не буду. Они не очень просты для восприятия и ответ на вопрос "зачем" там найти тяжело.
Попробуйте найти в каком-либо проекте у себя то, что не удаётся целиком запихнуть в голову и растащить по отдельным классам, следуя принципам SOLID.
Попробуйте найти в каком-либо проекте у себя то, что не удаётся целиком запихнуть в голову и растащить по отдельным классам, следуя принципам SOLID.
Нравится Yii? Давайте сделаем его лучше!.
-
- Сообщения: 977
- Зарегистрирован: 2014.08.27, 21:54
Re: Посоветуйте литературу по современным способам программирования (гетеры,сетеры,DI и т.д.)
По DI - Начните с документации по Yii2, чтоб понять, для чего нужен DI.
Простейший пример.
У вас много модулей. Каждый из них выводит в index action по 10 записей.
Заказчик попросил, чтобы везде выводилось по 25, а в самом пагинаторе - кнопки 3 слева и 3 справа от выбранной страницы, ну и ко всему прочему - чтоб пагинация была обратной. (не 1,2,3...150, а 150, 149, 148...1)
подробнее тут
http://yiiframework.domain-na.me/doc/gu ... -container
ну а в нашем случае в config/bootstrap.php
Простейший пример.
У вас много модулей. Каждый из них выводит в index action по 10 записей.
Заказчик попросил, чтобы везде выводилось по 25, а в самом пагинаторе - кнопки 3 слева и 3 справа от выбранной страницы, ну и ко всему прочему - чтоб пагинация была обратной. (не 1,2,3...150, а 150, 149, 148...1)
подробнее тут
http://yiiframework.domain-na.me/doc/gu ... -container
ну а в нашем случае в config/bootstrap.php
Код: Выделить всё
Yii::$container->set('yii\data\Pagination', [
'pageSizeLimit' => [1, 50],
'forcePageParam' => false,
'defaultPageSize' => 25,
'pageSize' => 25,
]);
Yii::$container->set('yii\widgets\LinkPager', [
'class' => \loveorigami\pagination\ReverseLinkPager::class, // обратный пагинатор https://github.com/loveorigami/yii2-reversed-pagination
'activePageAsLink' => false,
'maxButtonCount' => 7,
.....
]);
Re: Посоветуйте литературу по современным способам программирования (гетеры,сетеры,DI и т.д.)
это все не di, а ограниченный yii-кейс.Loveorigami писал(а): ↑2017.01.31, 12:24 По DI - Начните с документации по Yii2, чтоб понять, для чего нужен DI.
Простейший пример.
У вас много модулей. Каждый из них выводит в index action по 10 записей.
Заказчик попросил, чтобы везде выводилось по 25, а в самом пагинаторе - кнопки 3 слева и 3 справа от выбранной страницы, ну и ко всему прочему - чтоб пагинация была обратной. (не 1,2,3...150, а 150, 149, 148...1)
подробнее тут
http://yiiframework.domain-na.me/doc/gu ... -container
ну а в нашем случае в config/bootstrap.php
Код: Выделить всё
Yii::$container->set('yii\data\Pagination', [ 'pageSizeLimit' => [1, 50], 'forcePageParam' => false, 'defaultPageSize' => 25, 'pageSize' => 25, ]); Yii::$container->set('yii\widgets\LinkPager', [ 'class' => \loveorigami\pagination\ReverseLinkPager::class, // обратный пагинатор https://github.com/loveorigami/yii2-reversed-pagination 'activePageAsLink' => false, 'maxButtonCount' => 7, ..... ]);
Re: Посоветуйте литературу по современным способам программирования (гетеры,сетеры,DI и т.д.)
samdark дал верное направление. От себя добавлю, что понимание (не заучивание) принципов SOLID делает level up в профессионализме программиста, восприятие программирования в целом и понимании как работают и должны работать приложения.
Re: Посоветуйте литературу по современным способам программирования (гетеры,сетеры,DI и т.д.)
Архитектура описана именно в отдельных в книгах по архитектуре на C#, Java и подобных языках, а не в самоучителях PHP.
Да, я и советовал. Как говорил где-то здесь, любая архитектура придумана для облегчения сложного кода, а не для усложнения простого. Поэтому и видна становится только на сложных примерах.
Как раз посоветую сразу начать с практического интенсива по ООП и архитектурным подходам, который я сочинял и улучшал целый год. А потом перейти к прилагаемому к нему внутри списку литературы. Это ускорит изучение на несколько лет.
Последний раз редактировалось ElisDN 2017.02.01, 04:17, всего редактировалось 1 раз.
Re: Посоветуйте литературу по современным способам программирования (гетеры,сетеры,DI и т.д.)
Все ответили по делу и очень помогли мне. Сообщество Yii самое лучшее!
Большое всем спасибо!
Большое всем спасибо!
Re: Посоветуйте литературу по современным способам программирования (гетеры,сетеры,DI и т.д.)
Есть простая книга для входа в ООП. Она не большая, все просто и разжевано, некоторое понимание даст. Для новичка в ООП самое то.
Примеры на Java, но это не должно быть проблемой.
http://www.piter.com/product_by_id/15386046
Примеры на Java, но это не должно быть проблемой.
http://www.piter.com/product_by_id/15386046
-
- Сообщения: 977
- Зарегистрирован: 2014.08.27, 21:54
Re: Посоветуйте литературу по современным способам программирования (гетеры,сетеры,DI и т.д.)
Согласен... не заметил, что вопрос общий, а не в контексте yii2.