https://docs.microsoft.com/ru-ru/azure/architecture/guide/architecture-styles/
Лаконичная статья по основным стилям архитектуры. Ни добавить, ни убавить. Очень нравится, что есть схемы, которые легко запомнить и понять, а слов минимальное количество. Слова в архитектуре - вторичны, главное - схемы и другие визуальные средства представления идей.
Лаконичная статья по основным стилям архитектуры. Ни добавить, ни убавить. Очень нравится, что есть схемы, которые легко запомнить и понять, а слов минимальное количество. Слова в архитектуре - вторичны, главное - схемы и другие визуальные средства представления идей.
Docs
Стили архитектуры - Azure Application Architecture Guide
Узнайте о стилях архитектуры для облачных приложений, включая рекомендации и описание развертываний с использованием служб Azure.
👍44🔥10😁1
Утиная типизация полна сюрпризов, ведь если что-то крякает как утка, плавает как утка, выглядит как утка - это еще совсем не значит, что перед нами утка. И мой любимый пример, когда утиная типизация дает сбой - клубника. Если что-то выглядит как ягода, пахнет как ягода, на вкус как ягода - это еще не означает, что перед нами ягода, так как клубника - это скорее орех, а если еще точнее, то "многоорех".
Утиная типизация - прекрасна для небольших приложений, прототипов и демонстраций. Но в серьезном проекте она рано или поздно приведет к ситуации "да что за хрень у нас тут получилась?".
С другой стороны, строгая типизация - это тот еще фрукт, мне очень часто хочется сначала накидать логику, а потом уже вводить классификацию и ограничения типов. Поэтому мне очень заходят языки в которых есть "универсальные типы", где можно начать со слабой системы типов, а потом их расширять по мере необходимости.
Мне по кайфу писать на typenoscript, не потому что это лучший язык на планете, а потому что я могу сам принимать решение о том насколько жесткая система типов мне нужна.
Хорошим дополнением к строгой типизации является "вывод типов", например, алгоритм Хиндли-Милнере, когда мы не указываем явно типы, а они "магическим" образом выводятся из наших "утверждений" или "действий". И этот вариант тоже приятно использовать, но все же в этом случае тратится чуть больше мозготоплива.
Этим топиком я хочу сказать, что утиная типизация - это удобно, но ограничиваться только ей - неразумно. Нужно обязательно попробовать разные способы типизировать свои данные, чтобы выбрать тот который со вкусом "клубнички".
Утиная типизация - прекрасна для небольших приложений, прототипов и демонстраций. Но в серьезном проекте она рано или поздно приведет к ситуации "да что за хрень у нас тут получилась?".
С другой стороны, строгая типизация - это тот еще фрукт, мне очень часто хочется сначала накидать логику, а потом уже вводить классификацию и ограничения типов. Поэтому мне очень заходят языки в которых есть "универсальные типы", где можно начать со слабой системы типов, а потом их расширять по мере необходимости.
Мне по кайфу писать на typenoscript, не потому что это лучший язык на планете, а потому что я могу сам принимать решение о том насколько жесткая система типов мне нужна.
Хорошим дополнением к строгой типизации является "вывод типов", например, алгоритм Хиндли-Милнере, когда мы не указываем явно типы, а они "магическим" образом выводятся из наших "утверждений" или "действий". И этот вариант тоже приятно использовать, но все же в этом случае тратится чуть больше мозготоплива.
Этим топиком я хочу сказать, что утиная типизация - это удобно, но ограничиваться только ей - неразумно. Нужно обязательно попробовать разные способы типизировать свои данные, чтобы выбрать тот который со вкусом "клубнички".
👍46👎3🔥3🤣2😁1
Есть очень распространенная ошибка про "утиную типизацию", что она такая же "мощная" как строгие типы. Но это не так! Строгие типы показывают не только "наличие" нужных свойств, но так же и "отсутствие" лишних свойств.
Утиная типизация показывает только наличие "нужных" свойств, но эффективно проверить, что других "ненужных" свойств у объекта нет - невозможно (потому что множество "других" свойств бесконечно).
Строгая типипзция - exactly -> exactly car
Утиная типизация - like -> like car
Утиная типизация показывает только наличие "нужных" свойств, но эффективно проверить, что других "ненужных" свойств у объекта нет - невозможно (потому что множество "других" свойств бесконечно).
Строгая типипзция - exactly -> exactly car
Утиная типизация - like -> like car
👍30😁3🤩2