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

Резултати

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

Търсене: #bessonovka

当前筛选 #bessonovka清除筛选
DruschbaFM - English

@druschbaFm_en · Post #52561 · 26.03.2025 г., 07:58

⚡️ 🇷🇺 🇺🇦⚔️ Ukraine Fronts on the Morning of 26 March⚡️ 🔴#Sumy Direction: 🔴In #Sudzha Sector, to the west on Ukrainian lands, for a RFAF presence at #Vladimirovka evidence is still missing (1st blue arrow on map). 🟡 For #Veselovka, the battle continues (1st black arrow). 🟡 In #Zhuravka as well. 🟡#Basovka is at best 50% RFAF controlled. 🟡#Novenkoye, is Russian controlled (1st red arrow). 🟡 In #Kursk region, according to unconfirmed reports, the 'Sudza Gas Transmission Point' is under RFAF control and the battle for the nearby border checkpoint continues (4th black arrow). 🟡#Gogolevka remains under full AFU control (2nd blue arrow). Contrary reports are unproven. 🟡#Melovoy came under the control of Russian troops, which advanced further westwards towards #Oleshnya (2nd red arrow). 🟡#Oleshnya, #Guyevo and #Gornal remain under AFU control for now. 🔴In #KrasnayaYaruga Sector, the AFU 8th Special Forces Regiment and 'Aidar' Nationalists failed to take #Popovka (5th black arrow). Over the past day, the AFU razed the village to the ground with artillery and drones. 🟡 In #Demidovka, nearby to the southeast, Small AFU groups enter periodically, uncapable to take the village (6th black arrow). 🟡 At #Grafovka, lull. 🟡 West of #Prilesye, the AFU have been driven out from Russian territory. 🗺 All on Map 1 🔴 In #Kharkov Direction, positional battles continue In the areas of #Lipsy and #​​Volchansk. A large number of drones, artillery and aircraft are used. 🔴#Svatovo Front: 🔴 In #Kupyansk Sector, north of the city, Russian forces created a new bridgehead between #Kamenka and #Krasnoye1st. In the area of #​​Dvurechnaya, the battles continue, as well as on the #Zapadnoye - #Kalinovo line. 🔴 In #Borovaya, #Liman and #Seversk Sectors, without major changes. 🔴#ChasovYar Direction: 🔴In #ChasovYar Sector, heavy urban battles continue in 'Shevchenko Microdistrict' in the southern part of the city. To the south, fighting in the area of #Stupochki. 🔴In #Toretsk Sector, the RFAF continue attempts to take the city, increasing the pressure in its north. 🔴#Pokrovsk Direction: 🔴 On the right Flank, far to the east, Russian troops attack southwest of #Aleksandropol and try to straighten the front. 🔴 South of the City and on the left Flank, no changes. 🔴#Komar Direction: 🔴In #Konstantinopol Sector, the battle for the same named village continues. 🟡 Southeast of #Razliv, the RFAF advanced on a broad front, extending the zone of control in an area up to 4 km wide and up to 2.05 km deep, approaching the settlement located southwest of #Konstantinopol. 🔴 In #Komar Sector, Russian forces repulsed AFU counterattacks in the areas of the #Vesyoloye and #VolnoyePole settlements. 🔴#Zaporozhye Direction: 🔴In #Orekhov Section, the situation based on confirmed and evidenced data has improved for the RFAF: 🟡 In #Shcherbaki, the AFU lost full control. 🟡 In nearby #MalyeShcherbakito the west, the RFAF have advanced. The AFU still hold positions in its far northeast. 🟡 In #Stepovoye's, further west, there are heavy fights in the village. 🎬 Video 1 🗺 Map 2 🟡 In #Lobkovoye, the the RFAF advanced northwards. About 50% of the village came under Russian control. 🗺 Map 2 🟡 #​​Pyatikhatki, came under full RFAF control yesterday. 🗺 Map 2 🔴 In #Kherson Direction, no changes. 💥#OldRussia: 🔵 In #Belgorod Region, civil objects in #Politodelsky, #Kazinka, #Shebekino, #Tishanka and #Bessonovka came under AFU attack. 💥#RestUkraine: 🔵 The RFAF targeted AFU facilities and militants in #Zaporozhye, #Nikolayev and #Dnepropetrovsk, as well as in #Sumy, #Poltava and #Cherkassy regions. 🟡 In #KrivoyRog, more than 15 explosions occurred overnight. 🎬 Video 2 🎞 Vids Source 1; Source 2; 🗺 Maps @olegtsarov; @creamy_caprice 📋 Sources: CC; Tsarov; ⚡️2M; 🇺🇦Fiend;😼Kotenok 🕰As of 26 Mar 2025; 06:41 GMT+3;📃25 Mar 📱 Join GLOBAL DEPTH to boost your TG Feed 💬Join Military Chat for Comments & Discussions 🇺🇦On Ukraine Observer you will find your daily independent Ukraine War Battle Update