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

Резултати

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

Търсене: #apis

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

@repo_science · Post #3160 · 10.05.2023 г., 21:54

#Python#Flask#APIs 🐍 REST APIs with Flask and Python in 2023 Build professional REST APIs with Python, Flask, Docker, Flask-Smorest, and Flask-SQLAlchemy 🗣️ Jose Salvatierra, Teclado by Jose Salvatierra 🌟 4.6 - 20097 votes 🔗Link ----- Main channel: @repo_science Coupons: @freecoupons_reposcience -----

djangoproject

@djangoproject · Post #437 · 11.09.2017 г., 19:13

https://httpie.org/ #HTTPie consists of a single http command designed for painless debugging and interaction with HTTP #servers, #RESTful#APIs, and web services: Sensible defaults Expressive and intuitive command syntax Colorized and formatted terminal output Built-in JSON support Persistent sessions Forms and file uploads HTTPS, proxies, and authentication support Support for arbitrary request data and headers Wget-like downloads Extensions Linux, Mac OSX, and Windows support And more…

djangoproject

@djangoproject · Post #264 · 18.02.2017 г., 06:23

https://blog.miguelgrinberg.com/post/designing-a-restful-api-with-python-and-flask In recent years #REST (REpresentational State Transfer) has emerged as the standard architectural design for #web services and web #APIs. In this article I'm going to show you how easy it is to create a RESTful web service using Python and the Flask microframework. What is REST? The characteristics of a REST system are defined by six design rules: Client-Server: There should be a separation between the #server that offers a service, and the #client that consumes it. Stateless: Each request from a client must contain all the information required by the server to carry out the #request. In other words, the server cannot store information provided by the client in one request and use it in another request. Cacheable: The server must indicate to the client if requests can be cached or not. Layered System: Communication between a client and a server should be standardized in such a way that allows intermediaries to respond to requests instead of the end server, without the client having to do anything different. Uniform Interface: The method of communication between a client and a server must be uniform. Code on demand: Servers can provide executable code or scripts for clients to execute in their context. This constraint is the only one that is optional.

djangoproject

@djangoproject · Post #118 · 08.08.2016 г., 11:44

https://docs.python.org/3/library/multiprocessing.html multiprocessing is a package that supports spawning processes using an API similar to the threading module. The multiprocessing package offers both local and remote concurrency, effectively side-stepping the Global Interpreter Lock by using subprocesses instead of threads. Due to this, the multiprocessing module allows the programmer to fully leverage multiple processors on a given machine. It runs on both Unix and Windows. The #multiprocessing module also introduces #APIs which do not have analogs in the #threading#module. A prime example of this is the Pool object which offers a convenient means of parallelizing the execution of a function across multiple input values, distributing the input data across processes (data #parallelism). The following example demonstrates the common practice of defining such functions in a module so that child processes can successfully import that module. This basic example of data parallelism using Pool,

djangoproject

@djangoproject · Post #589 · 29.03.2018 г., 06:38

http://books.agiliq.com/projects/django-api-polls-tutorial/en/latest/ Building #APIs with #Django and #Django_Rest_Framework(#DRF) Introductions Setup, Models and Admin A simple API with pure Django #Serializing and Deserializing Data Views and Generic Views More views and viewsets #Access_Control #Testing and Continuous Integeration Testing and Using API with Postman Documenting APIs (with Swagger and more)

Crypto M - Crypto News

@CryptoM · Post #64595 · 09.04.2026 г., 09:46

🚀 Gobi Partners Invests in Transak to Expand Asian Market Presence Gobi Partners has announced its investment in Transak. According to ChainCatcher, Transak, established in 2019, offers financial institutions a single API for seamless fiat and digital asset exchanges, handling KYC, AML, risk monitoring, and local payment integration. The investment aims to support Transak's expansion into the Asian market. Transak has already established its Asia-Pacific headquarters in Hong Kong and plans to enhance integration with payment networks and banking partners in the ASEAN region. #GobiPartners#Transak#Investment#AsiaMarketExpansion#Fintech#DigitalAssets#KYC#AML#RiskMonitoring#APIs#PaymentIntegration#ASEAN#HongKong#FinancialInstitutions