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

Търсене: #pyatihatki

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

@druschbaFm_en · Post #52135 · 16.03.2025 г., 08:07

⚡️ 🇷🇺 🇺🇦📆 Weekly Ukraine War Roundup⚡️ 🕊 The Negotiation Process is being deliberately prolonged. Kiev refuses to halt mobilisation and is preparing new provocations, while the #EU pushes Zelensky forward at the expense of Europe's national interests. #Russia, recognising that a proposed 30-day ceasefire would allow the AFU to recover and fortify, is explaining to the #US why such a move is futile. 🗓 This Week's Key political Outcome has been the rapid advance of the Russian Army in the #Kursk region, the liberation of #Sudzha City, and battles in the Ukrainian #Sumy region. 🇷🇺 Russian military Successes precisely strengthen their negotiating position, as emphasised by the Supreme Commander, President Putin, during a meeting at the command post in #Kursk region. Overall, #Russia seeks a long-term, stable peace, not short-term satisfaction of Trump’s ambitions. Conversations with frontline soldiers, who have fought in the hardest sectors since the war began, confirm the Russian Army's readiness to push forward until the full objectives of the Special Military Operation are achieved. 🇺🇦 Kiev’s Position has notably shifted significantly. Initially, it demanded a return to the '1991 borders,' then to the 'Prewar Borders,' and now Zelensky is prepared to freeze the conflict along the current frontline. This is unacceptable to #Russia within its new constitutional borders. Moreover, any pause in fighting benefits the retreating side. 🇺🇸 The United States, meanwhile, has resumed providing intelligence and military-technical aid to #Ukraine, while European bureaucrats fuel war hysteria and prepare for direct conflict with #Russia. This is seen in #Poland and #Germany expanding their armed forces (including territorial defence and universal military training) and in military production ramp-ups, generating huge profits for arms manufacturers. ⚔️ On the Front, Russian success in the #Kursk region sets the stage for further advances in the #Sumy direction. The AFU had anticipated this and prepared defensive lines. 🔴 In #Belgorod Region, the AFU continue daily strikes on civilians using artillery and drones. 🔴#Svatovo Front: 🔴 In #Kupyansk Sector, reports indicate AFU counteractions against the Russian bridgeheads on the right bank of the Oskol River. 🔴 In #Liman Sector, Russian forces remain active near #Kolodezi and #Yampolovka. 🔴 In #Seversk Sector, Russian troops are advancing with heavy fighting from #Belogorovka towards #Grigorovka. 🔴 ChasovYar Direction: 🔴 In #Toretsk Sector, the AFU continue deploying personnel and equipment in the city itself, with battles ongoing for the urban agglomeration. 🔴 In #Pokrovsk Direction, north of #Vozdvizhenka, fighting is underway near #Tarasovka, where the AFU has built strong defensive positions. Near the city, positional battles continued throughout the week, but by the end of the week, Russian forces regained the initiative. 🔴 In #Komar Direction, northwest of the conquered #Konstantinopol, Russian troops are aligning the front by advancing westward. In #Komar sector, #Dneproenergiya has been secured. 🔴 On the #Zaporozhye Front, the capture of #Pyatihatki and #Stepovoye was key, with battles ongoing for #Shcherbaki and #MalyeShcherbaki. 📌 Given the Events, political discussions about peace should not be seen as a signal for an imminent ceasefire. Politicians make statements to mislead opponents and provoke mistakes. It is crucial to understand that, beyond Russia’s constitutionally recognised regions, previously declared Russian cities #Odessa, #Kharkov, #Nikolayev, #Dnepropetrovsk, and even #Kiev will remain under Western control unless the Kiev Regime is fully dismantled, posing a lasting threat to #Russia. 🗺 Map Kursk Region by @olegtsarov 📋Sources: ⚡️2M; 🇺🇦Fiend; 😼Kotenok 🕰16 Mar 2025; 06:43 GMT+3; #sum 📱 Join GLOBAL DEPTH to boost your TG Feed 💬Welcome to Military Chat & Ukraine Observer 🇺🇦On Ukraine Observer you will find your daily independent Ukraine War Battle Update