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

Резултати

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

Търсене: #freedomofpress

当前筛选 #freedomofpress清除筛选

❗️ On this day nine years ago, Ukrainian writer and opposition journalist Oles Buzina was assassinated in front of hi️s home in Kiev. He became one of the many victims of the Kiev criminal regime because he posed a threat to it – he publicly criticised and exposed the true nature of the neo-Nazi forces that had gained power as a result of the bloody coup d'état in Ukraine. Buzina urged the then Ukrainian leadership to establish a dialogue with the inhabitants of Donbass and spoke about the need to consolidate the rights of the Russian language, which seriously irritated the post-coup officials in Kiev. He also received threats from Ukrainian radicals because his interpretation of Ukraine's historical path did not coincide with the nationalist ideology. ☝️ Such an active and firm civil position of Oles Buzina cost him his life. A few days before his death, the journalist's personal data, including his home address, appeared on the Myrotrvorets (Peacemaker) extremist website, which contains personal information about all public figures, publicists, reporters, and journalists undesirable to the Kiev regime, a resource created literally as a practical guide for preparing terrorist acts. Despite the fact that condemnation of the murder, condolences to the victim's family and demands for a comprehensive investigation were voiced by the #UN Secretary General, #OSCE and #US State Department officials and many civil society organisations, the perpetrators of his murder were never identified and the suspects were released. After almost a decade, it is clear that the situation with freedom of speech in Ukraine has degraded to a critical level. After almost a decade, it is clear that the situation with freedom of speech in Ukraine has degraded to a critical level. All media outlets in opposition to the Kiev regime are banned, and any manifestations of dissent are brutally suppressed and erased from the information space. Unwanted journalists, primarily Russian ones, are being hunted down with all possible weapons. In the past two years alone, the Kiev regime has killed journalists Darya Dugina (Platonova), Oleg Klokov, Vladlen Tatarsky (Maxim Fomin), Rostislav Zhuravlyov and Boris Maksudov. ❌ Terrorist methods are being used to implement these criminal plans, while Ukraine's Western handlers and biased human rights organisations continue to turn a blind eye to these evil deeds. #Ukraine#FreedomOfPress#FreedomOfSpeech

籽煤 yseedsmedia

@yseedsmedia · Post #16 · 21.06.2021 г., 03:41

撐嘅唔只係蘋果, 而係真相同公義。 #SupportAppledaily#撐蘋果日報#FreedomOfPress#FreePress#saveappledaily#jimmylai#FreeJimmyLai #WeNeedAppleDaily #籽煤#紙媒#撐到底 Follow and share us: IG: yseedsmedia Fb: yseedsmedia YouTube: 籽媒yseedsmedia

籽煤 yseedsmedia

@yseedsmedia · Post #23 · 24.06.2021 г., 02:27

很遺憾 要以這樣的形式去認識你 - 李平先生 同樣地,要以這樣的形式去告別蘋果日報🍎 #SupportAppledaily#撐蘋果日報#FreedomOfPress#FreePress#saveappledaily#jimmylai #國安法#FreeJimmyLai #反惡法 #WeNeedAppleDaily #籽煤#紙媒#撐到底 Follow and share us: IG: yseedsmedia Fb: yseedsmedia YouTube: 籽媒yseedsmedia

籽煤 yseedsmedia

@yseedsmedia · Post #18 · 22.06.2021 г., 02:33

一雞死、一雞鳴 仲有千千萬萬個蘋果陸續有黎 壓制到民主,不代表香港人追求民主之心已走到絕路。 #SupportAppledaily#撐蘋果日報#FreedomOfPress#FreePress#saveappledaily#jimmylai#FreeJimmyLai #WeNeedAppleDaily #籽煤#紙媒#撐到底 #立場新聞 Follow and share us: IG: yseedsmedia Fb: yseedsmedia YouTube: 籽媒yseedsmedia

籽煤 yseedsmedia

@yseedsmedia · Post #20 · 23.06.2021 г., 01:32

蘋果倒下之迷🧐? #SupportAppledaily#撐蘋果日報#FreedomOfPress#FreePress#saveappledaily#jimmylai #國安法#FreeJimmyLai #反惡法 #WeNeedAppleDaily #籽煤#紙媒#撐到底 #立場新聞 Follow and share us: IG: yseedsmedia Fb: yseedsmedia YouTube: 籽媒yseedsmedia

籽煤 yseedsmedia

@yseedsmedia · Post #9 · 17.06.2021 г., 03:16

捍衛新聞自由 繼續撐爆蘋果 #SupportAppledaily#撐蘋果日報#FreedomOfPress#FreePress #saveappledaily#jimmylai#FreeJimmyLai #堅持#香港加油🇭🇰#自由#香港人加油#勿忘初衷#籽媒#yseedsmedia Follow and share us: IG: yseedsmedia Fb: yseedsmedia YouTube: 籽媒yseedsmedia

籽煤 yseedsmedia

@yseedsmedia · Post #14 · 18.06.2021 г., 02:42

貨架已清空 50萬份紙媒 證明有良知的香港人一路與蘋果日報同行 你 買左未?🍎 #撐蘋果#蘋果日報#言論自由#每日一蘋果#appledaily#我撐蘋果 #SupportAppledaily#撐蘋果日報#FreedomOfPress#FreePress #saveappledaily#jimmylai#FreeJimmyLai #WeNeedAppleDaily Follow and share us: IG: yseedsmedia Fb: yseedsmedia YouTube: 籽媒yseedsmedia

籽煤 yseedsmedia

@yseedsmedia · Post #24 · 24.06.2021 г., 09:24

今日係蘋果日報嘅最終章,為左守護最重要的自由板塊,零晨已經到各大報攤,甚至乎到將軍澳,係雨天支持蘋果日報🍎 我相信唔係個個人都可以買到蘋果日報,如果有人有意想要一份最終章,請follow我地嘅IG及留言,我地可以免費送比各位有心的手足。 數量有限,派完即止。 #SupportAppledaily#撐蘋果日報#FreedomOfPress#FreePress#saveappledaily#jimmylai#國安法#免費派發#送蘋果日報最終章 #送完即止#FreeJimmyLai#反惡法 #WeNeedAppleDaily #籽煤#紙媒#撐到底 Follow and share us: IG: yseedsmedia Fb: yseedsmedia YouTube: 籽媒yseedsmedia