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

Резултати

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

Търсене: #datastructures

当前筛选 #datastructures清除筛选
Repositorio data science

@repo_science · Post #3438 · 14.07.2023 г., 19:11

#python#DataStructures#algorithms 🐍 Python Data Structures & Algorithms What you will get in this course: - Data Structures Lists Linked Lists Doubly Linked Lists Stacks & Queues Binary Trees Hash Tables Graphs - Algorithms - Sorting Bubble Sort Selection Sort Insertion Sort Merge Sort Quick Sort - Searching Breadth First Search Depth First Search 🔗Link ----- Main channel:@repo_science Coupons:@freecoupons_reposcience -----

Repositorio data science

@repo_science · Post #3348 · 25.06.2023 г., 17:31

#python#Algorithms#dataStructures 🐍 Hands-On Data Structures and Algorithms with Python: Store, manipulate, and access data effectively and boost the performance of your applications 🖇3rd Edition 📆2022 ✍️Dr. Basant Agarwal 🔗Link ----- Main channel: @repo_science Coupons: @freecoupons_reposcience -----

Repositorio data science

@repo_science · Post #3433 · 12.07.2023 г., 19:56

#DataStructures#Algorithms#Java 🛠 The Ultimate Data Structures & Algorithms Course What You'll Learn... This course is divided into three parts, each about 5 hours long so you can easily complete it. The first part is all about linear data structures and their algorithms: - Big O Notation - Arrays - Linked Lists - Stacks - Queues - Hash Tables The second part covers non-linear data structures and their algorithms: - Binary Trees - AVL Trees - Heaps - Tries - Graphs The third part explores: - Searching Algorithms - Sorting Algorithms - String Manipulation Algorithms 🗣Mosh Hamedani 🔗Link ----- Main channel:@repo_science Coupons:@freecoupons_reposcience -----

Repositorio data science

@repo_science · Post #3109 · 28.04.2023 г., 17:58

#datascientist#datascience#datasciencejobs#dataanalysis#data#dataanalyst#dataanalytics#dataanalystjobs#analytics#python#pythonprogramming#rprogramming#sql#excel#statistics#testing#softwaretesting#projects#projectmanagement#agile#computerscience#programming#webdevelopment#softwaredevelopment#roadmap#visualization#learningeveryday#learning#tutorials#learntocode#apache#powerbi#tableau#machinelearning#ml#ai#artficialintelligence#deeplearning#bigdata#bigdataanalytics#algorithms#mathematics#datastructures#kaggle#nlp#reinforcementlearning#sql#nosql#databases#mongodb ----- Canal principal:@repo_science Cupones: @freecoupons_reposcience -----