Блог о программировании

Алгоритм сортировки пузырьком

Категория: Алгоритмы
 10 декабря 2016 г. 23:29

Данный алгоритм является простейшим для сортировки как в плане понимания, так и в плане реализации. Алгоритм считается учебным, поскольку практически не применяется на практике ввиду существования более эффективных алгоритмов.

Пузырьковая сортировка предполагает следующее: если массив не отсортирован, то любые ва смежных элемента могут находиться в неправильном положении, соответственно, чтобы это исправить, алгоритм перебирает все смежные пары массива от начала и до его конца, по пути меняя неправильно расположенные элементы. Итерация прохождения массива от начала и до конца происходит до тех пор, пока массив не будет отсортирован.

Читать далее  

Объектно-ориентированное мышление

Категория: Книги
 12 октября 2016 г. 23:22

Автор:Мэтт Вайсфельд

Обложка книги 'Объектно-ориентированное мышление'

В предисловии говорится, что книга будет полезна и понятна как начинающим разработчикам и даже менеджерам, так и опытным программистам. Мое мнение, что для опытных программистов книга слишком поверхностна, а для начинающих - слишком противоречива.

В самом названии книги поставлена цель научить читателя объектно-ориентированному мышлению. На мой взгляд книга своей цели не достигает. Да, в книге раскрыты все понятия ООП, но как-то сложно, что-ли. Примеры выбраны неудачные, да и сам способ объяснения оставляет желать лучшего. Также встречаются неточности перевода, что может ввести в заблуждение начинающих программистов.

Очень много внимания в книге уделено около-ООПшным темам: диаграммы uml, шаблоны проектирования, фреймворки, форматы передачи данных xml и json, веб-сервисы и т.д. Данные темы в книге даются в ознакомительных целях. Получилась книга обо всем, но не о главном - мышлении объектами. В общем, уж лучше прочитать какую-либо другую книгу по ООП, нежели тратить время на эту. По теме ООП можно выделить книгу Брюса Эккеля "Философия Java" - описание ООП в ней ведется более последовательно и наглядно.

Теги:  книга  ООП 

Шаблон Observer на PHP

 26 сентября 2016 г. 18:28

Observer(Наблюдатель) - является поведенческим шаблоном проектирования. Является достаточно популярным шаблоном проектирования, но, при этом, очень прост в реализации. Данный шаблон предполагает зависимость между объектами "один ко многим" так, что при изменении состояния одного объекта все зависящие от него объекты уведомляются и обновляются автоматически. Таким образом, в шаблоне наблюдаются две роли: субъект и слушатель. Шаблон "Наблюдатель"определяется следующими свойствами:

  • существует, как минимум, один субъект, рассылающий сообщения;
  • имеется не менее одного получателя сообщений, причём их количество и состав могут изменяться во время работы приложения;
  • нет надобности очень сильно связывать взаимодействующие объекты, что полезно для повторного использования.

Шаблон подходит для любого сценария, в котором требуется использование push-уведомлений. Очень часто его можно заметить в системах пользовательского интерфейса.


Аналогия

Самая банальная аналогия - подписка на рассылки какого-либо сайта. Когда на сайте появляется новый материал, то всем подписчикам рассылается e-mail-уведомление о появлении нового материала, а подписчики уже принимают решение просматривать новый материал или нет.

Читать далее  

Простая jQuery галерея изображений

Категория: Javascript
 11 августа 2016 г. 17:30

Библиотека jQuery появилась в 2007 году. С тех пор с ее использованием было разработано огромное количество плагинов, в том числе и галерей изображений. Они изобилуют красивыми рамками, годными анимационными переходами и замечательным дизайном. Однако, что интересно, мне еще не попадалась на глаза какая-нибудь jQuery-галерея с возможностью поворота изображения. А ведь довольно часто приходится просматривать изображения, перевернутые на 90 градусов, а то и вовсе загруженные вверх-ногами. Именно такая функциональность требовалась для моего проекта.

На самом деле, переворачивать изображения с использованием javascript очень легко. Зная это, я решил написать свою простую галерею изображений с возможностью поворота, которая базируется на плагине jquery. Сказано – сделано, спустя несколько часов появились вполне себе годные результаты:

Читать далее  

Теги:  jQuery  javascript 

Обрезка изображений в PHP стандартными средствами

Категория: PHP
 8 июля 2016 г. 11:41

В веб-разработке часто встает задача нарезки изображений, например, для создания аватарки, для отображения изображений в новостях сайтов, в конце-концов, для предпросмотра изображений. Для этих целей может сгодиться универсальный способ обрезки: выделить наиболее подходящую центральную область на первоначальном изображении и перенести эту область, предварительно смасштабировав, на новое изображение необходимого размера. На картинке будет много яснее:

Обрезанное по центру изображение

Конечно, такой способ обрезки не тянет на звание "серебряной пули", но за неимением более продвинутой логики обрезки изображений вполне может успешно использоваться. Код, решающий таким образом задачу, приведен ниже:

Читать далее  

Теги:  php 

PHP. Рецепты программирования

Категория: Книги
 3 июля 2016 г. 16:26

Авторы: Дэвид Скляр, Адам Трахтенберг

Обложка книги 'PHP. Рецепты программирования' В этой книге читатель не найдет развернутой информации по особенностям ООП в PHP, ровно как и информацию по шаблонам проектирования. Книга вообще не об организации кода. Она о другом. В данной книге собраны решения множества задач, с которыми повсеместно сталкивается PHP-программист, более того, эти задачи грамотно объединены в категории, поэтому найти решение в книге не составит труда, конечно, при условии, что оно там есть. К каждому рецепту прилагаются тонны кода и в довесок доходчивые пояснения, а при необходимости приводятся ссылки на сторонние ресурс. Книга ориентирована на разные уровни программистов - и каждый найдет в ней, что почерпнуть для себя.

В книге, в частности, описаны решения следующих наболевших задач:

  • валидация форм;
  • решение проблем безопасности;
  • работа с графиков;
  • обработка XML и JSON файлов;
  • работа с REST-сервисами;
  • рассмотрены вопросы интернационализации и локализации;
  • работа с регулярными выражениями;
  • работа с файловой системой;
  • отладка сценариев и написание юнит-тестов;
  • оптимизация веб-приложений.

Книга, безусловно, заслуживает внимания. Хотя бы как настольный справочник она будет выручать как начинающих, так и практикующих 1-2 года PHP-программистов.

Теги:  PHP  книга 

Реализация RSS-ленты на PHP с использованием ООП

Категория: PHP
 21 июня 2016 г. 1:09

RSS — семейство XML-форматов, предназначенных для описания лент новостей, анонсов статей, изменений в блогах и т. п. Информация из различных источников, представленная в формате RSS, может быть собрана, обработана и представлена пользователю в удобном для него виде специальными программами-агрегаторами. Обычно с помощью RSS 2.0 даётся краткое описание новой информации, появившейся на сайте, и ссылка на её полную версию. Интернет-ресурс в формате RSS называется RSS-каналом или RSS-лентой или RSS-фидом. Практически все популярные современные браузеры поддерживают RSS каналы: Safari, Maxthon, Mozilla Firefox, Mozilla Thunderbird, Opera, Microsoft Internet Explorer начиная с 7-й версии. Технически RSS-лента представляет собой веб-страницу, информация на которой отображается в определенном формате.

В данной статье будет рассмотрен самый последний формат на момент написания статьи - RSS 2.0. Полная спецификация данного формата находится здесь. Для того, чтобы RSS-лента корректно работала, одна должна быть пройдена валидатором.


Пример RSS

Читать далее  

Теги:  php  rss  ООП 

Ошибки в PHP. Ликбез

Категория: PHP
 17 июня 2016 г. 0:38

Неотъемлемой частью программирования является выявление ошибок в коде. Будь программист хоть семь пядей во лбу, все равно, он будет совершать ошибки, иногда даже банальные. Этому способствует сама природа человека. Поэтому за отладкой и выявлением ошибок в коде программист проводит достаточно большую часть времени. Соответственно, чем гибче и удобнее существуют инструменты для выявления ошибок в коде, и чем лучше программист ими владеет, - тем выше его продуктивность.
Поскольку PHP является скриптовым языком программирования, то все ошибки, допущенные в коде, выявляются по ходу исполнения кода. Программисту PHP предстоит сталкиваться как со стандартными ошибками, присущими программированию в целом, так и с довольно скрытыми ошибками – такими как опечатки в именовании переменных.
Язык PHP предусматривает два механизма выявления ошибок в скрипте в процессе его выполнения: стандартный механизм ошибок PHP и механизм исключений. В PHP множество функционала использует стандартный механизм ошибок, поэтому не знать о нем нельзя. Поэтому в данной статье речь пойдет именно об этом механизме.
Стандартный механизм ошибок PHP довольно прост – если в процессе выполнения сценария интерпретатор PHP сталкивается с какой-либо ошибкой – он пытается известить об этом программиста. Однако настроек этого механизма предусмотрено довольно много, поэтому разобраться в них программисту, познающему PHP, довольно сложно.

Видим ошибки

Читать далее  

Теги:  php  отладка 

Все об автозагрузке в PHP

Категория: PHP
 5 июня 2016 г. 23:10

PHP-программисту, использующему ООП, довольно часто требуется так организовать классы, чтобы определение каждого из них находилось в отдельном файле. В таком случае программист нередко сталкивается с довольно нудной задачей: подключением используемых классов, которые используются в проекте. Чтобы автоматизировать данный процесс, в PHP 5.0 была предусмотрена возможность автозагрузки классов.


__autoload()

Начиная с версии PHP 5.0 была введена функция __autoload(). Способ работы ее совершенно прост: когда скрипт в коде натыкается на неизвестный ему класс, он вызывает функцию __autoload(), при условии, что она была определена, и передает ей название неизвестного класса в надежде, что эта функция подключит файл с определением данного класса. Таким образом, в функции __autoload() следует указать каким именно способом будет происходить поиск требуемых к подключению классов.

Читать далее  

Теги:  php  автозагрузка 

Настройка Netbeans для PHP-программиста

 22 мая 2016 г. 23:28

IDE Netbeans является одой из самых популярных бесплатных сред разработки. И ведь полюбить ее есть за что: тут и универсальная платформа для использования многих языков программирования(java, PHP, javascript, C/C++ и т.д.), и гибкая настройка среды и редактора под свои нужды, и расширение возможностей среды благодаря огромному количеству сторонних плагинов... В общем, есть за что любить Netbeans. Однако, после первоначальной установки IDE довольно неудобна в использовании, поскольку по-умолчанию интерфейс чрезмерно нагроможден, включено слишком многое и, зачастую, не совсем нужное. Уверен, что множеству людей приходится тщательно разбираться со сложным интерфейсом IDE и ее многочисленными настройками после того, как запустили эту программу впервые. Я постараюсь облегчить задачу, как минимум, для разработчиков PHP.

В данной статье пойдет речь о настройке IDE Netbeans под нужды работы с чистым PHP кодом без каких-либо фреймворков.

Читать далее  

Теги:  php  netbeans  xdebug  отладка