Зараз вже в кожному великому місті існують журнал, газета або інше джерело, що інформують мешканців і гостей міста про події, які будуть проходити найближчим часом.
Подумавши, що в черговій «Афіші» ніхто потреби немає, я вирішив створити афішу в якій будуть тільки безкоштовні події міста.
Всі події розбиті на дві категорії:
— проходять один раз, у певний час.
— вільний вхід постійно або в певні дні
Можливо, даний проект надихне когось на створення подібного сайту для свого міста. Я живу в Києві і, для початку, вирішив обмежитися тільки своїм рідним містом. Буду дуже вдячний за будь-які підказки з організації інформації, юзабіліті і чого завгодно. Окрема подяка тим, хто повідомить про майбутні безкоштовні події!
Зовсім недавно я просто закохався в шаблон проектування observer. Ви можете з легкістю побудувати повний додаток, використовуючи неймовірну міць програмування управлінь подіями. Що саме представляє з себе паттерн спостерігач? Вся теорія доступна на Вікіпедії. Говорячи простою мовою, у нас є об'єкт, за яким ми хочемо моніторити (спостерігати) на предмет якихось змін. Більшість часу цей об'єкт просто звільняє події і ми хочемо прослуховувати їх. Ми можемо мати багато об'єктів прослуховуючих один або багато інших об'єктів, простіше кажучи, це може бути відносини багато до багатьох. Класичний приклад у світі баз даних це тригери. Наприклад, коли таблиця була оновлена, тригер, що прослуховує, звільняється. У віконних додатках, коли користувач натискає на кнопку, події звільняються і ті що прослуховують повідомляються для керування подією. У наступному прикладі ми маємо об'єкт валідатору, який перевіряє валідність e-mail адреси, звільняються два типи подій, які б ми хотіли прослуховувати. Ці типи, ясна річ, дійсний / не дійсний e-mail адресу. Ми також оголосимо двох слухачів, по одному на кожний з типів подій, слухаючих валідатор. Перший буде просто деяким логгером помилок, записувати невірні спроби введення, і другий буде записувати коректний e-mail адрес в базу даних або інше місце. Ми почнемо з опису нашого інтерфейсу для об’єкту спостереження. Ми просто хочемо додати спостерігачів та звільнити події. Також ми хочемо мати можливість прослуховувати тільки певні типи подій, значить, у нас немає необхідності сповіщати спостерігачів не слухати подію, яка тільки що звільнилася.