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 подобни публикации

Търсене: #lietuva

当前筛选 #lietuva清除筛选

х войск было мало, а литовское население, на которое могли бы опереться власти, практически отсутствовало (максимум — 2%). Поляки же, наряду с евреями, составляли значительную часть жителей, к тому же у них была подпольная военизированная организация. Правда, около полудня 9 октября литовские подразделения еще раз попытались задержать войска Желиговского вблизи города, возле Пышно и Котловки. Движение частей ЛБД с юга на некоторое время остановилось. Но уже в 14.15 с юго-востока, через предместье Комины, в Вильню вошли полки 2-й бригады ЛБД в сопровождении дивизиона конных стрелков. А в 17 часов в Вильню вошел вместе с генералом Желиговским и Виленский полк ЛБД. Все польское население города вышло на улицы и с энтузиазмом встречало солдат Литовско-Белорусской дивизии как своих освободителей. Позже Желиговский вспоминал, что какая-то бедно одетая женщина сунула ему кусок хлеба, какие-то молодые люди кормили его коня. Люди обнимали солдат. Но, — пишет генерал, — у части домов окна были закрыты. Это были еврейские жилища. Евреи не разделяли радости польских виленцев. Жизненный опыт научил их, что от любой армии, вступающей в город, можно ждать грабежей и погромов. Покинувшее Вильню литовское правительство оставило здесь своего уполномоченного И. Йонинаса, а он в последний момент официально передал власть в городе временному губернатору, представителю Антанты французскому полковнику Константину Ребулю. Этим символическим актом он как бы подчеркнул, что Вильня остается литовской. Остались и солдаты литовской комендатуры, подчиненные теперь французскому полковнику. В тот же вечер Желиговского пригласили на встречу с дипломатическими представителями европейских стран при правительстве Литвы. Представитель Великобритании в государствах Прибалтики генерал Бэрт спросил его: «По какому праву вы заняли Вильно?» Генерал Желиговский ответил: «Я занял Вильно и весь этот край для того, чтобы защищать права населения и дать ему возможность высказаться, чего оно хочет». Английский генерал возразил: «Мы, представители Антанты, находимся здесь и обеспечим эти права». Желиговский сказал: «Нет. На это согласиться не могу Население само выскажется о своей судьбе». В заключение этой короткой беседы Желиговский сказал: «Прошу Вас всех завтра до 12 часов дня покинуть Вильно». На следующий день представители ковенского правительства и иностранных государств покинули город. #Гражданская_война | #История | #Russian_civil_war | #Lietuva | #Польско_литовская_война | #ehoperekopa_Литва | #Литовская_армия | #Литва | #Вильнюс | #Lithuania | #Мятеж_Желиговского #ehoperekopa_Польша | #Пилсудский | #Polska

тупила на стороне белорусских партизан. Дело в том, что 15 марта 1923 года Лига Наций признала восточную границу Польши (включая Вильню) с СССР и Литвой. После этого литовское руководство уже не могло рассчитывать на то, что в войне против Польши оно получит иностранную помощь. Интересы литовских и белорусских политических деятелей разошлись. К тому же их разделяли политические ориентации: белорусские деятели в своем большинстве верили в социализм, тогда как литовские политики являлись сторонниками буржуазного либерализма. Белорусскому правительству в 1923 году пришлось уехать из Ковно (Каунаса) в Прагу, столицу Чехословакии, а Ластовский ушел в отставку. Подпольные и партизанские структуры в Западной Белоруссии стали распадаться. Этому способствовала измена некоторых партизанских командиров. В 1923 году часть бывших эсэровских подпольных групп перешла под контроль большевистских эмиссаров, присланных из Минска. На основе «Братства белорусов» и «Союза крестьянской самообороны» была создана компартия Западной Белоруссии. Численность белорусского батальона литовской армии значительно сократилась. К январю 1923 года в нем осталось 12 офицеров и одна рота. Батальон перевели в Мариямполь, а 25 апреля преобразовали в роту (6 офицеров, 203 солдата). К концу 1923 года была расформирована и эта рота. #Гражданская_война | #История | #Russian_civil_war | #Lietuva | #Польско_литовская_война | #ehoperekopa_Литва | #Литовская_армия | #Литва | #Вильнюс | #Lithuania | #Мятеж_Желиговского | #ehoperekopa_Польша | #Пилсудский | #Polska | #Беларусь | #БНР | #Белоруссия |