Привет, отличные люди! 👋 Я вернулся с какой -то интересной информацией для вас. Как люди с программным обеспечением, мы делаем некоторое планирование в нашей повседневной жизни. Одним из самых важных планов является планирование нашего проекта, прежде чем мы начнем кодирование.
Распространенная ошибка, которую мы (люди программного обеспечения) делаем, заключается в том, что мы думаем, что это очень очевидно, и нам не нужно тратить (!!) Время записать их. Затем в какой -то момент мы оказались перегруженными проектом!
Как правило, мне нравится все записывать. Таким образом, я держу свое мнение свободным. Вот моя философия, стоящая за этим.
Не храните данные в RAM (ваш разум), когда вы можете хранить их на жестком диске (бумажная/онлайн -платформа).
Возьмите этот пример, если я скажу вам, что будет программное обеспечение, которое использует API Facebook для отправки сообщений пользователям. Для многих это очень интуитивно понятно. Но реальность такова, что у него будет много движущихся частей, и если вы не позаботитесь о них, у вас скоро будет много головной боли.
Недавно я сделал шаблон, чтобы начать проект, и я подумал, что это может помочь некоторым из моих коллег по программному обеспечению. Итак, вот шаблон, который может отлично работать для программного обеспечения для малого и среднего размера.
Рассмотрим стеки как заполнители. Заменить на тот, который работает для вас 😉
v1
Я считаю, что поток очень эксплуатационный. Так что я не буду давать ненужного объяснения.
V2
На самом деле, я хотел бы немного объяснить, чтобы он мог обратиться к всем с всевозможным уровнем опыта.
Frontend: Для Frontend вы можете использовать HTML, SCSS (настоятельно рекомендуется использовать вместо CSS, поскольку он позволяет писать многократно используемый код) и JavaScript или любую Framework JS. Стандартные вещи.
Бэкэнд: Что касается Backend, вы можете использовать Framework, которые вам нравятся (Laravel, Codeigniter, Node.js, Django …). Для меня мне нравится node.js (я бы порекомендовал использовать TypeScript вместо JS, он защитит вас от глупых ошибок).
База данных: Вы можете любую базу данных, которая подходит вашему проекту. Если бы вы много использовали отношения, перейдите к SQL (MySQL, PostgreSQL, MariaDB …), если вы чувствуете, что вам понадобится свобода от схемы, и вы будете генерировать тонны данных (например, IoT), перейдите к NOSQL ( Mongodb, arangodb, dynamodb …). Для кэширования вы можете попробовать Redis или Memcached (когда кешю? Когда вы снова запрашиваете те же данные, и данные не меняются очень часто, например, Количество Github Repo).
Внешний API: В большинстве наших проектов мы используем какой -то внешний API. Пример будет входить в систему с Facebook/Google, разговаривать с Dialogflow/Twilio и так далее. Сохранение написания поможет вашей команде увидеть общую картину.
Служба электронной почты: Для регистрации, восстановления пароля и так далее нам нужно использовать какую -то услугу по электронной почте. Мне нравится SendGrid (потому что это просто и ведет записи всех сообщений), но вы можете выбрать все, что работает для вас. (например, Nodemailer).
Тестирование: Если вы работаете в команде, не забудьте следить за разработкой испытаний. TDD позволит вам писать код быстро и надежно, не беспокоясь о разрыве функций/API. Есть много библиотек/фреймворков для TDD. Жасмин, мокко, чай, шутка и так далее. Мой выбор — шутка.
DevOps: Вам нужен сервер, чтобы поместить ваше приложение. Вы можете выбрать DigitaloCean, AWS EC2 или любой другой сервис. Скорее всего, я бы выбрал ОС Linux, но EC2 также позволяет вам иметь систему Windows. Затем для обслуживания приложения вам нужен веб -сервер. Мне нравится nginx Но вы можете пойти на Apache, если хотите. Чтобы запустить приложение Node.js, вам нужен диспетчер процессов. Для меня это PM2. Теперь вы запустили свое приложение. Но как это обеспечить? (https) Вы можете купить сертификат SSL у ведущего поставщика или получить бесплатный от LetsEncrypy. Что касается управления версией, вы можете использовать GIT и GitHub/Gitlab/Bitbucket в качестве удаленного репо. Если вы хотите автоматизировать процесс развертывания (CI/CD), вы можете использовать Jenkins или Circleci.
Управление проектами: Чтобы отслеживать проект и убедиться, что ваша команда не отстает за графиком, вам необходимо реализовать какое -то управление проектами. Поскольку нам нужна быстрая итерация, я бы пошел на Agile Management. Trello — отличный инструмент для отслеживания вашего проекта. (Проверьте это coalerplate , чтобы увидеть, как вы можете спроектировать проект на Trello). Для связи Слэк непревзойден. Вы можете иметь разные каналы, прямое сообщение, обмен документами и многое другое. Это больше похоже на профессиональный WhatsApp. Наконец, чтобы убедиться, что у вашей команды все хорошо, разместите некоторые сессии обзора кода время от времени. Это может быть еженедельно или спринтерская база. Но это убедится, что у вас плохой/неэффективный код.
Я знаю, что это было долго, но я думаю, что это поможет вам иметь лучший и организованный план.
Ниже приведен репозитория GitHub, где вы можете найти редактируемый файл. Не стесняйтесь поделиться своим мнением. Желаю вам очень хорошего дня 👋
https://github.com/despider001/project-planning
Оригинал: «https://dev.to/despider/project-planning-boilerplate-26pj»