Так повелося, що в процесі мого самонавчання та тривалим і не дуже періодам перебування на різноманітних робочих місцях майже по всій Україні, мені приходилось в тій чи іншій мірі поглибити свої знання по плануванню, розробці, частково дизайну, безпеці та впровадженні різноманітних веб проектів.
Деякі друзі вважають мене "гуру", інші поважають мою думку, хтось мабуть вважає, що я звичайний ламер, більшість - нічого про мене не чули, моя ж власна думка - на гуру в сфері інтернету я не тягну, але деякою інформацією зможу поділитись із Вами, сподіваючись, що ця інформація допоможе Вам уникнути багатьох помилок, на яких я та всі, кому я допомагав натерли собі криваві мозолі. Ця стаття буде цікава всім, хто або планує створити власний інтернет проект, або вже володіє певними знаннями в галузі побудови сайтів, але як і більшість в інтернеті, має дуже змішане і непевне уявлення про процес в цілому.
Отже закінчую писати всяку фігню і спробую дати відповідь на перше запитання, яке мені траплялося в розмовах Що порадиш як ядро до сайту? Якщо і у Вас в голові виникло таке запитання, значить Ви мало чим не відрізняєтесь від мене ламера за одною відмінністю - у Вас в голові немає всього того сміття, який мені прийшлось передивитись, перш ніж я хоч щось для себе зрозумів. Але хочу Вас порадувати - я не маю відповіді на це запитання, гадаю справжні гуру також відповісти не зможуть! Чому? Все просто - це питання захоплює тему "релігійних війн", де кожна свиня тягне в своє болото власну частину ковдри... Натомість я відповім як єврей - А для чого тобі? 8) А справді? А для чого Вам? Ви пробували собі задати таке запитання? А це важливо! Дуже важливо правильно розуміти мету побудови вебсайту! На цю тему в Інтернеті і не тільки створено дуже велика кількість різноманітних статей і написано багато книг.
- Технічне завдання
- Планування проектів
- Менеджмент проектів
Називається воно по різному:
Бажаючим ринути в темряву цих статей і книг - прапор в руки, а я спробую кількома словами розповісти для чого це все. Суть технічного завдання - дати можливість розробнику проекта порозкладати в себе в голові все по полицям в структурованому вигляді. Більше про технічне завдання я писати нічого не буду. Методики досягнути його є різні, а точніше - в кожного свої, і вказувати, а тим паче нав'язувати Вам якусь із них в мене немає ні сили ні бажання. Хтось пише його на клаптику паперу, хтось шкрябає на піску на березі моря, комусь не обійтись без програмного забезпечення типу Rational Rose, а комусь достатньо просто пляшки пива і старого знайомого, якому можна викласти душу і в результаті намалювати в своїй уяві повний план і структуру майбутнього проекту. При чому тут "технічне завдання", якщо я питався про ядро майбутнього сайту? спитаєте Ви мене... Справа в тому, що без чіткого розуміння майбутніх дій ні я ні будь хто інший не зможе порадити вам нічого конкретного, а головне правильного для Вашого майбутнього проекту. Відійду я від нашої теми і розповім Вам невелику казку... Одного разу мій роботодавець попросив написати для компанії веб-сайт візитку Тиць , де будь-хто міг би почерпнути для себе необхідну інформацію про компанію та контакти, за якими можна було б її знайти. На той час Ваш покірний слуга інтенсивно тестував ядро TikiWiki , яке мені дуже подобалось своїми можливостями і було вирішено зробити на базі тікі такий елементарний сайт.
Невеличка зноска, для тих кому не цікаво, що таке тіківікі і з чим його їдять - Це величезний рушій для вебсайтів-енциклопедій, основаних на базі групової роботи над їх наповненням.
Але мені не так пощастило в той час як Вам тепер - мені ніхто не підказав: "Дурню!... Для сайту-візитки не потрібен такий універсальний гігант як тіківікі - достатньо або банального html, або якогось простого і бажано абсолютно невідомого php ядра із мінімумом можливостей" Незважаючи на це і завдяки потужним можливостям самого тіківікі мені вдалось зробити той сайт(сам процес зайняв в мене досить тривалий термін, бо прийшлось тривалий час вимикати багато непотрібних можливостей), але зрозуміло, що 99% відсотків коду ядра лежало мертвим грузом, бо використовував я для сайту лише невеличку його частину. В результаті через ~рік існування того сайту(а відомо, що заглядав я туди нечасто, бо сайт має практично статичне наповнення), його було взломано, бо такі великі проекти як тіківікі вимагають постійного контролю за оновленнями ядра і виправленням знайдених помилок. Дякуючи Інтернету та набутому мною за той рік досвіду, вебсайт було піднято на базі легкого та швидкого рушія reloadcms, на базі якого він і працює донині. Ось і казочці кінець, а хто слухав... Гадаю зрозуміло, що моя помилка була в тому, що я не до кінця зрозумів поставлене мені завдання і використав універсальний(читай складний) інструмент, замість того, щоб спростити собі завдання та позбавитись головного болю в майбутньому. Отже відповідь на Ваше запитання ви зможете отримати лише Правильно поставивши саме запитання А відповідь на запитання про ядро я залишу майбутнім поколінням і сайту OpenSourceCMS.com.... 8)
Чесно кажучи, жодного разу до мене не звертались із запитанням про вибір ядра, маючи на руках Технічне завдання в будь-якому вигляді. Чи проблема це - гадаю так, але вона мене не стосується 8). Поки Ви не навчитесь правильно формувати Ваші запитання - нічого путнього у Вас не вийде. А якщо у Вас буде Технічне завдання - відповідь на поставлене запитання Ви вже будете знати. Пора закінчувати свій песимістичний настрій... Іншим запитанням, точніше навіть не запитанням а проханням є перевірити сайт на "правильність" Тобто... Стукають мені в асю із текстом xxx: Ось відкрили сайт http://ukrweb.info можеш глянути що в ньому не так? В мене немає звички відмовляти друзям, а отже я берусь за роботу... Одразу скажу, я той фанатичний прихильник різноманітних валідаторів із сайту World Wide Web Consortium І причина цьому дуже проста - якщо Ви грамотні в формуванні HTML - помилок на Вашому сайті буде значно менше і в інших місцях. Крім того, будучи веб-розробником Вам просто необхідно звикати до розмітки HTML , а підчищання коду до стандарту досить швидко навчить Вас багатьом премудростям.
- Отже, спробую перерахувати(і коротко пояснити) найбільш часті помилки, які я зустрічаю постійно:
- Наявність на сайті великої кількості графічних зображень та складного дизайну
- Обов'язкова процедура реєстрації
- Велика кількість реклами
- Привязка сайту до строго одного Інтернет броузера
- Наявність на сайті великої кількості найбільш довговічних сторінок "Under Construction"
- Перевантаження користувача великою кількістю динамічного вмісту(Мигаючі картинки на весь екран etc)
- Стрічка новин, яка повністю копіює якийсь інший, більш відомий інтернет портал
- "Гігантський форум із неймовірною кількістю розділів і одиничною кількістю повідомлень в них"
- і це ще не все...
Незважаючи на те, що на сьогоднішній день Інтернет в Україні трішки піднявся із дупи на коліна, швидкість не у Всіх висока, і очікувати 5-10 хвилинного завантаження головної сторінки вебсайту, на якій ви вивісили щойно зроблене фото власною десятимегапіксельною камерою, буде далеко не кожен. Це ж саме стосується і надмірно завантаженого дизайну різноманітними графічними окантовками текстових блоків та величезними кнопками, виконаними графічними зображеннями.
Багато власників вебсайтів дико впевнені, що примусивши зареєструватись на їхньому сайті, користувач обов'язково припишеться на постійно активним учасником. Повірте і прислухайтесь до власних відчуттів, коли Ви заходите на такий сайт. А відчуття тут доволі прості... Якщо сайт є недоступним без реєстрації - більшість користувачів одразу його залишить, керуючись найбільш сильним життевим рушієм - звичайною людською лінню.
Тут все просто - якщо на Вашому сайті корисна інформація видима лише дуже прискіпливо вдивляючись між мигаючі банери та пропозиції збільшити свою чоловічу гордість - повірте, збільшувати свою гордість та відвідуваність будете ви одні.
Незважаючи на інтернет статистику, згідно якої броузер дяді Біла першим біжить із гордо піднятою головою, дуже багато користувачів користуються "альтернативними" Броузерами, і скажу Вам по секрету - технічний рівень цих користувачів точно вище середнього, а приймати чи відхтовхувати їх від Вашого сайту - вирішувати Вам.
Іноді бажання створити щось грандіозне переростає в постійну проблему недоробленого проекту(по собі знаю), але повірте - користувачі будуть губитись серед Ваших недороблених сторінок і швидше підуть на інший сайт чим будуть спостерігати за процесом розробки Вашого недоробленого проекту.
В чьому випадку чисто психологічно користувач спочатку подивиться на ваші бігаючі по екрану годинники, та літаючі банери із фоном шахової дошки, але дивлячись на такий вміст користувач дуже швидко втомлюється і натискає на кнопку закриття вікна
На цю тему я хочу написати додаткову статтю, а тут скажу коротко - цитуючи повідомлення із чужого сайту ви сприяєте популяризації чужого сайту
Ефект від такого форума аналогічний до ефекту "Under construction"
Далеко не все
Якщо Ви зможете уникнути перерахованих помилок - вітаю Вас... Ви прямуєте до успішного інтернет-проекту...
створення дзеркал сайту
Це запитання прийшло від власників великих і важких вебсайтів, в яких існує нагальна проблема швидкості роботи проекту через великий трафік та значну кількість користувачів.
Власники таких вебсайтів як правило володіють відповідною інформацією та людськими ресурсами у вигляді адміністраторів або(і) кількома типами хостінгу в різних частинах світу в залежності від необхідності. А для чого це мені? - спитаєте Ви. З одного боку, якщо Ваш веброект ще не набрав достатньої популярності та великої аудиторії відвідувачів, можливо Вам це і не потрібно.. Але, враховуючи реальну глобалізацію інформації, в багатьох випадках Ваша інформація може бути цікавою не тільки читачам Вашої мовної групи, але і іншомовним також. При умові, якщо це так, тобто інформація з вашого вебпроекту дійсно є не спам-магнітом для пошуковика, а реальною і достовірною, тоді, для прикладу, читачі певного іншомовного регіону можуть також збільшити кількість та якість цифр на лічильниках Вашого вебпроекту. Для цього звичайно потрібно "прогнутись" і сформувати на вашому вебсайті багатомовну інфраструктуру (благо, на сьогоднішній день існує достатня кількість CMS для реалізації багатомовного вмісту). Це звичайно важко, але може додати кілька бонусних балів у онлайнових рейтингах ващому ресурсу. Якщо є проблема із реалізацією такого перекладу на різні мови - можна певною хитрістю полегшити собі життя, додавши відповідний функціонал для онлайн перекладу вашого контенту одним із існуючих інтернет-перекладачів. Щоправда в цьому випадку це лише полегшить життя користувачам, що прийшли на Ваш сайт, але не підвищить рейтинг суттєво, за відсутності відповідного вмісту відповідною мовою.
До чого тут багатомовність і дзеркала? Все дуже просто... Тормознутість того чи іншого ресурсу залежить від потужності самого хостінгу так і від віддаленості цього хостінгу від користувача за інтернет-мірками. І ось тут з'являється питання дзеркала. Аналізуючи статистику відвідуваності Вашого ресурсу, можна визначити, для прикладу, що його відвідують 60% з України, 30% з Росії і 10 відсотків інші. Таким чином можна цілком просто і вірно розділити Ваш контент на 2 або більше хостів(серверів) , замовивши відповідні послуги у відповідних регіонах. Придбати хостінг - це просто, а от розділити контент існуючого вебсайту - досить складно і в більшості випадків потребує переписування динамічної частини проекту, а в деяких випадках і використання спеціального обладнання (зеркалювання баз даних, розподілення навантаження між серверами тощо).
Найпростішим і досить простим методом розприділення такого навантаження. От щойно я задав пошук на ґуґлі "php load balancing" і наткнувся на скрипт, який знаходиться на ресурсі SourceForge, який дозволяє примітивно, але розділяти навантаження на Ваш ресурс... Невеликими зусиллями можна змінити цей скрипт в бік перенаправлення запитів, виходячи з IP адреси на той чи інший хост із дзеркал Вашого проекту. Досить хорошим прикладом роботи подібної системи є fishki.net , правда я достовірно не знаю методику розподілення між дзеркалами(програмна, чи залізна). В того ресурсу динамічний контент вантажиться з основного(основних) сайтів, а статичний (картинки ,відео, тощо) - відповідно до регіону, звідкіля заходить користувач.