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

Резултати

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

Търсене: #curl

当前筛选 #curl清除筛选
infosecurity

@tg_infosec · Post #2939 · 14.02.2025 г., 16:34

📚 Everything curl. • Очень объемное руководство по работе с curl'ом, которое актуализируют еще с начала 2015 года и по сей день. Книга является бесплатной, а вклад в её развитие внесли десятки авторов: https://curl.haxx.se/book.html ➡️ Репозиторий: https://github.com/curl/everything-curl ➡️ Скачать книгу в PDF или ePUB. #curl

Hashtags

djangoproject

@djangoproject · Post #303 · 19.04.2017 г., 19:43

https://curl.haxx.se/libcurl/c/example.html These files are intended as examples only. In the interest of simplicity and clarity, they might not include proper error handling and might produce compiler warnings on some platforms. Real-world applications should pay more attention to these issues. #cURL

Hashtags

djangoproject

@djangoproject · Post #302 · 19.04.2017 г., 19:38

http://www.angryobjects.com/2011/10/15/http-with-python-pycurl-by-example/ A colleague of mine recently remarked something along the lines of “whenever I need to do HTTP client stuff in any language, I usually go look for #cURL bindings straight away”, and I’m starting to agree on that one. HTTP is hard to do right, and cURL has a track record of doing HTTP right. If you don’t know what cURL is, take a look at http://curl.haxx.se

Hashtags

Sliverkissの废弃文化研究所

@sliverkiss_blog · Post #213 · 23.11.2023 г., 10:57

▎Curlconverter Convert cURL commands into code Transpile curl commands into C#, ColdFusion, Clojure, Dart, Elixir, Go, HTTPie, Java, JavaScript, Kotlin, MATLAB, Objective-C, OCaml, PHP, PowerShell, Python, R, Ruby, Rust, Swift, Wget, Ansible, HAR, HTTP or JSON. 在线转换: 点击链接 项目地址: 点击链接 #convert#curl

DOFH - DevOps from hell

@dofh_ru · Post #3207 · 11.10.2023 г., 19:48

Curl 8.4.0: разработчик признался в допущенных ошибках и выпустил исправления ✖️ Новая версия curl устраняет две отдельные уязвимости: CVE-2023-38545 и CVE-2023-38546, которые затрагивают как libcurl, так и curl. ✖️ Первая уязвимость представляет из себя ошибку переполнения буфера кучи, которая может привести к повреждению данных и даже выполнению произвольного кода. Вторая уязвимость связана с инъекцией cookie и затрагивает только libcurl. ✖️ Даниэль Стенберг признал, что подобные ошибки в curl не существовали бы, если бы инструмент был написан на более безопасном языке программирования с большим объёмом памяти, а не на устаревшем языке C. #curl#безопасность#уязвимости@SecLabNews

infosecurity

@tg_infosec · Post #2801 · 24.12.2024 г., 08:30

👨‍💻 Mastering the curl command line. • Почти 4 часа обучения работе с curl. Напомню, что этот инструмент популярен в сфере автоматизации и скриптов благодаря широкому диапазону функций и поддерживаемых протоколов. • По ссылке ниже вы можете найти тайм коды, что позволит изучить материал в более удобном формате. ➡️https://youtu.be/V5vZWHP-RqU #curl#Курс#Видео#Eng

AIGC

@aigcrubbish · Post #116 · 31.12.2025 г., 03:07

Stenberg: No strcpy either curl 作者 Daniel Stenberg 在其博客中宣布,项目将禁止使用 strcpy() 函数。 主要原因是 strcpy() 在复制字符串时,既不指定目标缓冲区的大小,也不指定源字符串的长度,这可能导致缓冲区溢出等安全问题。 为了确保安全检查与复制操作不可分离,curl 项目引入了一个新的字符串复制替换函数。该函数需要四个参数:目标缓冲区、目标缓冲区大小、源缓冲区以及源字符串长度。只有在确认复制操作和字符串终止符都能安全放入目标缓冲区时,才会执行复制。 这一变更是 curl 项目持续强化代码安全、消除潜在风险努力的一部分。 原文链接:https://daniel.haxx.se/blog/2025/12/29/no-strcpy-either/ #网络安全#编程#C语言#curl #AIGC Read more

AIGC

@aigcrubbish · Post #66 · 29.08.2025 г., 16:21

[$] The challenge of maintaining curl 在2025年欧洲开源峰会上,curl 维护者 Daniel Stenberg 在仅有的15分钟演讲中,分享了项目维护面临的挑战。与其他开源项目类似,curl 的维护压力日益增加,问题似乎越来越严重。 原文链接:https://lwn.net/Articles/1034966/ #开源维护#curl#技术挑战 #AIGC Read more

AIGC

@aigcrubbish · Post #155 · 27.01.2026 г., 01:35

Stenberg: The end of the curl bug-bounty program curl 项目创始人 Daniel Stenberg 宣布,该项目将于 2026 年 1 月 31 日正式结束其自 2019 年 4 月开始的漏洞赏金计划。 他在博客中解释了做出这一决定的主要原因: 1. **处理低质量报告耗费巨大精力**:大量无意义的提交(尤其是 AI 生成的“垃圾”报告)在管理和证伪上消耗了团队大量时间和心理能量,却毫无贡献。 2. **部分报告者动机不良**:许多安全报告者以恶意态度提交报告,极力将普通问题扭曲为严重漏洞,却很少主动贡献代码修复或与团队长期合作改进 curl。 3. **不良趋势的结合**:AI 生成的垃圾报告、人类报告者质量下降、以及报告者更倾向于“找茬”而非真正帮助项目,这三种趋势共同促使了该决定。 Stenberg 强调,他仍然期待“最好、最受重视的安全报告者”在发现安全漏洞时继续通知项目,但官方赏金计划将终止。 原文链接:https://lwn.net/Articles/1055996/ #信息安全#开源项目#漏洞赏金#curl #AIGC Read more

djangoproject

@djangoproject · Post #425 · 28.08.2017 г., 03:37

#AI#Artificial_Intelligence #aiohttp #AngularJS #API #AWS #asyncio #audio #automated_testing #automation #atexit #BeeWare #button #client #concurrency #Coroutine #cron #curl #data_analysis #data_mining #data_processing #database #Deep_Learning #Debian #decorator #dict #dispatch #django #django_cms #dropdownbox #Docker #event #Firefox #form #Generator #GeoDjango #git #Google #GPU #Gym #learn #Image_processing #intelligence #input #IOT #lambda #learn #lists #machine_learning #Magenta #map #Metaprogramming #Micro_services #mind #monitoring #MongoDB #Mozilla #Multipart #multi_touch_apps #multiprocessing #Nodes #NoSQL #numeric_computation #numerical #NumPy #OAuth #object_serialization #OCR #overloading #package #parallel #pipeline #protocols #PostGIS #pyAudioAnalysis #pycon #Pyflakes #PyInstaller #PySide #PyTorch #pytest #python #Pyvideo_archives #Qt #React #Redis #random #request #REST #satellite #scrapy #scikit_learn #SciPy #searching #submit #selectbox #Selenium #serialization #server #socket #task #telegram #TensorFlow #test #text_boxes #text #tuples #unicode #Universe #Unix #urllib #upload #Web

djangoproject

@djangoproject · Post #513 · 30.11.2017 г., 22:00

#AI#Artificial_Intelligence #AJAX #aiohttp #Anaconda #AngularJS #API #Atom #AWS #asyncio (#Asynchronous) #audio #automated_testing #automation #atexit #BeeWare #Big_Data #bitcoin #blockchain #Bluemix #Brython #button #Celery #client #class #classmethod #concurrency #Coroutine #cron #CSS #curl #data_analysis #data_mining #data_processing #database #Deep_Learning#deep_learning #Debian #decorator #deploy #dict #dispatch #django #django_cms #Django_REST_Framework #dropdownbox #Docker #event #Firefox #Flask #form #functions #Generator #GeoDjango #git #Google #GPU #GUI #Gym #host #HTML #httplib #learn #Image_processing #intelligence #input #Instagram #IOT #iPython #Jupyter #lambda #learn #License #Linux #lists #machine_learning #Magenta #map #Matplotlib #Metaprogramming #Micro_services #Micropython #mind #monitoring #MongoDB #modules #Mozilla #Multipart #multi_touch_apps #multiprocessing #Nodes #NoSQL #numeric_computation #numerical #NumPy #network #neural_network #OAuth #object_serialization #OCR #overloading #package #parallel #pipeline #protocols #PostGIS #pyAudioAnalysis #pycon #Pyflakes #PyInstaller #PyPI #PyQt #PySide #PyTorch #pytest #python #Pyvideo_archives #Qt #Raspberry_Pi #React #Redis #random #request #Regular_Expressions (#re) #REST #RSS #satellite #scikit_learn #SciPy #scrapy #searching #selectbox #Selenium #serialization #server #sessions #single_responsibility_principle #socket #Spark #str #submit #task #telegram #template #TensorFlow #test #text_boxes #text #tuples #unicode #Universe #Unix #unit_test #urllib #upload #uWSGI #Web #WSGI