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

Резултати

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

Търсене: #factfriday

当前筛选 #factfriday清除筛选

#FactFriday Feeling thirsty is a late indicator of dehydration. To support optimal body function, it is important to drink water consistently throughout the day, even before thirst occurs. Staying adequately hydrated is essential for overall health.✅ #FactFriday#NCDCNigeria

🧼#FactFriday Did you know? With proper hygiene, communicable diseases are preventable! Washing your hands, keeping your environment clean, and practicing good personal hygiene can help stop the spread of infections. Stay informed. Stay safe. #TakeResponsibility

What you eat matters more than you think. ✅Good nutrition fuels your body, strengthens your immune system, and helps you resist infections like flu, cholera, and other communicable diseases. Healthy choices today, stronger immunity tomorrow.💪 #FactFriday#HealthyLiving#NCDCNigeria

#FactFriday Contaminated water can spread illnesses which affects millions of people every year. Clean water and proper hygiene practices can greatly reduce health risks and improve wellbeing. Protect yourself and your loved ones by: ✔️ Drinking only safe and clean water ✔️ Practicing good hand hygiene: Wash hands with soap under clean running water ✔️ Keeping your environment clean and free from waste ✔️ Following public health guidelines on sanitation ✨Your small daily actions can prevent big health problems. Drink Clean, Stay Safe, Stay Healthy! #FactFriday#HealthyLiving#NCDCNigeria

#FactFriday: _Powering your mind, even at rest! ✨_ 🧠 Did you know your brain uses about 20% of your body’s energy even when you’re resting? This energy keeps your brain cells active, helps process information, regulates your body systems, and keeps you alert. 💡 Take care of your brain with: 🍎 Proper nutrition 😴 Enough sleep 🧘 Regular self-care Stay healthy, stay sharp! #FactFriday#HealthyLiving#NCDCNigeria

#FactFriday Clean hands is one of the simplest and most effective ways to stay healthy and protect those around you from diseases👌 Washing your hands with soap under clean running water for just 20 seconds can reduce your risk of infection by up to 50%? 🙌🏽 Make handwashing a daily habit ✅️ #FactFriday#HandHygiene#HealthyLiving#NCDCNigeria

#FactFriday Every year, mosquitoes are responsible for over 700,000 deaths by spreading diseases like malaria, dengue, and yellow fever. 💡 Protect yourself: ✅ Sleep under insecticide-treated nets ✅ Eliminate stagnant water around your home ✅ Use mosquito repellents Small insect, Big threat. Take action today!📌 #FactFriday#MosquitoFacts#NCDCNigeria

#FactFriday Feeling better doesn’t mean the infection is gone. Stopping antibiotics without proper guidance can fuel Antimicrobial Resistance (AMR) making infections harder to treat. ✔️Always follow your healthcare provider’s advice. ✔️ Only use antibiotics when prescribed ✔️ Always complete your dose ✔️ Take antibiotics exactly as prescribed ✔️ Don’t stop, skip, or share medications. ✅Your actions today protect your health tomorrow.! #FactFriday#StopAMR#PublicHealth#NCDCNigeria

#FactFriday: Good Food, Good You! 🥬🥦Adding more fruits and vegetables to your meals can be a game changer for your health. They are filled with Vitamins, Minerals and fiber that helps boost your immunity, Protect your heart and lower the risk of chronic diseases. Healthy eating starts with fruits and Vegetables✅️ #FactFriday#HealthyLiving#HealthyHabits#NCDCNigeria.

#FactFriday 💡 Did you know? Not all bacteria are harmful. In fact, many are beneficial — helping your body digest food, absorb nutrients, and maintain a healthy immune system. Understanding the role of good bacteria is key to making informed decisions about hygiene, antibiotics, and overall health. #FactFriday#NCDCNigeria#TakeResponsibility#PublicHealthFacts

#FactFriday 💡With proper hygiene, safe practices, and protective measures, dangerous communicable diseases like Ebola can be prevented or controlled? 👐 Staying informed and taking responsibility keeps you and your community safe. ✔️ Practice good hygiene ✔️ Follow health guidelines ✔️ Stay alert and protect others #TakeResponsibility#StaySafe#NCDCGov

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