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

Търсене: #bagram

当前筛选 #bagram清除筛选

✨️Ambassador Albert P. Khorev's Interview with “Mehran TV” Full interview available in Urdu Key points: #BilateralTrade 🔸️Over the past two years, the annual trade turnover between #Russia and #Pakistan has amounted to approximately $1 billion USD. Our governments understand that this figure does not reflect our countries' existing potential, and they are making efforts to deepen bilateral cooperation. One effective mechanism in this regard is the Intergovernmental Commission on Trade, Economic, Scientific, and Technical Cooperation, which will hold its 10th milestone meeting in November 2025 in Islamabad; 🔸️There is potential for increased fuel, petroleum products, and grain supplies from Russia to Pakistan, as well as for increased imports of Pakistani textiles, leather, and agricultural products to Russia; #JointProjects 🔸️We are considering a number of infrastructure projects, including the modernization or construction of a new Karachi Steel Mill and railway tracks, as well as the supply of Russian pharmaceutical products, with the option of joint production; 🔸️We look forward to implementing new projects in the energy and transportation sectors. Given the recent establishment of diplomatic relations between Pakistan and Armenia, we believe that a free trade agreement between Pakistan and the #EAEU is possible in the future; 🔸️The successful modernization of the Karachi Steel Mill will pave the way for more productive cooperation; #TradeInNationalCurrencies 🔸️Most of Russia's export operations with friendly countries, including #SCO member states, are conducted in national currencies. The US dollar is slowly but surely losing ground. The process of diversifying payment instruments is succeeding; #SituationInTheRegion 🔸️Russia respects the right of regional countries, including Pakistan, to choose their own foreign policy partners independently. South Asian countries' engagement with the West is an internal matter. However, we consider it inappropriate if such engagement is directed against any state or group of states; 🔸️We have noted the Americans' and their NATO allies' active efforts to return to #Afghanistan after their infamous retreat in 2021. Donald Trump's statements about the U.S.'s desire to retake control of the #Bagram Air Base and his demands that India stop purchasing Russian oil are unacceptable. They represent yet another manifestation of Western neocolonialism; 🔸️The recent SCO summit in China demonstrated the declining influence of extra-regional forces. There is a growing demand for Russian President Vladimir Putin's initiative to establish a Eurasian security system based on the principle of "regional solutions to regional problems;" #MoscowFormat 🔸️The Moscow Format Consultations bring together all of Afghanistan's neighboring countries, including Russia and Pakistan. This regional mechanism has proven its effectiveness. All its members agree that the return of U.S. and NATO military infrastructure to Afghanistan is unacceptable; #Kashmir 🔸️Pakistan and India inherited the Kashmir issue from their British colonial past. We believe that Islamabad and New Delhi should resolve their differences through political and diplomatic means. At the same time, if it receives appropriate signals from both sides, Russia is ready to contribute to improving relations between the two countries and make the necessary efforts in international forums, including the #UN. #RussiaPakistan