Принципы

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
foxdev_7:принципы [15.01.2019 07:13]
admin Approved(admin 2019/01/15 07:13)
foxdev_7:принципы [20.05.2019 15:18] (текущий)
Строка 23: Строка 23:
   * Автотесты и тесты обязательны. Система тестирования должна быть полностью автоматизирована,​ функциональные и интеграционные тесты важней и первичней,​ чем юнит-тесты.   * Автотесты и тесты обязательны. Система тестирования должна быть полностью автоматизирована,​ функциональные и интеграционные тесты важней и первичней,​ чем юнит-тесты.
   * Программа должна быть громкой и писать о проблемах на экран с указанием строки и файла, при этом ошибки перехватывать нельзя,​ а если перехватили,​ то текст нижних уровней обязательно сохраняется в ошибке и свой добавляется к нему.   * Программа должна быть громкой и писать о проблемах на экран с указанием строки и файла, при этом ошибки перехватывать нельзя,​ а если перехватили,​ то текст нижних уровней обязательно сохраняется в ошибке и свой добавляется к нему.
-  * Взаимный кодревью обязателен,​ либо взаимный мердж реквест,​ даже тимлид не должен добавлять код в рабочии ветки без ревью другим кодером.+  * Взаимный кодревью обязателен,​ либо взаимный мердж реквест,​ даже тимлид не должен добавлять код в рабочие ветки без ревью другим кодером.
   * Библиотеки,​ фреймворки обязательны всегда,​ свое писать только в крайних случаях.   * Библиотеки,​ фреймворки обязательны всегда,​ свое писать только в крайних случаях.
   * Безопасность на этапе проектирования ДА, на этапе разработки только в крайних случаях и разумных пределах. Лучше использовать готовые проверенные средства безопасности,​ чем придумывать свои.   * Безопасность на этапе проектирования ДА, на этапе разработки только в крайних случаях и разумных пределах. Лучше использовать готовые проверенные средства безопасности,​ чем придумывать свои.
   * Безопасность. Многоуровневая безопасность. Взлом одной части не должен давать полный доступ. Превентивная безопасность,​ предполагать что взлом будет одного из уровней и делать защиту для тех дыр которых еще нет. Понимать,​ что общая безопасность равна безопасности самого слабого звена. Превентивная безопасность,​ если взломали стандартными средствами,​ то ничего не получится,​ стандартные эксплоиты не должны работать.   * Безопасность. Многоуровневая безопасность. Взлом одной части не должен давать полный доступ. Превентивная безопасность,​ предполагать что взлом будет одного из уровней и делать защиту для тех дыр которых еще нет. Понимать,​ что общая безопасность равна безопасности самого слабого звена. Превентивная безопасность,​ если взломали стандартными средствами,​ то ничего не получится,​ стандартные эксплоиты не должны работать.
   * Конфиги,​ данные,​ подходы и задачи важнее,​ чем алгоритмы,​ программы и демоны.   * Конфиги,​ данные,​ подходы и задачи важнее,​ чем алгоритмы,​ программы и демоны.
-  * Самостоятельные живые программы. Независимые,​ отказоустойчивые,​ живучие,​ самодокументированные программы. Могут ставить и работать без админа и пользователь сам разберется. В случае сбоев восстанавливается. Любой программер садится и дорабатывает. Концепция,​ все должно ​быть ​без админа работать неадминистрируемая интеллектуальная система.+  * Самостоятельные живые программы. Независимые,​ отказоустойчивые,​ живучие,​ самодокументированные программы. Могут ставить и работать без админа и пользователь сам разберется. В случае сбоев восстанавливается. Любой программер садится и дорабатывает. Концепция,​ все должно без админа работатьнеадминистрируемая интеллектуальная система.
   * В идеале документация должна быть в коде или в файлах рядом с кодом.   * В идеале документация должна быть в коде или в файлах рядом с кодом.
-  * В каком случае делать рефакторинг и улучшения программы, только если она будет использоваться еще 3 года.+  * В каком случае делать рефакторинг и улучшения программы? Только если она будет использоваться еще 3 года.
   * В каком случае делать автоматизацию,​ с учетом частоты рутины раз в неделю раз в мес раз в год и сколько денег сэкономит автоматизация с учетом уменьшения человекоошибок. Помнить что ничего вечно не используется и возможно достаточно инструкций.   * В каком случае делать автоматизацию,​ с учетом частоты рутины раз в неделю раз в мес раз в год и сколько денег сэкономит автоматизация с учетом уменьшения человекоошибок. Помнить что ничего вечно не используется и возможно достаточно инструкций.
   * Автоматизация процесса разработки,​ это важна в первую очередь для освобождения мозга программиста и только во вторую для экономии времени.   * Автоматизация процесса разработки,​ это важна в первую очередь для освобождения мозга программиста и только во вторую для экономии времени.
Строка 51: Строка 51:
   * База-base-гипервизор-нода-хост,​ не обязаны быть микроосью,​ можно использовать и обычную ОС, но все файлы базы лежат в одном каталоге по принципу DAAP, стараемся максимально не зависеть от ОС, если крон и прочее то симлинками на себя из cron.d или автоконфигурирование каждый старт. Переустановка ОС не должна влиять на работу базы. Отличия от гипервизора,​ то что службы можно не только стартовать,​ но и настраивать через файл описания службы,​ через веб интерфейс и т.д.   * База-base-гипервизор-нода-хост,​ не обязаны быть микроосью,​ можно использовать и обычную ОС, но все файлы базы лежат в одном каталоге по принципу DAAP, стараемся максимально не зависеть от ОС, если крон и прочее то симлинками на себя из cron.d или автоконфигурирование каждый старт. Переустановка ОС не должна влиять на работу базы. Отличия от гипервизора,​ то что службы можно не только стартовать,​ но и настраивать через файл описания службы,​ через веб интерфейс и т.д.
   * Возможность централизовано управлять всеми конфигами организации через единый интерфейс,​ например git, carbon_rtsh и тп   * Возможность централизовано управлять всеми конфигами организации через единый интерфейс,​ например git, carbon_rtsh и тп
 +  * Принцип посмотри свысока свежим взглядом,​ защита от переусложнения! Часто разработка софта, архитектуры или правил уходит в глубокую бесконечную идеализацию,​ возникает множество деталей. Важно посмотреть на все сверху от главных процессов от первичной задачи проекта,​ возможно не окупится такая идеальная проработка.
  
 Если есть желающие систематизировать и отсортировать,​ сделать примеры,​ расширить и тд, все скажут спасибо. Если есть желающие систематизировать и отсортировать,​ сделать примеры,​ расширить и тд, все скажут спасибо.
  
-[[open_carbon_7:​инструкция_программиста|Читать далее: инструкция_программиста]]+[[foxdev_7:​инструкция_программиста|Читать далее: инструкция_программиста]]
  
  
 ~~OWNERAPPROVE~~ ~~OWNERAPPROVE~~