Трохи статистики по платформі Youca.org:
- 18 модулів
- 253 файли
- 52 867 рядків коду
- 13 місяців розробки, поєднаних із основною діяльністю.
На що варто звернути увагу
Після того, як я вигадав ідею, потрібно було приступати до реалізації.
З чого почати?
Спробуйте максимально докладно викласти свою ідею на папері (не обов'язково писати олівцем чи ручкою, надрукувати на комп'ютері також зійде). По-перше, розписуючи свій проект, ви повніше зможете оцінити картину і швидше за все побачите недоробки, які відразу зможете покращити. По-друге, все буде задокументовано, і ви нічого не забудете. По-третє, за описом спробуйте скласти список завдань, щоб більш зрозумілі подальші кроки. Щодо форми опису, то я вважаю, що це не має жодного значення. Не потрібно намагатися використовувати якісь розумні теорії чи методи, якщо вам не зручно потім працюватиме з цим. Для себе я зробив просту таблицю спочатку з назвою пунктів меню, пізніше коли стала зрозуміла загальна структура, я вже зміг трансформувати таблицю в список модулів, описати зразковий функціонал кожного і деякі їх взаємозв'язки. На цьому етапі важливо розуміти склад частин майбутнього проекту, але не обов'язково детально розписувати функціональність кожного. У моєму випадку початковий опис хоч і збігається за складом з реалізованим проектом, він все ж таки приблизно на 30% відрізняється за функціональністю.
Після того, як ви повністю все розписали, структурували всі завдання, а на папері і у вашій голові стало більше ясності, потрібно приступити до програмування сервісу, але не спишіть кидатися у вир із головою. Спочатку дайте відповідь на ключові питання. Далі наводжу ті питання, які постали переді мною, і знайдені мною на них відповіді:
Якою мовою розробляти сервіс?
Скільки я не намагався знайти найбільш підходящу мову програмування у статтях та на форумах, результатом стало розуміння, що у кожного своя мова для вирішення конкретного завдання. Використовуйте ту мову, яку ви найкраще знаєте! У моєму випадку – PHP (планував використовувати PHP-FPM, але пізніше вдало підійшов PHP7)
Яку базу даних використати?
Тут відповідь аналогічна попередньому питанню: ту, яку знаєте найкраще. У моєму випадку – MySQL.
З якого кінця братися за список завдань написання модулів?
Як не важко здогадатися, починати потрібно з основних модулів, але які з них є основними, якщо всі разом і є ваш майбутній сервіс? Насамперед потрібно продумати глобальну бізнес-логіку вашої програми. Чи це один головний файл, наприклад, index.php в корені сайту або варто розбити весь проект на безліч піддиректорій. Якщо ваш проект має на увазі реєстрацію користувачів, то реалізуйте насамперед саме цей функціонал (реєстрація, авторизація, логаут, зміна облікових даних тощо). Далі все піде легше, один модуль тягне за собою інший.
Як ви проектуватимете бізнес-логіку програми?
Зазвичай, приступаючи до нового модуля, я звірявся зі своєю генеральною табличкою, дописував/допрацьовував функціонал, створював усі потрібні файли, накидав у класі модуля всі назви необхідних методів з інтуїтивно зрозумілими назвами за власним шаблоном (наприклад: getUserById) і лише після кодинг кожного методу. Таким чином я як би описував найбільш наочно собі поточне завдання.
Для спрощення роботи рекомендую використовувати невеликий ORM, щоб не відволікатися від бізнес-логіки працювати з базою даних. Я використовував модель MVC (model – view - controller), в якій класи та методи, які безпосередньо виконують операції з базою даних, виносяться в окремий файл (модель) і підключив простий ORM, якщо в майбутньому знадобиться оптимізувати запити до БД, то зробити це буде не складно, вони не пов'язані з бізнес-логікою. Достатньо просто замінити виклики ORM на прямі запити в методах моделей модулів.
Що потім?
Коли всі модулі написані необхідно ще раз провести комплексний аналіз функціоналу (мається на увазі не тестування, яке природно має бути на кожному етапі і в кінці загальне, а саме аналіз бізнес-логіки додатку, що вийшла). Швидше за все, ви знайдете якісь нестиковки або не дуже зручні рішення. За такими моментами я складав окремий список справ і далі працював у ньому.
Публікація програми.
P.S. Не забудьте встановити лічильник статистики на всі сторінки перед запуском програми.
- Робіть бекапи після кожної контрольної точки або за іншим чітким правилом. Я робив бекап наприкінці кожного робочого дня, незалежно від того, був він довжиною о 14 годині або 30 хвилин. Бекапи краще робити на кілька носіїв. Я бекапіл все на зовнішній жорсткий диск і паралельно заливав архів у хмару файлового хостингу.
- Для додаткової мотивації я малював собі графік роботи над модулями, виділяв на кожну певну кількість часу. Навіть якщо не вкладаєшся у відведений час (а так найчастіше і буває), то все одно ти завжди бачиш прогрес, так він стає більш відчутним, коли в табличці закреслюється черговий квадратик.
- Іноді буває такий час, що нічого не виходить, все валиться з рук, думки розбігаються і ніяк не можеш зосередитись на роботі. Моя вам порада: плюйте на роботу та йдіть відпочивати, інакше можна наламати дров.
У наступній статті я поділюся списком книг, які я знайшов корисними, які допомогли мені з мотивацією та інформацією.
Всім привіт з вами Денис Чернятинський. Сьогодні я торкнуся теми створення коротких посилань на своєму сайті. Я вважаю, що ви часто потрапляли на обслуговування скорочення посилань, який з довгих посилань, що складаються з кількох сотень символів, робить короткі, що складаються з кількох символів.
Навіщо потрібен сервіс скорочення посилань?
Наприклад, щоб ви могли скорочувати ваші партнерські посилання, не боячись у тому, що можуть обрізати її партнерський «хвіст». Такі сервіси скорочують посилання, і партнерський ідентифікатор вже не буде обрізаний.
Ще один приклад дуже зручно передати таке коротке посилання за допомогою СМС, ніж складається з декількох сотень символів, і при цьому одержувачу буде зручніше ввести вручну кілька символів, ніж кілька сотень.
Варіантів використання таких сервісів дуже багато, якщо добре подумати, ви самі придумаєте для чого і як використовувати подібні можливості.
В інтернеті існує досить багато сервісів скорочення посилань, але, думаю, ви б хотіли зробити такий сервіс на своєму домені.
Як зробити сервіс скорочення посилань на своєму хостингу?
Як реалізувати такий сервіс на вашому домені, ми розглянемо це питання. У цьому нам допоможе спеціальний скрипт, який називається YOURLS. Завантажуємо його з офіційного сайту прямо з головної сторінки, промотуємо вниз сторінки та натискаємо «Download YOURLS».
Скрипт постійно розвивається та вдосконалюється, на момент написання статті останньою версією є 1.7. Натискаємо по посиланню завантаження архіву у форматі zip.
Розпаковуємо завантажений архів себе на комп'ютер, отримуємо папку YOURLS-1.7 з файлами скрипта. З'єднуємось зі своїм доменом для завантаження цих файлів на хостинг. Якщо не в курсі, як це зробити, прочитайте .
Цей скрип працює не тільки з основним доменом, але також з доменами і з будь-якою директорією домену. Ви самі повинні прикинути, як вам буде зручніше і якого виду посилання ви хочете побачити у результаті.
Для прикладу я зроблю папку всередині свого домену на сервері, і посилання буде виглядати так: «сайт.ру/папка/посилання». Щоб посилання виглядало коротко назвемо папку «url» і завантажуємо до неї всі файли розпакованого скрипта.
Тим часом, поки файли скрипту завантажуються до папки на сервер, ми створимо базу даних. У ній він зберігатиме вихідні посилання та скорочені. Заходимо в панель керування вашим хостингом, керування базами MySQL та створюємо базу даних для нашого YOURLS скрипту. Вигадуєте значення логіну і паролю на розсуд, бажано, щоб вони не були надто простими, натискаєте створити.
Все, базу даних ми створили, у прикладі це «blogurl», у вас назви можуть відрізнятися. Саме файли скрипта вже залилися на хостинг, і ми можемо перейти до налаштування нашого скрипту.
Налаштування бази
- Ім'я користувача бази даних у нашому прикладі «mysql».
- Пароль від бази, у моїй нагоді «mysql»
- Назви бази даних у мене «blogurl»
- Назва хоста, у моєму прикладі «blog.ru»
- Префікс таблиці бази даних yourls_
У вас ці значення кардинально відрізнятимуться, тому що я демонструю роботу скрипту на своєму локальному сервері.
Налаштування url посилань
- Назва сайту, на якому знаходиться скрипт, в моєму прикладі це "https://blog.ru/url", зауважте після "url" вертикальний сліш "/" ставити не треба. Про це написано вище.
Налаштування скрипту
- Часовий пояс чи тимчасова зона, виставляємо вашу, маю «+3».
- Чи потрібно вам, щоб для одного довгого посилання створювалося не одне, а кілька коротких посилань, якщо відповідь так, пропишіть в налаштуванні замість значення "true" параметр "false".
- Чи потрібно вам, щоб посилання створювалися не тільки з адмінки скрипта, а також загальнодоступної сторінки сайту. Я залишив значення true. Нам не потрібно відкривати доступ до створення посилань всім користувачам, тим самим убезпечивши себе від спаму.
- Тут вказано певний текст, який ви повинні перетворити на унікальний, щоб встановити певний рівень безпеки.
- Вигадуємо логін та пароль для входу в адміністративний розділ скрипта. Якщо обліковий запис у вас один, видаляємо зайві значення. Якщо їх кілька, прописуємо через кому.
Варіанти скорочення посилань:
- Якщо потрібно в скороченому посиланні використовувати маленькі літери з цифрами, прописуємо параметр «36».
- Якщо потрібна присутність і маленьких, і великих символів, прописуємо значення «62».
- Самі ухвалюйте рішення, які значення вам потрібні, я залишаю за замовчуванням «36».
Стоп-слова
- Цей параметр містить список стоп-слів, які не дозволяють генерувати посилання із зазначеними значеннями. Там вказані певні слова, можете додати свої.
Добре, з налаштуваннями все, зберігаємо його і завантажуємо вже відредагований файл назад на сервер у відповідну директорію.
Перевірка роботи скрипту
Запускаємо браузер і прописуємо адресу скрипту на нашому домені, наприклад, "blog.ru/url/admin/", далі натискаємо введення, потім "Install YOURLS".
З'явиться повідомлення, що всі таблиці в базі даних створено і пропозицію переходу на адміністративну сторінку скрипту, натискаємо на посилання переходу до адмінки. Ось пряме посилання про всяк випадок «https://blog.ru/url/admin/index.php».
Вводимо логін та пароль, вказані при редагуванні файлу "config", натискаємо "login". При першому вході в адмінку з'явиться повідомлення, що пароль зберігається в незашифрованому вигляді просто у файлі «config» і пропозиція його зашифрувати. Натискаємо на запропоновану посилання для шифрування. Відкриється спеціальна сторінка, що генерує hash із нашого пароля, необхідний для його шифрування.
Вводимо пароль у відповідне поле та натискаємо відправити, ваш пароль перетвориться на hash, копіюємо його значення та вставляємо у файл налаштувань «config.php» на сервері замість вашого пароля. Зберігаємо та оновлюємо файл на сервері.
Якщо ми в адміністративному розділі оновимо сторінку, попереджувальне повідомлення вже зникне, значить все зроблено правильно. Тепер можна розпочати повноцінну роботу з нашим власним сервісом коротких посилань.
У нових версіях скрипта, починаючи з версії 1.7, вже реалізовано автоматичне шифрування пароля в файлі config. Вищеописані маніпуляції шифрування робити необов'язково.
Приклади використання посилань
Як приклад буде вказано кілька посилань, їх можна видалити, натиснувши кнопку видалення. Цією дією ми трохи звільнимо нашу базу даних і почнемо створення посилань з чистого аркуша. Наприклад, введемо якесь довге посилання і задамо скорочення вручну, наприклад, «do», натискаємо на кнопочку скоротити. Наше довге посилання скоротилося до «blog.ru/url/do», якщо скопіюємо і перейдемо ним, то потрапимо на початкову сторінку з довгим посиланням.
Якщо не ввести ручне скорочення посилання, посилання скоротиться довільним чином. Для партнерських посилань назву якогось курсу краще робити вручну, так наочно і красивіше, наприклад, «blog.ru/url/videokurs». Користувач, який натискає на таке посилання, розумітиме, що надалі станеться, на яку сторінку він потрапить.
У міру створення посилань у вас буде відображатися їх список, де ви можете бачити кількість кліків за кожним посиланням, а також більш детальну інформацію щодо кожного посилання. Можете редагувати, ділитися ними в соціальних мережах та багато іншого.
Локалізація скрипту
Як ви помітили, вона не має російської мови, але ми можемо локалізувати її вручну. Ми русифікуємо наш скрипт, щоб з ним було зручно та приємно працювати. Для цього я додаю спеціальні файли русифікації, що додають велику і могутню російську мову.
Налаштування російської мови
- Вам потрібно завантажити архів за посиланням та розпакувати його.
- Скопіювати файли з архіву «ru_Ru.po» та «ru_Ru.mo» до директорії на сервері «user/languages»
- Знайти рядок "define('YOURLS_LANG', 'ru_RU')" в "config.php" і прописати значення "ru_RU", після цих дій скрипт буде російською мовою.
Тепер ви навчилися встановлювати та використовувати сервіс коротких посилань у себе на сайті. Сподіваюся, інформація була для вас корисною.
Думка статті
Бажаю всім успішного створення коротких посилань у себе на сайті. Побачимося у цікавих статтях мого блогу. Дякую за увагу, поки!