Чтобы начать делать сайты на YII2, нам понадобится Веб-сервер, PHP 5.4, Git, Composer, знание «ООП в PHP» и АйКью > 103. Надо сказать, это будет не так уж и сложно, но и не просто. Эта статья поможет стартануть проект на YII2 самому дну веб-разработки: «школьникам» и старперам — адептам CodeIgniter. Другие статьи в Интернете либо еще не созданы (стабильной версии YII2 еще нет), либо написаны для тех, кто уже создал тысячу YII1 и сотню YII2 сайтов. Я не такой и статью я буду писать не такую, а простую и понятную, ведь эта статья — мой конспект, который я вел во время изучения YII2. Читать полностью »
Рубрика «ооп» - 35
YII 2, старт для новичка
2014-07-10 в 19:59, admin, рубрики: codeigniter, crud, framework, mvc, php, yii, yii 2, оопКак стать хорошим программистом?
2014-06-17 в 3:27, admin, рубрики: php, обучение программированию, ооп, Программирование, метки: PHP, обучение программированиюДорогие хаброюзеры, знаю что вы больше любите вкусьненькие посты чем размышления и всякие разные вопросы-опросы. Но у меня уже который месяц болит голова от одного и того же вопроса — как стать хорошим программистом (ниже опишу что я имею ввиду). Вопрос состоит вот в чем:
Я с детства стал увлекаться созданием сайтов. С 6го класса делал первый сайт для своей школы, учил HTML и вставлял различные готовые ЯваСкриптпы в свои мелко-сайты. Начал покупать полезную литературу и осваивать CSS и HTML. Позже в 9м классе учился программировать на Делфи. Школьный паскаль указывать не буду — это все проходили.
Потом на это дело я все таки забил, несколько лет занимался бизнесом и решил вспомнить молодость и пойти учиться в Компьютерную Академию. Два с половиной года потратил на обучение на веб-дизайнера. Программирование с++ мне вообще не далось, сколько не пытался его в курить — ни как не получалось. Зато пхп очень понравился, особенно в то время я был захвачен выводом из баз данных информации и начал развиваться в этом направлении. Сделал одному клиенту сайт на своем движке (что написал по книгам наших программистов) — интернет-каталог, вложил пол года в раскрутку. Сайт начал приносить прибыль причем большую и я стал опять заниматься коммерцией, забив на программирование.
Читать полностью »
Классы и фабрики. Как разобрать и собрать объект с наследованием на прототипах
2014-06-16 в 8:14, admin, рубрики: Gamedev, html5, javascript, Блог компании i-Free, Веб-разработка, ооп Привет!
При разработке игр на JavaScript часто возникает необходимость создавать множество объектов. О том, как правильно это сделать и не утонуть в коде, я рассказывал, примерно — месяц назад на Frontend Dev Conf в Минске. Возможно, доклад будет интересен тем, кто не был на конференции и сталкивался с проблемой создания множества объектов, либо является разработчиком HTML5 игр.
Под катом текст с картинками.
Читать полностью »
Наш вариант подхода к написанию JS приложений. Загрузка скриптов и проксирование
2014-06-12 в 18:03, admin, рубрики: javascript, web-разработка, Веб-разработка, ооп, ооп js, Проектирование и рефакторинг, метки: javascript, web программирование, web-разработка, ооп, ооп js Приветствую Всех!
В прошлый раз, то ли по неопытности, то ли ещё по какой причине — выложив статью я не смог отстоять своё мнение по поводу «необходимости» написания своего «велосипеда» ( как некоторые это назвали ) для масштабируемых JS приложений. На это положило отпечаток то что проект находится в разработке, и некоторые скрипты выложить я ну никак не мог.
Но сегодня я всё-же хочу постараться переубедить всех противников такого «велосипедостроения» в том что это действительно было необходимо, и покажу конкретные примеры, и с конкретными же исходниками.
Является ли Go языком ООП?
2014-06-12 в 6:06, admin, рубрики: extends, has-a, implements, inheritance, is-a, java, композиция, ооп, организация кода, ПрограммированиеObject-oriented design is the roman numerals of computing.
— Rob Pike, автор Go.
Предлагаю вашему вниманию вольный перевод заметки «Is Go An Object Oriented Language?» за авторством Steve Francia, в которой автор наглядно рассказывает об особенностях использования парадигмы ООП в Go. Сразу предупреждаю, что из-за свойств оригинального материала большую часть текста пришлось переформулировать полностью, где-то добавить своего. Флажок перевода убирать не стал.
Читать полностью »
Структурная типизация в C#
2014-04-06 в 17:35, admin, рубрики: golang, ооп, паттерны, метки: c++, golang, паттерныКогда я изучал язык Go, мне очень понравилась идея с приведением к интерфейсам по сигнатурам методов (остальная часть системы типов мне не понравилась, слишком примитивная). Это ведь статическая утиная типизация! По научному: структурная типизация.
Если вдуматься, у такого подхода куча недостатков: начиная со сложности реализации и заканчивая нарушением принципа подстановки Лисков. Ведь если у класса есть метод с нужной сигнатурой (включая название), это совсем не значит, что этот метод делает то, что ожидается.
Поэтому в мейнстрим языках, в том числе в C#, структурная типизация не поддерживается. Казалось бы на этом и сказке конец. Но недавно я осознал что в проекте, которым я сейчас занимаюсь, структурная типизация применяется. Подробности под катом.
Читать полностью »
Концепция АТД
2014-03-22 в 14:32, admin, рубрики: java, архитектура приложений, АТД, класс, ооп, проектирование, Проектирование и рефакторинг, Совершенный код, метки: архитектура приложений, АТД, класс, ооп, проектирование, совершенный кодДоброго времени суток, читатели!
Следующий пост является изложением моих размышлений на тему природы классов и АТД. Эти размышления дополнены интересными цитатами из книг гуру разработки программного обеспечения.
Введение
Начнем с того, что плавно подойдем к определению АТД. АТД, в первую очередь, представляет собой тип данных, что означет следущее:
наличие определенных доступных операций над элементами этого типа;
а также данные, относительно которых эти операции выполняются (диапазон значений).
[PHP] Принцип открытости/закрытости кода и какие трудности могут встать на пути
2014-03-12 в 12:40, admin, рубрики: php, solid, Веб-разработка, ооп, метки: PHP, solid, оопНа хабре не раз поднимался вопрос важности SOLID, в частности принцип открытости/закрытости кода. В данном посте я расскажу как реализовать его на PHP и через какие испытания прийдётся пройти.
Что это такое?
SOLID — это совокупность пяти основных принципов дизайна классов в ООП. Одни из них и является принцип открытости/закрытости кода. Он гласит, что программные сущности должны быть открыты для расширения, но закрыты для изменения.
Читать полностью »
Шаблоны проектирования PHP. Часть 1. Порождающие
2014-03-10 в 7:48, admin, рубрики: php, ооп, шаблоны проектирования, метки: PHP, ооп, шаблоны проектированияТема заезженная до дыр, не спорю… Вероятно, для опытных разработчиков моя статья будет мало, чем полезна. Я бы рекомендовал её к прочтению тем, кто только начал осознавать, что его коду чего-то не хватает, и что он созрел для вникания в это далёкое понятие – «паттерны». По себе помню, что довольно долгое время я путался в шаблонах, иногда даже не понимая, чем один отличается от другого. Именно этот факт стал основой для моей статьи. Примеры в ней не будут реальными. Они будут абстрактными и максимально простыми. Однако я постараюсь все примеры держать в едином контексте, чтобы можно было наглядно видеть отличия их использования в одной и той же ситуации. Я не буду нагружать классы лишним функционалом, чтобы можно было понять, какая именно часть кода имеет непосредственное отношение к шаблону. Главными героями примеров станут Factory (фабрика) и Product (продукт, производимый этой фабрикой). Возьмём это отношение за отправную точку. Возможно, в некоторых примерах это будет не очень уместно, но зато очень наглядно…
Статья будет разбита на несколько частей. В каждой я буду рассказывать о новом типе шаблонов проектирования. Всем, кого эта тема может заинтересовать, прошу под кат.Читать полностью »
Применяем делегирование совместно с наследованием для организации контроллеров действий
2014-02-26 в 14:59, admin, рубрики: php, ооп, метки: PHP, ооп Добрый день коллеги, сегодня я расскажу сказку о своём опыте организации контроллеров в проекте на ZF 1 (так исторически сложилось).
В хороших книжках по ООП часто пишут, что наследованием нельзя увлекаться, нужно предпочитать делегирование или делать так, чтобы они работали совместно. К сожалению, не всегда можно быстро догадаться, как применить сухую теорию на практике (а когда наконец-то доходит, удивляешься «что тут сложного?»), поэтому надеюсь мой опыт кому-нибудь пригодится.
И так сначала о проблемной области:
31 Controller Action, большинство из них имеет методы indexAction(), addAction(), editAction(), searchAction().
проблема №1: большинство, но не все. В остальных наличие этих методов варьируется,
проблема №2: методы editAction() и addAction() массивные сами по себе, и почти одинаковые для всех контроллеров, отличаются инициализация формы, и сохранение модели.
Как я это решил, покажу сразу в коде.
Читать полностью »