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

Резултати

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

Търсене: #unga79

当前筛选 #unga79清除筛选

🗓 On September 27, Russia's Foreign Minister Sergey Lavrov had a meeting with High Representatives of the Pacific Small Island Developing States on the sidelines of the 79th Session of the UN General Assembly in New York. The discussion centred on current international issues, including the situation in the Asia-Pacific region and globally. 🤝 The Officials confirmed their intention to step up cooperation on a broad range of issues of mutual interest. #UNGA79

Hashtags

🗓 On September 25, Foreign Minister Sergey Lavrov had a brief meeting with OSCE Chairperson-in-Office, Deputy Prime Minister and Minister for Foreign Affairs of Malta, Ian Borg, on the sidelines of the 79th session of the UN General Assembly, at the latter’s initiative. The counterparts discussed topical issues on the organisation’s agenda. The Russian side stressed the importance of the OSCE’s work in the interests of all member states, rather than individual groups of countries. Ways to overcome the crisis in the OSCE and normalise its activities were outlined, including in light of the upcoming OSCE Ministerial Council Meeting to take place in Valletta on December 5 and 6. During the meeting, Sergey Lavrov and Ian Borg also touched upon some aspects of Russia-Malta relations. #UNGA79

Hashtags

🌐 On September 26, Foreign Minister Sergey Lavrov took part in a traditional #BRICS Ministerial meeting held on the sidelines of the 79th session of the UN General Assembly in New York. The Ministers had an in-depth exchange of views on a broad range of international issues, including items on the agenda of the 79th UN General Assembly session. Discussions focused on peace and security, global economic stability, and sustainable development. The participants reiterated their commitment to enhancing coordination within BRICS on international platforms. As part of preparations for the upcoming BRICS Summit in Kazan on October 22-24, the ministers reviewed pressing BRICS cooperation-related issues, including the establishment of a partner country category. The Brazilian delegation provided an outline of its BRICS chairmanship in 2025. #UNGA79

EmbajadaRusaVen

@embajadarusaven · Post #1874 · 25.09.2024 г., 20:56

En el marco del 79° periodo de sesiones de #UNGA79 comenzó la reunión entre el Canciller 🇷🇺 Serguei Lavrov y su homólogo 🇻🇪 Yvan Gil Embajador Sergey Mélik-Bagdasárov: Las negociaciones entre Rusia y Venezuela en el marco de la #UNGA79 transcurren en la tradicional atmósfera de amistad y respeto mutuo. ¡Las cálidas sonrisas de los Cancilleres Serguéi Lavrov e Yván Gil son prueba de ello! 😊 Una vez más, reforzamos los fuertes lazos que unen a nuestros pueblos. #AlianzaEstrategicaEnAccion

Russian Embassy in Asmara

@rusembasmara · Post #501 · 27.09.2024 г., 04:13

🌐 On September 26, Foreign Minister Sergey Lavrovtook part in a traditional #BRICS Ministerial meeting held on the sidelines of the 79th session of the UN General Assembly in New York. The Ministers had an in-depth exchange of views on a broad range of international issues, including items on the agenda of the 79th UN General Assembly session. Discussions focused on peace and security, global economic stability, and sustainable development. The participants reiterated their commitment to enhancing coordination within BRICS on international platforms. As part of preparations for the upcoming BRICS Summit in Kazan on October 22-24, the ministers reviewed pressing BRICS cooperation-related issues, including the establishment of a partner country category. The Brazilian delegation provided an outline of its BRICS chairmanship in 2025. #UNGA79

Russian Embassy in Asmara

@rusembasmara · Post #499 · 26.09.2024 г., 18:45

🗓 On September 26, Russia's Foreign Minister Sergey Lavrovtook part in a working meeting of the #CSTO Foreign Ministers organised by Kazakhstan’s CSTO chairmanship on the sidelines of the high-level week of the 79th Session of the UN General Assembly. 🤝 The Ministers discussed a wide range of international and regional security issues. They stressed the need to step up coordination of actions on topical issues on the UN’s agenda between the CSTO member states on the UN platform and further promote cooperation between the CSTO and the UN. The Ministers discussed preparations for the next session of the CSTO Collective Security Council on November 28 in Astana. #UNGA79

Hashtags

ПредишнаСтр. 1 от 3Следваща