S0ER – Telegram
10.6K subscribers
333 photos
18 videos
15 files
707 links
Архитектура | Программирование | Профессиональное развитие

Соер.Клуб - https://news.1rj.ru/str/soer_live

По всем вопросам писать на @soerdev
Download Telegram
https://docs.microsoft.com/ru-ru/azure/architecture/guide/architecture-styles/

Лаконичная статья по основным стилям архитектуры. Ни добавить, ни убавить. Очень нравится, что есть схемы, которые легко запомнить и понять, а слов минимальное количество. Слова в архитектуре - вторичны, главное - схемы и другие визуальные средства представления идей.
👍44🔥10😁1
Утиная типизация полна сюрпризов, ведь если что-то крякает как утка, плавает как утка, выглядит как утка - это еще совсем не значит, что перед нами утка. И мой любимый пример, когда утиная типизация дает сбой - клубника. Если что-то выглядит как ягода, пахнет как ягода, на вкус как ягода - это еще не означает, что перед нами ягода, так как клубника - это скорее орех, а если еще точнее, то "многоорех".

Утиная типизация - прекрасна для небольших приложений, прототипов и демонстраций. Но в серьезном проекте она рано или поздно приведет к ситуации "да что за хрень у нас тут получилась?".

С другой стороны, строгая типизация - это тот еще фрукт, мне очень часто хочется сначала накидать логику, а потом уже вводить классификацию и ограничения типов. Поэтому мне очень заходят языки в которых есть "универсальные типы", где можно начать со слабой системы типов, а потом их расширять по мере необходимости.

Мне по кайфу писать на typenoscript, не потому что это лучший язык на планете, а потому что я могу сам принимать решение о том насколько жесткая система типов мне нужна.

Хорошим дополнением к строгой типизации является "вывод типов", например, алгоритм Хиндли-Милнере, когда мы не указываем явно типы, а они "магическим" образом выводятся из наших "утверждений" или "действий". И этот вариант тоже приятно использовать, но все же в этом случае тратится чуть больше мозготоплива.

Этим топиком я хочу сказать, что утиная типизация - это удобно, но ограничиваться только ей - неразумно. Нужно обязательно попробовать разные способы типизировать свои данные, чтобы выбрать тот который со вкусом "клубнички".
👍46👎3🔥3🤣2😁1
Есть очень распространенная ошибка про "утиную типизацию", что она такая же "мощная" как строгие типы. Но это не так! Строгие типы показывают не только "наличие" нужных свойств, но так же и "отсутствие" лишних свойств.
Утиная типизация показывает только наличие "нужных" свойств, но эффективно проверить, что других "ненужных" свойств у объекта нет - невозможно (потому что множество "других" свойств бесконечно).
Строгая типипзция - exactly -> exactly car
Утиная типизация - like -> like car
👍30😁3🤩2
This media is not supported in your browser
VIEW IN TELEGRAM
👍17
This media is not supported in your browser
VIEW IN TELEGRAM
👍9
This media is not supported in your browser
VIEW IN TELEGRAM
👍21
This media is not supported in your browser
VIEW IN TELEGRAM
👍12
This media is not supported in your browser
VIEW IN TELEGRAM
👍9
This media is not supported in your browser
VIEW IN TELEGRAM
👍13
This media is not supported in your browser
VIEW IN TELEGRAM
👍8
This media is not supported in your browser
VIEW IN TELEGRAM
👍10
This media is not supported in your browser
VIEW IN TELEGRAM
👍18
This media is not supported in your browser
VIEW IN TELEGRAM
👍20🤣2
This media is not supported in your browser
VIEW IN TELEGRAM
👍12
This media is not supported in your browser
VIEW IN TELEGRAM
👍17
This media is not supported in your browser
VIEW IN TELEGRAM
👍11
This media is not supported in your browser
VIEW IN TELEGRAM
👍21
This media is not supported in your browser
VIEW IN TELEGRAM
👍7😁4
This media is not supported in your browser
VIEW IN TELEGRAM
👍14
This media is not supported in your browser
VIEW IN TELEGRAM
👍14
This media is not supported in your browser
VIEW IN TELEGRAM
👍11