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

Резултати

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

Търсене: #remotely

当前筛选 #remotely清除筛选
Data Science Jobs

@datasciencejobs · Post #1878 · 18.01.2024 г., 13:01

#вакансия#remotely#abroad#удаленка#DataScientist Вакансия: Senior Data Scientist Локация: Рассматриваются кандидаты за пределами России и Белоруссии Занятость: Полная График работы: Гибкий Зарплата: $4000 – 4500 на руки Для связи: https://t.me/Tary_bird, [email protected] Описание: Ищем опытного Senior Data Scientist для участия в проекте крупного американского маркетингового агентства. Оформление в штат в Армении. Требуется владение английским не ниже уровня B2. Responsibilities: • Develop real-time prediction systems using geospatial machine learning algorithms. • Mine and extract usable data from valuable sources. • Advanced visualization of geo-temporal algorithms. • Use machine learning tools to select features, create and optimize classifiers. • Conduct preprocessing of structured and unstructured data. • Enhance systems using LLM AI models. • Improve data collection procedures for comprehensive analytic system development. Key Skills: • Programming: Knowledge of statistical programming languages like R, Python, and database query languages like SQL, Hive, Pig is desirable. Familiarity with Scala, Java, or C++ is an added advantage. • Statistics: Good applied statistical skills, including knowledge of statistical tests, distributions, regression, maximum likelihood estimators, etc. • Machine Learning: Good knowledge of machine learning methods like k-Nearest Neighbors, Naive Bayes, SVM, Decision Forests. • Strong Math Skills: Understanding the fundamentals of Multivariable Calculus and Linear Algebra is important. • Data Wrangling: Proficiency in handling imperfections in data. • Data Visualization: Experience with tools like Matplotlib, ggplot, d3.js., Tableau for visually encoding data. • Communication Skills: Ability to describe findings to both technical and non-technical audiences. • Software Engineering Background: Strong background in software engineering. • Hands-on Experience: With data science tools and a problem-solving aptitude. • Analytical Mind: Strong analytical skills and great business sense. • Degree: In Computer Science, Data Science, Mathematics, Statistics Preferred Additional Skills: • Experience with geospatial analysis and GIS. • Knowledge of H3 hierarchical geospatial indexing or other geospatial indexes. • Familiarity with open-source geographical datasets. • Experience or familiarity with advertising technology concepts. • Experience with artificial intelligence, especially with LLM and other generative technologies.

Translators in the medical field #remotely#worldwilde Albertek Center from The USA is hiring medical interpreters worldwide for #ukrainian, #vietnamese, #portuguese, #cantonese, and #cambodian languages. If you're passionate about bridging communication gaps in healthcare, we want to hear from you! Submit your CV: [email protected] Contact via Telegram: @EliseeRom =================== Be sure to indicate in your reply that you discovered the vacancy on LinguoHunter.

Translators (Asia) #remotely#Indonesian#Malay#Telugu#Urdu #Hinglish#Tamil#Bengali#Marathi We invite translators with languages to cooperate: #Indonesian#Malay#Telugu#Urdu #Hinglish#Tamil#Bengali#Marathi Experience in the field of translations using text editors is welcome. It is necessary to translate marketing texts from Russian or English. Write to: @Marina19931 Please do not disturb the translation agency! We don't cooperate. ============================ Разместить вакансию | LinguoHunter