Запрещаем логинится от рута, обычно брутят рута по стандартому порту, поэтому мы это изменим
PermitRootLogin no
Разрешаем логинится из ssh только определенному юзеру мне utz0r2
AllowUsers utz0r2
Запускаем semanage
yum -y install policycoreutils-python
semanage port -a -t ssh_port_t -p tcp 2222
Перезапускаем sshd
service sshd restart
Проверяем
service sshd status
nmap 127.0.0.1
или так
netstat -tulpn
В дальнейшем будем пользоваться только ssh через программу putty
Пробрасываем порты в нашей виртуальной машине 22 -> 2222, 80 -> 80
Прописуем в нашей windows машине в \WINDOWS\system32\drivers\etc\hosts
192.168.56.1 test.dev
Предаварительно узнав внешний айпи нашей виртуальной машины (Панель управления\Сеть и Интернет\Сетевые подключения)
Все готово для дальнейшей работы c сервером через ssh.
Если встает вопрос: "где искать клиентов", то можно самостоятельно попробовать на него ответить.
Представим себя клиентом, который ищет своего исполнителя, какой то конкретной задачи. Первоначально надо искать исполнителя, который надежно и качественно выполнит задание (поручение, предоставит услугу, товар).
При выборе обратим внимание на:
- репутацию – дает надежду на качественно выполненную исполнителем услугу;
- качество товаров и услуг – один из наиглавнейших аспектов при выборе исполнителя;
- цену - она должна быть средняя, потому что слишком низкая вызывает недоверие, слишком высокая отталкивает;
- доставку (если она требуется);
- скидки – приятно всегда получать даже самые низкие скидки.
Первые контакты для начала ищем через сарафанное радио у довольных заказчиков, друзей, родственников, знакомых. Затем через интернет или газеты, объявления, визитки.
Используем такие средства или сервисы для поиска как:
- поисковики - быстрый и надежный способ найти исполнителя;
- социальные сети – популярный, но не всегда хорошие способ, занимает много времени;
- блоги и специализированные форумы – удобно, так как можно помимо поиска исполнителя прочитать отзывы и рекомендации пользователей;
- онлайн объявления – удобный вид поиска, но не всегда описывает все нюансы исполнителя.
А теперь прочитав это, проанализируйте и двигайтесь от обратного =) Успехов в продажах!
Don't Repeat Yourself (DRY, рус. Не повторяйся) - изменение единственного элемента системы не требует внесения изменений в другие, логически не связанные элементы. Те элементы, которые логически связаны, изменяются предсказуемо и единообразно.
KISS (keep it short and simple — «делай короче и проще») - принцип проектирования, при котором простота системы декларируется в качестве основной цели и/или ценности.
YAGNI (англ. You Ain't Gonna Need It — «Вам это не понадобится») - отказ от избыточной функциональности, — т. е. отказ добавления функциональности, в которой нет непосредственной надобности
S.O.L.I.D. - это аббревиатура пяти основных принципов объектно ориентированной архитектуры.
S – Single-responsiblity principle - Принцип единственной обязанности. Каждый объект должен иметь одну обязанность и эта обязанность должна быть полностью инкапсулирована в класс
O – Open-closed principle - Принцип открытости/закрытости. Сущности (классы, модули, функции и т. п.) должны быть открыты для расширения, но закрыты для изменения
L – Liskov substitution principle - Принцип подстановки Барбары Лисков. Поведение наследуемых классов не должно противоречить поведению, заданному базовым классом, то есть поведение наследуемых классов должно быть ожидаемым для кода.
I – Interface segregation principle - Принцип разделения интерфейса. Слишком «толстые» интерфейсы необходимо разделять на более маленькие и специфические, чтобы клиенты маленьких интерфейсов знали только о методах, которые необходимы им в работе
D – Dependency Inversion Principle - Принцип инверсии зависимостей. Модули верхних уровней не должны зависеть от модулей нижних уровней. Оба типа модулей должны зависеть от абстракций. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
Waterfall ( водопад, она же каскадная разработка ) - процесс разработки выглядит как поток, последовательно проходящий фазы анализа требований, проектирования, реализации, тестирования, интеграции и поддержки.
- Все требования должны быть определены и детально описаны до начала разработки;
- Проекты легко контролируются, отслеживаются ресурсы, риски, время;
- Качество имеет первоочередной приоритет по сравнению со стоимостью и временем.
- Дорого и медленно;
- Чувствителен к изменениям;
- Мало возможностей для конечного пользователя повлиять на цели проекта и требования к продукту;
Agile ( проворный, итеративная разработка ) - сведения разработки к серии коротких циклов, называемых итерациями, которые обычно длятся одну-две недели. Каждая итерация сама по себе выглядит как программный проект в миниатюре, и включает все задачи, необходимые для выдачи мини-прироста по функциональности.
- Использование временные рамки(time boxes);
- Конечный пользователь вовлечен в процесс с самого начала;
- Быстрое получение первой/пробной версии продукта для тестирования;
- Легко воспринимаются корректировки и изменения в процессе разработки.
- Риск никогда не достигнуть закрытия/завершения проекта.
- Небольшой или средний проект, относительно короткий по времени;
- Технические требования приемлемые, коллериются с технологиями, которые собираются быть использованными для разработки.
Наиболее популярные методолгии итеративной разработки:
- SCRUM — это набор принципов, на которых строится процесс разработки, позволяющий в жёстко фиксированные и небольшие по времени итерации, называемые спринтами (sprints), предоставлять конечному пользователю работающее ПО с новыми возможностями, для которых определён наибольший приоритет.
- KANBAN - визуализация разработки, разделяя на задачи и использование отметок о положение задачи в разработке.
Создавая интернет-ресурс, нужно ориентироваться на его удобство для пользователей, в том числе при выборе дизайна: респонсивного (отзывчивого) или адаптивного.
При респонсивном веб-дизайне интерфейс масштабируется под устройство пользователя благодаря media-queries или модулю CSS3, позволяющим создавать разные стили в зависимости от размеров экрана, его разрешения и прочих характеристик.
Сайт, создаваемый при помощи такого дизайна, должен иметь гибкую или «резиновую» структуру, иначе его нужно будет долго переделывать, адаптируя под планшет или мобильный телефон.
Плюсы респонсивного дизайна в том, что:
- в разных браузерах и на разных платформах сайт имеет одинаковый внешний вид,
- сайт имеет одинаковый url, что облегчает seo-оптимизацию,
- разработчики обслуживают только один сайт, экономя тем самым время.
В то же время высокое разрешение изображений и прочих визуальных элементов снижает скорость загрузки.
При адаптивном веб-дизайне пользователи получают версию сайта, специально разработанную под тип устройства, с которого они входят на сайт. Так, один и тот же блог можно просматривать как в стандартной, так и в упрощённой версии – с минимумом необходимых элементов и низкокачественными изображениями. Зато при этом:
- загрузка изображений благодаря их сжатию и адаптации под устройство пользователя идёт быстро,
- всю «тяжёлую работу» по определению типа устройства пользователя и загружению нужного программного кода делает сервер,
- разработчикам предоставляется свобода творчества: ведь один сайт должен быть создан под разные версии и подогнан под разные типы устройств.
В то же время на саму разработку дизайна придётся затратить гораздо больше времени, а при внесении изменений и доработок изменениям и доработкам подвергаются все его версии. Так что ведение такого сайта требует команды специалистов.