вторник, 13 августа 2013 г.

Глобализация написания приложений 2

Итак... продолжение статьи:)

2. Старайтесь уходить от привязок к названиям

Когда планируете какую то программу от самой маленькой до самой грандиозной постарайтесь не привязываться к названиям!

Например:
 Необходимо написать программу по учёту интересов к товару посетителей магазина.

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

Вот  здесь и кроется один из краеугольных камней!

Не привязывайтесь к названиям понятиям Товар, Посетитель...

Вам необходимо придать им общее значение - ОБЪЕКТ с какими то свойствами.


Объект: Посетитель 
Свойства:
Пол 
Возраст
Время посещения

Объект: Товар
Свойства:
Уровень полки
Категория товара
Цветовая гамма упаковки
Стоимость товара
И наконец Название товара


Таким образом мы видим, что в свойства объекта Товар попали понятия которые на первый взгляд не принадлежат ему, но они очень важны для анализа!

Не привязывайтесь к названиям и Вы сможете более объективно подойти к решению задачи, а главное к её оптимизации уже на уровне планирования!

Попробуйте представить себе какие объекты необходимы для программы учёта парковки машин.

Разбивайте на объекты любые события!

Абстрагируйтесь от них!

Но это уже другая история :)
Продолжение следует...:)


воскресенье, 28 июля 2013 г.

Глобализация написания приложений

Итак, давненько я не писал... работа...:)

Каждый программист рано или поздно приходил к моменту создания глобальных модулей.

Их называют красивым словом "Паттерны" и есть множество прекраснейших книг на эту тематику.

Но для выполнения небольших проектов вроде складского учёта и.т.д. начинающему программисту достаточно всего три базовых шага к успешному программированию:
1. Внимательно и глубоко изучайте понятие "объекты" в объектно ориентированном программировании.
2. Старайтесь уходить от привязок к названиям.
3. Абстрагируйтесь от выполнения задачи.

А теперь подробнее....:)


1. Внимательно и глубоко изучайте понятие "объекты" 
в объектно ориентированном программировании.

В далёкие 90-е годы я начинал программировать на языке программирования BASIC, сокращение от англ. Beginner's All-purpose Symbolic Instruction Code. 

Для начинающего программиста на компьютере с небольшим объёмом памяти (на современных телефонах во много раз больше :) ) - это было здорово!

Буквально  через полгода мне уже недостаточно было языка программирования BASIC и я начал глубоко изучать assembler , после начал ещё глубже изучать язык машинного кода и программировал в двоичном коде ... 

Но шло время, информационные системы совершенствовались... и после многих этапов развития  появилась идея Объектов в программировании.


Необходимо очень внимательно изучить это понятие! Поскольку тогда вы без труда будете переходить с одного языка программирования на другой.

Конечно, изначально крайне важно изучить примитивные типы данных, а так же
что такое переменные, константы , функции и понятия адресного пространства оперативной памяти.

Но после всего этого усиленно изучайте свойства объектов!

Необходимо уяснить самое главное Объект - это небольшой код программы который создаёт шаблон содержащий  один или множество алгоритмов для решения какой то определённой задачи задачи.

Например объект Машина
в данный обект(кусок программного кода) можно поместить функции рисования машины, учёта её скорости. топлива, степени повреждения.

и потом будет достаточно Создать экземпляр объекта и передать ему параметры Марка машины, начальное состояние, количество топлива. И можно уже создавать игры или моделирующие программы.

Изучайте поведение и возможности Объектов в объектно ориентированном программировании очень и очень внимательно и тогда вы избежите множество проблем в оптимизации программного кода.

Конечно бывалые программисты улыбнуться и скажут что Машину можно разобрать на боле мелкие объекты
- колёса
- корпус
- двигатель.

Но это уже другая история :)


Продолжение следует...:)

суббота, 6 апреля 2013 г.

Анализ движения в программировании

В данной статье не будет кода но будет описание проблем и логики их решения.

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

Вопросы
1 Принцип достаточности и необходимости при постановке задачи
2 Методика анализа изображения