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

Резултати

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

Търсене: #sciencefacts

当前筛选 #sciencefacts清除筛选

A study on men found that eating garlic made their body odor smell more pleasant, more attractive, and less intense. Researchers collected sweat samples and had others rate the smell. Note: The study tested sweat, not their breath.🤪 🧄👃🧪 [Read more] @googlefactss #ScienceFacts#DidYouKnow#HumanBody#Research If you have ideas or feedback contact us: @Googlefactss_Feedback_bot

The human digestive system is about 7–9 meters (23–30 feet) long. The small intestine measures about 3–7 meters (10–23 feet), and the large intestine is about 1.5 meters (5 feet) long. Food typically takes 24 to 72 hours to travel from the mouth to the toilet. This time can differ depending on what you eat, how much water you drink, and how active you are. 🧠📏⏱️ [Read more 1] [Read more 2] @googlefactss #HumanBody#DigestiveSystem#ScienceFacts#DidYouKnow

A brain freeze happens when something very cold touches the roof of the mouth or the back of the throat. This causes blood vessels in that area to quickly narrow and then widen again. This change activates a nerve that sends pain signals to the brain, which is why the pain is felt in the head. The sensation usually lasts only a few seconds to about a minute. 🧊🧠⚡ [Read more] @googlefactss #BrainFreeze#HumanBody#ScienceFacts#Health If you have ideas or feedback contact us: @Googlefactss_Feedback_bot

Babies are born with around 30,000 taste buds. Adults have about one-third of that number. This means babies can taste more flavors than grown-ups. As people get older, they lose many taste buds, which changes how they experience food. 👶🍎 [Source] @googlefactss#TasteBuds#Babies#ScienceFacts

Psychopaths, often called ‘evil,’ lack empathy and guilt. They were once seen as untreatable. New studies show therapy like CBT and computer training can reduce violence and help them feel empathy. Treatment is limited but promising. 🧠💡 [Read more] @googlefactss#Psychopathy#Therapy#MentalHealth#ScienceFacts

Women outperform men in recognizing all faces, with a particular advantage for female faces. 👩‍🦰👨‍🦱 They recognize both male and female faces better than men do. Men do not show this same bias toward their own gender. [New Link1] [New Link2] @googlefactss#Psychology#FaceRecognition#GenderDifferences#ScienceFacts

Ants don't have lungs. They breathe through tiny holes along the sides of their bodies called spiracles. These connect to a network of tubes (tracheae) that deliver oxygen directly to their tissues. [Read more] @googlefactss #Ants#Biology#Entomology#ScienceFacts

People who eat the mushroom Lanmaoa asiatica raw or undercooked have reported seeing tiny human-like figures moving around them. These are called lilliputian hallucinations. Reports from people across different cultures and backgrounds describe similar details, including small figures walking on floors and furniture. The effects can begin 12–24 hours after eating and may last 1–3 days. Some cases are serious and require hospital care. Don't try this yourself.. 🍄😵‍💫🧚‍♀🦄🍄‍🟫 [Read more 1] [Read more 2] [Read more 3] @googlefactss #Mushrooms#ScienceFacts#Hallucinations#Nature#DidYouKnow If you have ideas or feedback contact us: @Googlefactss_Feedback_bot

15 December 1970, Venera-7 became the first spacecraft to land on Venus and send data back to Earth. Despite problems, it transmitted temperature information for 23 minutes after landing. The mission showed that Venus has extreme heat and pressure. [Source] @googlefactss #Venera7🚀#Venus🌍#SpaceExploration#ScienceFacts

Serge Voronoff performed experiments transplanting testicle tissue from monkeys into men and boys to try to improve health and vitality. He also grafted testicle tissue onto female goats in his research. These practices were done in the early 1900s but later found to be ineffective and controversial. 🙈✂️⚽️⚽️ [Read more] @googlefactss #SergeVoronoff#MedicalHistory#Transplants#ScienceFacts

Pregnant women have one more organ than non pregnant women. The placenta is a temporary organ that grows in the uterus during pregnancy. It connects the mother and baby through the umbilical cord. It gives the baby oxygen and nutrients and removes waste like carbon dioxide. It also makes hormones that help the pregnancy continue and lets helpful antibodies pass to protect the baby. "Fun" fact: After birth, the placenta leaves the body. Some people keep it and even consume it.. 🤰👶🍽 [Read more] [Don't eat it] #placenta#pregnancy#humanbody#sciencefacts#biology@googlefactss

Isaac Asimov was born on January 2, 1920. He wrote the Three Laws of Robotics: 1. Robots can't harm humans or let them be harmed. 2. Robots must follow human orders unless it breaks the first law. 3. Robots must protect themselves unless it breaks the first or second law. 🤖📜 [Read more] @googlefactss #IsaacAsimov#Robotics#ThreeLaws#ScienceFacts

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