Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области.
Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий Object, к полям которого нужно было обращаться ["по_строковому_имени"]. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него.
"Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!"
Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее.
Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то.
С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше.
Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс.
В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков.
#dev
🌟 Greetings from Ashish Sharma! 🌟
🚀 Exciting News! Join us for an enlightening session with Ashish Sharma, a Solution Architect at AI Rudder and a Microsoft AI MVP, as he shares his expertise and insights into the transformative world of AI.
🎙 Session Title:
"The Evolution and Applications of Large Language Models: Advancements, Challenges, and Future Directions"
🔍 What You'll Learn:
✅ The evolution of Large Language Models (LLMs) from inception to state-of-the-art innovations, including the transformative Transformer architecture and GPT series.
✅ Understanding the challenges of hallucinations in LLMs and strategies to mitigate them.
✅ An introduction to Retrieval-Augmented Generation (RAG) and how it enhances model accuracy.
✅ Hands-on workshop: Practical implementation of RAG using open-source tools and Azure services.
✅ Insights into the future potential and groundbreaking applications of LLMs.
📅 Date: November 30, 2024
📍 Location: Al-Khorazmi School, Tashkent
👉 Register now: https://mdcuzbekistan.com/register
#MDCConf2024#LLM#Speaker
@mdcuzbekistan
Greetings from Andrey Andreev!
🚀 Ready to supercharge your coding productivity? Join us for an exciting session with Andrey Andreev, a Microsoft Azure Architect at Noventiq, as he dives into the transformative potential of AI in development.
🎙 Session Title:
"Boosting Developer Productivity with GitHub Copilot"
🔍 What You'll Learn:
✅ How GitHub Copilot can revolutionize your coding workflow.
✅ Practical benefits of integrating AI-powered assistance into your daily development tasks.
✅ Best practices for leveraging Copilot to enhance efficiency and tackle complex challenges.
✅ Real-world examples of how Copilot empowers developers to focus on what matters most: building great solutions.
📅 Date: November 30, 2024
📍 Location: Al-Khorazmi School, Tashkent
👉 Register now: https://mdcuzbekistan.com/register
#MDCConf2024#Copilot#Speaker
@mdcuzbekistan
Greetings from Umid Akhmedov!
🚀 Ready to supercharge your data skills? Join us for an insightful session with Umid Akhmedov, ex-Microsoft (Head of Data and AI CSA), the Chief Data Officer at Danske Commodities, as he shares strategies to thrive in the AI-driven era of data.
🎙 Session Title:
"How to Navigate the Data Skills in the Era of AI with Microsoft Learn"
🔍 What You'll Discover:
✅ How AI is transforming the data landscape and the skills you need to stay ahead.
✅ Practical tips for leveraging Microsoft Learn to build in-demand data and AI expertise.
✅ Insights into career pathways in data science, engineering, and AI-focused roles.
📅 Date: November 30, 2024
📍 Location: Al-Khorazmi School, Tashkent
👉 Register now: https://mdcuzbekistan.com/register
#MDCConf2024#Data#Speaker
@mdcuzbekistan
Greetings from Alexander Trofimenko!
🚀 Introducing Alexander Trofimenko, Senior Engineering Manager at EPAM, who will be delivering a session on "Engineering Leadership: Building Teams and Innovations" at the Microsoft Community Conference 2024.
🔍 What to Expect:
✅ Principles of effective engineering leadership in modern tech environments.
✅ Strategies for building and managing high-performing teams.
✅ How to foster innovation while meeting business objectives.
📅 Date: November 30, 2024
📍 Location: Al-Khorazmi School, Tashkent
👉 Register now: https://mdcuzbekistan.com/register
#MDCConf2024#EngineeringLeadership#Speaker
@mdcuzbekistan
Greetings from Erkin Mukhamedkulov!
🚀 Introducing Erkin Mukhamedkulov, Lead Software Engineer at EPAM, who will be delivering an insightful session on ".NET Aspire paradigm and highlights" at the Microsoft Community Conference 2024.
🔍 What to Expect:
✅ A comprehensive overview of the .NET ecosystem and its capabilities.
✅Insights into the latest tools, frameworks, and updates within the .NET platform.
✅Practical applications of .NET in building scalable, cross-platform solutions.
📅 Date: November 30, 2024
📍 Location: Al-Khorazmi School, Tashkent
👉 Register now: https://mdcuzbekistan.com/register
#MDCConf2024#dotnetAspire#Speaker
@mdcuzbekistan
Greetings from Kudratkhuja Musaev!
🚀 Exciting News! Get ready for an inspiring session with Kudratkhuja Musaev, Software Engineer at Microsoft.
🎙 Join us for their session:
"Journey to Microsoft: Opportunities and Insights"
Discover how to kickstart your career with Microsoft, explore the tools and resources available, and gain actionable insights from Kudratkhuja’s journey. Whether you're an aspiring developer or a seasoned professional, this session will empower you with strategies for success in the Microsoft ecosystem.
📅 Date: November 30, 2024
📍 Location: Al-Khorazmi School, Tashkent
👉 Want to join us? Register here: https://mdcuzbekistan.com/register
#MDCConf2024#JourneyToMicrosoft#Speaker
@mdcuzbekistan
🎙 Call for Speakers: Microsoft Community Conf 2024 Uzbekistan
Are you passionate about technology and eager to share your expertise with a vibrant community of developers and tech enthusiasts? The Microsoft Developers Community in Uzbekistan is excited to announce a Call for Speakers for our upcoming conference on November 30, 2024!
🌟 We are looking for speakers who can:
Inspire with insightful talks on Microsoft technologies, AI/ML, software development, and emerging tech trends
Lead engaging workshops or hands-on sessions
Share real-world experiences and case studies
Discuss innovative solutions and industry best practices
📅 Event Date: November 30, 2024
👉 Apply Now: https://forms.office.com/r/0qrCmCiG26?origin=lprLink
Join us and inspire the next wave of tech talent in Uzbekistan!
#mdcconf2024#mdcuzbekistan#speakers#microsoft
@mdcuzbekistan
Greetings from Vlad Ten!
🚀 Introducing Vlad Ten, Software Engineer and Ex-Microsoft professional, who will be delivering a session on "Efficient Caching for Developers: Understanding and Implementing LRU" at the Microsoft Community Conference 2024.
🔍 What to Expect:
✅ A deep dive into Least Recently Used (LRU) caching and its importance for optimizing application performance.
✅ Practical guidance on implementing LRU caching in real-world scenarios.
✅ Best practices for managing caching effectively to improve efficiency and scalability.
📅 Date: November 30, 2024
📍 Location: Al-Khorazmi School, Tashkent
👉 Register now: https://mdcuzbekistan.com/register
#MDCConf2024#CachingStrategies#SoftwareEngineering#Speaker
@mdcuzbekistan
Microsoft Community Conference 2024 | Uzbekistan
Join us for a premier gathering of the Microsoft Developers Community in Uzbekistan! The annual Microsoft Community Conference is back and promises an unparalleled experience of innovation and technology. Mark your calendar for November 30, 2024, and get ready to immerse yourself in the latest advancements and ideas shaping the tech industry.
🎉 Highlights:
• Inspiring Keynote Presentations: Hear from leading tech innovators and industry experts.
• Interactive Workshops: Explore hands-on sessions with the latest Microsoft tools and technologies.
• Engaging Panel Discussions: Dive into trends and best practices shaping today’s tech landscape.
• Networking Opportunities: Connect with fellow developers, tech professionals, and enthusiasts.
📅 Date: November 30, 2024
📍 Location: Tashkent, Uzbekistan
Don’t miss out on this exciting opportunity to learn, network, and grow within a vibrant community. Whether you're a developer, tech professional, student, or simply passionate about technology, this is an event you won’t want to miss!
🔗 Register Now: https://mdcuzbekistan.com/register
Stay tuned for more updates and join us in shaping the future of technology in Uzbekistan!
#MDCConf2024#MicrosoftDevelopersCommunity#UzbekistanTech#TechConference#CommunityEvent
@mdcuzbekistan
Microsoft Community Conf 2024 was successfully organized
As you know, the "Microsoft Community Conf 2024" developer conference was organized in Tashkent on November 30. Local and international speakers who visited the conference gave lectures on AI, Cloud, Data, Engineering, Leaderships. We thank them on behalf of our team and community.
In particular, we would like to express our gratitude to our sponsors (Digital Generation Uzbekistan, Uzbekistan Creative Association, Noventiq), Community Partners (Microsoft, JetBrains, DiHunter, The Tech, Startup Chayxana, C-Space), volunteers and the MDC team who helped to hold the conference.
Sincerely, MDC Uzbekistan team
#MDCUzbekistan#MDCConf2024#Microsoft#TechEvent#MicrosoftCommunity
@mdcuzbekistan
Microsoft Community Conference 2024 | Uzbekistan
Join us for a premier gathering of the Microsoft Developers Community in Uzbekistan! The annual Microsoft Community Conference is back and promises an unparalleled experience of innovation and technology. Mark your calendar for November 30, 2024, and get ready to immerse yourself in the latest advancements and ideas shaping the tech industry.
🎉 Highlights:
• Inspiring Keynote Presentations: Hear from leading tech innovators and industry experts.
• Interactive Workshops: Explore hands-on sessions with the latest Microsoft tools and technologies.
• Engaging Panel Discussions: Dive into trends and best practices shaping today’s tech landscape.
• Networking Opportunities: Connect with fellow developers, tech professionals, and enthusiasts.
📅 Date: November 30, 2024
📍 Location: Tashkent, Uzbekistan
Don’t miss out on this exciting opportunity to learn, network, and grow within a vibrant community. Whether you're a developer, tech professional, student, or simply passionate about technology, this is an event you won’t want to miss!
🔗 Register Now: https://mdcuzbekistan.com/register
Stay tuned for more updates and join us in shaping the future of technology in Uzbekistan!
#MDCConf2024#MicrosoftDevelopersCommunity#UzbekistanTech#TechConference#CommunityEvent
@mdcuzbekistan