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

Резултати

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

Търсене: #trending

当前筛选 #trending清除筛选
TODAY

@todayonlinesg · Post #19412 · 30.09.2024 г., 11:23

#trending: Teenager who has autism waits an hour at Jurong East MRT Station with no train service, mum goes to his aid "The problem was that he didn’t know what his next step should be. At the same time, he may have been hoping that the train would arrive later." Ms Lydiawati Ismail said of her son who has autism. 🚇https://tdy.sg/3NajJLe @todayonlinesg

Hashtags

TODAY

@todayonlinesg · Post #19346 · 16.09.2024 г., 13:57

#trending: Father-daughter dance at competition goes viral, viewers say it made them cry or think of their own dads They won a “special mention” medal and they were also the oldest and youngest participants in the open category, Mr Jay Sng said. 🤸‍♂️🧑‍🧒https://tdy.sg/3XkEgla @todayonlinesg

Hashtags

TODAY

@todayonlinesg · Post #19315 · 12.09.2024 г., 09:30

#trending: S'pore woman's biggest culture shock living in Sweden? Many couples skip marriage even after kids Ms Wynnette Yip said that she has been in a relationship with her Swedish partner for eight years and often faces questions from friends and family in Singapore on whether her other half was ever going to propose to her or was simply "wasting (her) time". 🇸🇪https://tdy.sg/3ZpFcHx @todayonlinesg

Hashtags

TODAY

@todayonlinesg · Post #19299 · 10.09.2024 г., 09:04

#trending: 'Full-on racial harmony' — video of Chinese S'porean youths loving Tamil movie goes viral Many netizens found it refreshing and heartwarming to see Chinese youths so thoroughly enjoying a film of a different language and culture, with users calling their reactions "cute" and "awesome". 🎬https://tdy.sg/3AQNKwP @todayonlinesg

Hashtags

TODAY

@todayonlinesg · Post #19292 · 09.09.2024 г., 10:54

#trending: 'Completely drained' — British expat's tale of long hours in China's tech sector goes viral Many social media users in China were amused to see a foreigner grappling with the demanding work culture in their country. 🇨🇳https://tdy.sg/4egs2Ry @todayonlinesg

Hashtags

TODAY

@todayonlinesg · Post #19272 · 06.09.2024 г., 12:24

#trending: S'pore non-profit that staged TikTok video of man harassing woman sparks debate on when to step in to help others TikTok users have lauded real-life passers-by who chose to intervene and help the woman, not realising that it was a staged incident. They said that it is important to look out for each other. ➡️https://tdy.sg/3Xcbx1X @todayonlinesg

Hashtags

TODAY

@todayonlinesg · Post #19147 · 20.08.2024 г., 10:37

#trending: SIA flight attendant praised as 'angel' for helping passenger clean jeans using own stain remover pen In a "friendly chat" with a cabin crew member she referred to as Aiden, Ms Paige Parker asked him "almost jokingly" if SIA had any stain removers, expecting the answer would be no. ✈️https://tdy.sg/3AxJC4T @todayonlinesg

Hashtags

TODAY

@todayonlinesg · Post #19134 · 19.08.2024 г., 09:31

#trending: Is Amsterdam safer? S'porean woman's reasons for moving to the Netherlands spark debate online Aside from her safety concerns, the weather was a major factor, as she found Singapore too hot and humid. "I can't be sweating perpetually," she wrote. ➡️https://tdy.sg/3Ti9EQf @todayonlinesg

Hashtags

TODAY

@todayonlinesg · Post #19101 · 15.08.2024 г., 11:27

#trending: Japanese ramen shop ranks Singaporeans’ spice tolerance as ‘mid’; netizens agree Out of 10 levels, Singapore and Malaysia are ranked in the middle while Indonesia is at the top with the highest spice tolerance. ➡️https://tdy.sg/4fNFrBQ

Hashtags

TODAY

@todayonlinesg · Post #19067 · 13.08.2024 г., 11:03

#trending: Influencer's praise of NDP crowd control leaves S'poreans grateful for reminder 'we are so blessed' Ms Francesca Tanmizi, an Indonesian who lives in Singapore, told her 316,000 TikTok followers she was wowed by the efficiency of NDP crowd control, the speedy cleanup of rainwater and the friendliness of the personnel involved. 🇸🇬https://tdy.sg/3WByhIk @todayonlinesg

Hashtags

TODAY

@todayonlinesg · Post #19057 · 12.08.2024 г., 11:40

#trending: New S'pore teen character in Marvel comic book sounds like burnt-out student, say netizens A Redditor teased that the character's powers could be “the result of years of training by her kiasu Tiger mum under the Singapore academic system” rather than an actual superpower. 👩‍🎓https://tdy.sg/4dFadep @todayonlinesg

Hashtags

TODAY

@todayonlinesg · Post #18965 · 01.08.2024 г., 11:40

#trending: Netizens praise Jetstar Asia's 20th anniversary song for celebrating uniquely Singaporean traits One viewer wrote: "Please consider (Mr Van Der Ven) for NDP theme song. He writes his own music and can supply 20 different types of aunties." ➡️https://tdy.sg/3WqSn85

Hashtags

123•••10•••20•••303132
ПредишнаСтр. 1 от 32Следваща