Аксиомы

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
foxdev_7:аксиомы [15.01.2018 10:35]
127.0.0.1 внешнее изменение
foxdev_7:аксиомы [20.05.2019 15:18] (текущий)
Строка 1: Строка 1:
-{{indexmenu_n>​20}}\\+{{indexmenu_n>​20}}
 Инструкция написана в стиле для суровых бородатых прагматиков,​ это сделано специально тк перфекционизма у вас и так море.\\ Инструкция написана в стиле для суровых бородатых прагматиков,​ это сделано специально тк перфекционизма у вас и так море.\\
 Конечно,​ все банально и все все знают, но именно акцентирование и приоритизация дают преимущество. Конечно,​ все банально и все все знают, но именно акцентирование и приоритизация дают преимущество.
  
-==== Аксиома 1. Прогресс ускоряется. ====+===== Аксиома 1. Прогресс ускоряется. ​=====
  
 **Правило 1.1 Делай только требуемое.** \\ **Правило 1.1 Делай только требуемое.** \\
Строка 20: Строка 20:
 Время жизни ПО и технологий ограниченно,​ разрабатывать 5 лет, чтобы потом 1 год использовать - это глупость,​ соотношение должно быть 1 год разработки к 5 лет использования минимум. Время жизни ПО и технологий ограниченно,​ разрабатывать 5 лет, чтобы потом 1 год использовать - это глупость,​ соотношение должно быть 1 год разработки к 5 лет использования минимум.
  
-**Правило 1.4 Priority: Users, ​Developpers, Machine** \\+**Правило 1.4 Priority: Users, ​Developers, Machine** \\
 Приоритет при выборе решений:​ сначала удобство для пользователей,​ потом удобство для программистов,​ и только при самой крайней необходимости,​ оптимизация для компьютера. Приоритет при выборе решений:​ сначала удобство для пользователей,​ потом удобство для программистов,​ и только при самой крайней необходимости,​ оптимизация для компьютера.
  
Строка 26: Строка 26:
 У программы должны быть дефалты на все, чтоб без чтения док и без правки конфига можно было использовать,​ документация должна быть встроенной и обязательно с конкретными примерами. Большинство OpenSource программ не работает из коробки,​ например postfix,​squid,​nginx мы считаем это неверным,​ все должно работать сразу или с минимальными обязательными параметрами.\\ У программы должны быть дефалты на все, чтоб без чтения док и без правки конфига можно было использовать,​ документация должна быть встроенной и обязательно с конкретными примерами. Большинство OpenSource программ не работает из коробки,​ например postfix,​squid,​nginx мы считаем это неверным,​ все должно работать сразу или с минимальными обязательными параметрами.\\
  
-==== Аксиома 2. Сложность систем растет. ====+===== Аксиома 2. Сложность систем растет. ​=====
  
 **Правило 2.1 Не усложняй,​ используй бритву Оккама и принцип KISS.** **Правило 2.1 Не усложняй,​ используй бритву Оккама и принцип KISS.**
Строка 40: Строка 40:
 Правила постройки кирпичиков,​ блоков и зданий схожи. Правила постройки кирпичиков,​ блоков и зданий схожи.
  
-==== Аксиома 3. Человек ограничен,​ учитывай природу человека ====+===== Аксиома 3. Человек ограничен,​ учитывай природу человека ​=====
  
 Human nature, Human factors, Human limitations,​ Human readable, Different skills - миссия,​ идея, продукт,​ процесс разработки,​ архитектура ПО, стиль кода и все все все остальное должны учитывать человеческую природу,​ ограниченность человеческих возможностей. Human nature, Human factors, Human limitations,​ Human readable, Different skills - миссия,​ идея, продукт,​ процесс разработки,​ архитектура ПО, стиль кода и все все все остальное должны учитывать человеческую природу,​ ограниченность человеческих возможностей.
Строка 56: Строка 56:
 Одновременно мозг может работать с 5-9 объектами и методами,​ и видеть 20-60 строк. Учитывай это в сути алгоритма,​ декомпозируй,​ объединяй,​ изолируй,​ поясняй. Одновременно мозг может работать с 5-9 объектами и методами,​ и видеть 20-60 строк. Учитывай это в сути алгоритма,​ декомпозируй,​ объединяй,​ изолируй,​ поясняй.
  
-При выборе решений построения архитектуры и кода необходимо в первую очередь делать понятный код/​структуру/​архитектуру ​для человека ​даже если это идет в ущерб математической стройности ПО. Например,​ идеальная нормальная формы БД часто избыточная,​ сложная и неудобная в использовании и кодинге.+При выборе решений построения архитектуры и кода необходимо в первую очередь делать понятный ​читаемый и удобный для человека ​код/​структуру/​архитектуру ​ даже если это идет в ущерб математической стройности ПО. Например,​ идеальная нормальная формы БД часто избыточная,​ сложная и неудобная в использовании и кодинге ​и не надо делать кривой и неудобный код ради третьей формы.
  
 **Правило 3.3 Учитывай языковые и социальные особенности** \\ **Правило 3.3 Учитывай языковые и социальные особенности** \\
Строка 75: Строка 75:
 Много логировать.\\ Много логировать.\\
 Выводить подробный стек ошибок до строчки кода прямо пользователю в расширенное окно ошибки.\\ Выводить подробный стек ошибок до строчки кода прямо пользователю в расширенное окно ошибки.\\
 +Для облачного сервиса и аутсорсинга ошибки можно слать админу разработчика,​ но очень громко.\\
 +Лучше лишний раз послать ошибку директору или клиенту,​ чем потерять ее и не исправить.\\
 Человекопонятные имена и константы.\\ Человекопонятные имена и константы.\\
 Человекочитаемые текстовые протоколы. Человекочитаемые текстовые протоколы.
Строка 93: Строка 95:
 ---- ----
  
- \\ туду учесть саморазвитие,​ геймификацию,​ и минимум 20/% на интересные задачи. \\ **Keep it short and simple **  [[https://​ru.wikipedia.org/​wiki/​KISS_(принцип)|https://​ru.wikipedia.org/​wiki/​KISS_(принцип)]]+ \\ туду учесть саморазвитие,​ геймификацию,​ и минимум 20/% на интересные задачи. \\ 
 +Близкие подходы:​\\ 
 +**Keep it short and simple **  [[https://​ru.wikipedia.org/​wiki/​KISS_(принцип)|https://​ru.wikipedia.org/​wiki/​KISS_(принцип)]]\\ 
 +\\
  
- \\ [[:​open_carbon_7:​принципы|Читать далее: Принципы Open Carbon 7]]+<code bash> 
 +Почему опытные ​разработчики пишут тупой код https://​habrahabr.ru/​post/​347166/​ 
 +Код — это общение между людьми и инструкции для компьютера,​ но значительно больше первое,​ чем второе. Компилятор сам заботится о преобразовании написанного программистом в машинный код. ​Часто ​имеет место несколько слоёв такого преобразования,​ например,​ когда Java компилируется в байт-код,​ который считывается виртуальной машиной и транслируется в итоге в нули и единицы.
  
 +Но код — это человеческий язык. Он объясняет все «кто», «что», «когда»,​ «где», «как» и «почему» задачи,​ заодно давая инструкции компьютеру. Он должен иметь смысл и пять лет спустя,​ когда компания будет продана,​ и новая команда,​ никогда не видевшая этого кода, откроет его для улучшения и исправления.
 +</​code>​
 +
 + \\ [[foxdev_7:​принципы|Читать далее: Принципы Foxdev 7]]
 +
 +
 +~~OWNERAPPROVE~~