TGTGInsightтелеграм анализLIVE / telegram public index
← Такты, стеки, два колеса

TGINSIGHT SIMILAR POSTS

Намери подобно съдържание

Изходен канал @clockstackwheels · Post #721 · 26.12

Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области. Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий Object, к полям которого нужно было обращаться ["по_строковому_имени"]. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него. "Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!" Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее. Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то. С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше. Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс. В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков. #dev

Hashtags

Резултати

Намерени 2 подобни публикации

Търсене: #scythians

当前筛选 #scythians清除筛选
R1a-Z93

@r1az93 · Post #1494 · 01.08.2024 г., 17:47

"آماده سازی برای دفن". فرهنگ پازیریک ، قرن چهارم قبل از میلاد ، پنجمین بارو پازیریک. پنجمین بارو پازیریک بخشی از یک گروه هشت بارو در دره رودخانه بولشوی اولاگان در کوه های آلتای است. پنجمین بارو با مجموعه ای از چیزها ثروتمندترین آنها است و توسط S. I. Rudenko در سال 1949 حفاری شد. زیر خاکریز سنگی به ارتفاع 4 متر و قطر 42 متر یک گودال قبر به عمق 4 متر و مساحت 55 متر مربع وجود داشت. گودال توسط دو چوب پوشانده شده بود. بین آنها یک لایه سنگ به وزن مجموع 3 تن بود. اتاق دفن به شکل یک کابین چوبی دوگانه سه ستون پشتیبانی در دیوارهای شمالی و جنوبی داشت که وزن را محدود می کرد. بعد از اینکه سارقان باستانی تخته های چوبی و سقف دوگانه را قطع کردند ، آب شروع به نفوذ به اتاق کرد. با شروع زمستان ، یخ زد و به لطف شیب سنگی ، در تابستان آب نشد. این یک لنز یخ زیر تپه ایجاد کرد که اشیاء ساخته شده از مواد آلی را حفظ می کرد ، از جمله مومیایی های مرحوم. در قسمت شمالی گودال دفن ، 9 اسب پیدا شد: 5 اسب سوار و 4 اسب مهار. در کنار اسب های مهار ، یک ارابه 4 چرخ با شعاع ، که هیچ مکانیسم چرخشی نداشت ، که در آن چهار اسب در یک سونامی مهار شدند ، از هم پاشیده شده بود. در این واگن همسر رئیس به دنیای بعدی رفت ، زمانی که برای رئیس خود اسب سواری آماده شد. در پنجمین بارو پازیریک در یک چوب سارکوفاگ 5 متری ، اجساد مومیایی شده رئیس و همسرش قرار داشت. مرد حدود 55 سال سن داشت ، قدش 176 سال بود. به طور کلی ، اشراف پازیریک 170-180 سانتی متر قد داشتند. مردان معمولی پازیریک با رشد پایین تر ، به طور متوسط 164 سانتی متر مشخص شدند. در بخش عمده ای از عشایر آلتای قفقاز از نوع "شمالی" بودند ، موهای روشن (از قهوه ای و بلوند تیره تا بلوند) و چشم های روشن داشتند ، این نیز توسط انسان شناسی جمجمه ها نشان داده می شود (بله ، هر نوع نژادی دارای رنگدانه خاصی از چشم ، مو و رنگ پوست است) و قطعات حفظ شده مو در مومیایی ها. اما اغلب ، حتی در میان اشراف ، قفقاز با ویژگی های مغولویی وجود دارد ، که با ازدواج خارجی و ازدواج های سلسله ای با زنان دیگر قبایل غیر اسکیتی همراه است. "Подготовки к погребению". Пазырыкская культура, IV век до н.э., Пятый Пазырыкский курган. Пятый Пазырыкский курган входит в группу из восьми курганов в долине реки Большой Улаган в Горном Алтае. Пятый курган самый богатый из них по набору вещей и был раскопан С.И. Руденко в 1949 году. Под каменной насыпью высотой 4 метра и диаметром 42 метра находилась могильная яма глубиной 4 метра площадью 55 кв. м. Яму перекрывали два наката из брёвен. Между ними был слой камней общим весом 3 тонны. Погребальная камера в виде двойного сруба имела три опорных столба у северной и южной стен, которые сдерживали этот груз. После того, как древние грабители прорубили бревенчатый накат и двойной потолок, вода стала просачиваться в камеру. С наступлением зимы она промерзала и, благодаря каменному откосу, не оттаивала летом. Благодаря чему под курганом образовалась ледяная линза, сохранившая предметы из органических материалов, включая мумии покойных. В северной части могильной ямы обнаружили 9 лошадей: 5 верховых и 4 упряжных. Рядом с упряжными в разобранном виде лежала 4-х колёсная повозка со спицами, которая не имела поворотных механизмов, в которую цугом запрягали четверку лошадей. На этой повозке жена вождя отправлялась в мир иной, когда для самого вождя были подготовлены верховые кони. В Пятом Пазырыкском кургане в колоде-саркофаге длиною 5 м. лежали мумифицированные тела вождя и его жены. Мужчина был европпеоидом примерно 55 лет, ростом 176. В целом, пазырыкская аристократия была ростом 170-180 см. Рядовые пазырыкские мужчины отличались более низким ростом, в среднем 164 см. В основной своей массе алтайские кочевники были европеоидами "северного" типа, имели светлые волосы (от каштановых и темно-русых до блонда) и светлые глаза, на это также указывает антропология черепов (да, каждому расовому типу присуща определенная пигментация глаз, волос и тона кожи) и сохранившиеся фрагменты волос у мумий. Но нередко, даже среди знати встречаются европеоиды с монголоидными чертами, что связано с экзогамией и династическими браками с женщинами других нескифских племён. #scythians#indoeuropean#скифы#индоевропейцы Kār-nāmag ī Āryān | Подписаться👑