Немного статистики по платформе 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», после этих действий скрипт будет на русском языке.
Теперь вы научились устанавливать и использовать сервис коротких ссылок у себя на сайте. Надеюсь, информация была для вас полезной.
Мысль статьи
Желаю всем успешного создания коротких ссылок у себя на сайте. Увидимся в интересных статьях моего блога. Спасибо за внимание, пока!