Продолжение предыдущего поста
Читать полностью »
Рубрика «ооп» - 36
Yii обмен опытом: модели (окончание)
2014-02-22 в 22:16, admin, рубрики: php, yii, yii framework, Веб-разработка, ооп, метки: PHP, yii, yii framework, оопYii — обмен опытом: модели
2014-02-14 в 22:42, admin, рубрики: active record, php, yii, Веб-разработка, ооп, метки: active record, PHP, yii, ооп
Материал в данной статье предназначен для разработчиков, которые уже имеют навыки работы с YII фреймворком. Опытным программистам материал может показаться неинтересным.
Статья написана для фреймворка версии YII 1.1.14. Под катом много текста с фрагментами кода.
Читать полностью »
Особенности реализации MVP для Windows Forms
2014-02-10 в 7:56, admin, рубрики: .net, mvp, pattern, windows forms, WinForms, ооп, паттерны проектирования, метки: mvp, pattern, windows forms, WinForms, паттерны проектирования Доброго времени суток!
Model-View-Presenter — довольно известный шаблон проектирования. С первого взгляда все выглядит просто: есть Модель (Model), которая содержит всю бизнес-логику экрана; Вид/Представление (View), который знает, как отобразить те или иные данные; Представитель (Presenter), который является связующий звеном — реагирует на действия пользователя во View, изменяя Model, и наоборот.
Сложность начинается, когда количество форм в проекте становится более одной.
В данной статье рассматривается:
— немножко теории;
— общие проблемы реализации MVP (а именно Passive View) под Windows Forms;
— особенности реализации переходов между формами и передача параметров, модальные окна;
— использование IoC-контейнера и шаблона Dependency Injection — DI (а именно Сonstructor Injection);
— некоторые особенности тестирования MVP приложения (с использованием NUnit и NSubstitute);
— все это будет происходить на примере мини-проекта и постарается быть наглядным.
В статье затрагивается:
— применение шаблона Адаптер (Adapter);
— простенькая реализация шаблона Контроллер приложения (Application Controller).
Для кого эта статья?
Главным образом для начинающих разработчиков на Windows Forms, которые слышали, но не пробовали, или пробовали, но не получилось. Хотя уверен, что некоторые приемы применимы и для WPF, и даже для веб-разработки.
Читать полностью »
Как я классы в Vim писал
2014-01-31 в 7:22, admin, рубрики: vim, велосипедостроение, ооп, Программирование, прототипирование, метки: vim, велосипедостроение, ооп, прототипирование
Предисловие
Уже около четырех лет увлекаюсь языком JS, а особенно привлекает в нем прототипная реализации объектной ориентации и замыкания. Так как я большой любитель «велотренажеров» в программировании и обожаю изучать что-то новое на практических примерах, давно хотел попробовать реализовать подобное самостоятельно, и совсем недавно шанс выпал. Одним холодным зимним днем я увлекся редактором Vim и, изучая его скриптовый язык, обратил внимание на некоторые важные особенности, а именно ассоциативные массивы и передача функций по ссылки. Я не смог пройти мимо и реализовал свою прототипную объектную ориентацию в Vim с наследованием и полиморфностью.
Хочу сразу обрадовать тех, кто не знаком с синтаксисом скриптового языка Vim, я постараюсь сопровождать код подробными комментариями. Оговорюсь, что целью этой работы было не создание полноценной объектной ориентации в Vim, а практика в реализации объектной парадигмы через прототипирование. Я, конечно, пытался сделать реализацию максимально легковесной и быстрой, но все равно сомневаюсь, что полученный результат можно эффективно применять в «боевых» скриптах, потому, прошу относится к этому соответственно.
Пять моих «граблей» в разработке на PHP
2014-01-12 в 23:03, admin, рубрики: mvc, php, yii, ооп, Программирование, метки: mvc, PHP, yii, ооп, ПрограммированиеЗдравствуйте, уважаемые пользователи! В этом посте хотел бы поделиться своим личным опытом «наступания на грабли» во время разработки веб-приложений на языке программирования PHP. Текст будет интересен тем, кто хочет посмотреть на путь девелопера от «зеленого самоучки» до «профессионального разработчика», а также начинающим программистам, которые не против узнать о том, «как не нужно делать» и почему. Возможно даже кто-то вспомнит себя и улыбнётся. Возможно, кто-то просто улыбнётся с моего старого кода.
Все мое ознакомление с веб-разработкой начиналось в далеком 2009-м году с распечатанных непонятных и сложных справочников и руководств, а также ковыряния кода (очень плохого, кстати) open source CMS. Позже я начал использовать ООП и заботиться о «правильности», а ещё позже — замечательный фреймворк Yii, поэтому весь «хороший» код в посте будет демонстрироваться именно с использованием этого фреймворка.
Читать полностью »
Двадцать тысяч строк кода, которые потрясут мир?
2014-01-08 в 12:54, admin, рубрики: ооп, операционные системы, Программирование, языки программирования, метки: ооп, операционные системы, языки программирования Алан Кей, автор SmallTalk, работает над экспериментальной системой STEPS – средой, которая способна заменить собой операционную систему и прикладные программы, при этом объём кода этой среды не должен превышать 20 000 (двадцать тысяч!) строк кода. Возможно, многие об этом уже слышали . Это одна из попыток воплощения мечты любого программиста: написать всё заново и красиво. Но возможно ли это?
Читать полностью »
Метаклассы в Objective-C
2013-12-29 в 8:36, admin, рубрики: objective-c, ооп, метки: objective-c, оопДанная статья представляет собой перевод статьи What is a meta-class in Objective-C?
Перевод является авторским. Незначительные дополнения в основном касаются документации Apple и добавлены исключительно для удобства уважаемых читателей. При копировании перевода статьи ссылка на оригинал перевода обязательна. Давайте будем уважать совместный труд.
Причуды абстракций
2013-12-24 в 14:56, admin, рубрики: абстрагирование, абстракция, Блог компании LLC Tik-Tok Coach, класс, ооп, Программирование, метки: абстрагирование, абстракция, класс, ооп
За годы преподавания и коммерческой разработки я повстречал много студентов и разработчиков с одним и тем же заблуждением насчет ООП: класс = абстракция. Как я себе объясняю причину возникновения этого заблуждения — впервые, да, пожалуй, больше и нигде, программисты сталкиваются с понятием абстракции в книжках об объектно-ориентированном программировании, где как раз и говорится, что классы являются абстракциями. Естественно, не имея явно акцентированных других примеров абстракций, читатели начинают отождествлять абстракции с классами. В попытках искоренить данное заблуждение набралось много материала, из которого получилась настоящая статья. Что Вы найдете под катом:
- Определение понятия абстракции и объяснение откуда оно взялось в ООП.
- Объяснение на простых примерах, что такое барьер абстракции, побочный эффект абстракции.
- Как получается хардкод.
Объектная гимнастика
2013-12-20 в 16:42, admin, рубрики: Object Calisthenics, гимнастика, ооп, Программирование, разработкаВ первых двух абзацах оригинального текста автор описывает как он пил пиво с друзьями. Я заменил их пятничной картинкой о гимнастике из детства.
Объектная гимнастика (англ. Object Calisthenics) — это упражнения в программировании, которые состоят из 9 правил, которые Джефф Бей описал в своей книге «The ThoughWorks Anthology». Пытаясь как можно точней следовать этим правилам, вы измените свои привычки написания кода. Это не значит, что вы должны постоянно соблюдать все эти правила. Найдите баланс и используйте только те, которые вам удобны.
Эти правила сфокусированы на читаемости, тестируемости, понятности и поддерживаемости вашего кода. Если вы уже пишите код, который читаем, тестируем, понятен и поддерживаем, тогда эти правила помогут сделать его более читаемым, тестируемым. Понятным и поддерживаемым.
Ниже я прокомментирую этих 9 правил:
- Только один уровень отступа в методе
- Не используйте Else
- Оберните все примитивные типы и строки
- Коллекции первого класса
- Одна точка на строку
- Не используйте сокращения
- Сохраняйте сущности короткими
- Никаких классов с более чем 2 атрибутами
- Никаких геттеров, сеттеров и свойств