Я решил запустить онлайн-челлендж 100 days of code (https://www.100daysofcode.com), созданный Александром Каллауэем (https://medium.freecodecamp.org/join-the-100daysofcode-556ddb4579e4) .
Я не кодер и не хочу быть профессиональным кодером (по крайней мере, сейчас), но….
Весь этот план начался с использования на работе софта, который мне особо не нравился. Каждый день у меня появляются идеи о том, как его улучшить, а также немного жалоб на дорогостоящее специализированное программное обеспечение с закрытым исходным кодом (уф!). Что, если бы я мог создать улучшенную версию? Вызов принят!
Итак, я начинаю в духе вызова, но с некоторыми изменениями здесь и там:
- Я хочу, чтобы мои истории были о разработке и разрушении вещей
- Я хочу увидеть, что нужно, чтобы что-то закончить, и начать думать об улучшениях (а не о учебниках по программированию или фрагментах примеров).
- Я хочу быть очень неправым, принимать неправильные решения и учиться на собственном опыте.
- Я хочу, чтобы люди реагировали, критиковали и вносили предложения.
Таким образом, эта задача будет в основном заключаться в том, что я попытаюсь создать что-то лучше или хуже, чем приложение, которое я использовал на работе. Посмотрим, что будет в следующие 100 дней…
Ах, эти 100 дней не будут идти подряд, так что, может быть, давайте назовем это 1 годом боли? :)
Идея проста, я хочу создать сайт, управляемый базой данных, с контролируемым доступом пользователей. Некоторое время я работал на стройке, и у нас был своего рода совместный список недостатков.
Что такое список недостатков? «Перечень недостатков — это документ, подготовленный ближе к концу строительного проекта, список работ, не соответствующих спецификациям контракта, который подрядчик должен выполнить до окончательной оплаты. Работы могут включать неполную или неправильную установку или случайное повреждение существующей отделки, материалов и конструкций».
Уже скучно? Бьюсь об заклад. Обещаю, будет лучше!
Таким образом, этот список ошибок, содержащий все эти элементы, должен быть доступен для совместной работы и редактирования, то есть пользователь может вводить и добавлять, изменять и удалять элемент. Мне также нужны некоторые базовые групповые разрешения. Например, я не хочу, чтобы все могли удалять элементы или добавлять и удалять пользователей (да… ну)
Лучший известный мне способ начать — создать базовое пользовательское требование или список историй/функций. Вот что я получил до сих пор:
Я уверен, что в процессе разработки добавятся и другие требования, так как будет более понятно, какова область действия системы.
Следующим шагом является определение базового набора инструментов или программной архитектуры, которую я хочу реализовать:
Это приблизительное представление о том, с чего я хочу начать. Я должен принять некоторые решения, основанные на том, что я хочу узнать, и что может быть лучшим решением в сочетании. Я уверен, что скоро попаду в ловушку… следите за обновлениями!
В качестве сервера базы данных моей первой идеей было реализовать сервер наподобие MySQL или PostgreSQL, но, возможно, приложение на основе SQLite (https://en.wikipedia.org/wiki/SQLite) было бы проще написать в начале.
В этом случае я бы не стал устанавливать и настраивать сервер базы данных. Ведь моя база данных будет не очень сложной, как мы увидим в следующем рассказе.
Я надеюсь, что это будет хорошее и долгое путешествие!
Продолжение следует на https://medium.com/@magyar1886/100-days-of-pain-day-2-databases-f869cc15a040