TGTGInsightтелеграм анализLIVE / telegram public index
← Такты, стеки, два колеса

TGINSIGHT SIMILAR POSTS

Намери подобно съдържание

Изходен канал @clockstackwheels · Post #247 · 11.03

Попробовали на работе предметно-ориентированное проектирование (Domain Driven Design). Это такой способ построения архитектуры, когда ты (чаще всего с помощью системы типов и ООП) описываешь физическую суть вещей, которые представлены в твоей программе. Например, если в программе есть объект "Книга", то её нужно снабдить свойствами, которые бывают у книг в реальности: число страниц, автор, язык, тип обложки и т.д. При этом данные свойства должны быть такими, чтобы присвоить им нереалистичные значения было нельзя. Допустим, число страниц не может быть отрицательным (и скорее всего в реальном мире не может быть нулём). При попытке установить отрицательное число страниц программа должна выбросить исключение. А совсем в идеальном случае -- не дать этого сделать программисту на уровне статического анализа кода. Описав все свойства книги, вы снабжаете её операциями, которые над ней можно сделать. Например, из книги можно вырвать страницу, и при этом число страниц уменьшается. Нет такого случая, когда можно вырвать страницу без изменения числа страниц. Вы строго программируете эту зависимость, делаете у книги метод "Вырвать страницу", а он уже уменьшает число. Кстати, свойство "Число страниц" при этом нельзя переназначить в уже созданной книге. Можно только создать книгу, передав в её конструктор (так называется в программировании функция создания объектов) заданное число страниц. Но поменять число страниц можно только специальными методами "Вырвать страницу" и "Вклеить страницу". С помощью этого подхода вы гарантируете, что ваши объекты всегда находятся в валидном состоянии -- то есть таком, которое возможно в реальной жизни с объектом, представленным программой. Плюсы подхода очевидны: меньше число ошибок. Код описывает сам себя, и программист, если не лезет внутрь объекта "Книга", вообще не сможет сделать с книгой ничего недопустимого. Минусы, думаю, тоже понятны: изначально проектировать сложнее, нужно учесть много нюансов, писать тесты. Время разработки изрядно растёт. Изменение требований даётся дороже: например, если каким-то образом в ваш книжный магазин поступят книги со страницами из кевлара, которые невозможно вырвать :) Но первый проект с этим подходом мы сдали хорошо, без багов. Лучше, чем многие предыдущие. #dev

Hashtags

Резултати

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

Търсене: #class

当前筛选 #class清除筛选
djangoproject

@djangoproject · Post #86 · 11.07.2016 г., 11:52

https://docs.python.org/3/library/functions.html#classmethod classmethod(function) Return a class method for function. A #class method receives the class as implicit first argument, just like an instance method receives the instance. To declare a class method, use this idiom: class C: @classmethod def f(cls, arg1, arg2, ...): ... The @classmethod form is a function decorator – see the description of function definitions in Function definitions for details. It can be called either on the class (such as C.f()) or on an instance (such as C().f()). The instance is ignored except for its class. If a class method is called for a derived class, the derived class object is passed as the implied first argument. Class methods are different than C++ or Java static methods. If you want those, see staticmethod() in this section. For more information on class methods, consult the documentation on the standard type hierarchy in The standard type hierarchy.

Hashtags

🧠"Zamonaviy dizayn" kursida biznes savodxonligi va tadbirkorlik ko‘nikmalari 🏛 Biznes va tadbirkorlik oliy maktabi hamda Xalqaro inklyuziv hab hamkorligida “Zamonaviy dizayn” kursiga “Biznes savodxonligi” fani qo‘shimcha fakultativ dars sifatida kiritildi. ➕ Dasturda o‘quvchilar nafaqat ijodiy, balki tadbirkorlik va biznes ko‘nikmalarini ham o‘rganadilar. Ular biznes turlari, tashkiliy-huquqiy asoslar, soliq imtiyozlari, xarajatlarni tahlil qilish, tannarxni hisoblash, narxlarni shakllantirish va foydani baholash kabi muhim ko‘nikmalarni egallaydilar. Bu jarayonda Oliy biznes maktab professori D. Rasulova va malakali mutaxassis B. Ishmuxamedov kabi tajribali o‘qituvchilar o‘quvchilarga bilim va tajribalar ulashdilar. #GSBE#GraduateSchool#Class#Academic#Study 🔝Web-site |🔝Facebook | 🔝Instagram | 🔝Youtube

djangoproject

@djangoproject · Post #550 · 15.01.2018 г., 07:05

http://www.wikipython.com/other-concepts/anatomy-of-a-class/ It seems obvious, but note that you must define a class before you use it. When you create a #class, it establishes its own namespace and all its own local variables (except global definitions) exist only inside that #namespace. They do not interact with other variables of the same name outside it. This leads us to one very important “feature” of classes that you need to know. If you use the same word to designate some specific value both inside and outside the class blueprint, the instance value will take precedence when you try to use that value. #learn

djangoproject

@djangoproject · Post #451 · 27.09.2017 г., 19:33

https://en.wikipedia.org/wiki/Single_responsibility_principle The #single_responsibility_principle is a computer programming principle that states that every #module or #class should have responsibility over a single part of the functionality provided by the software, and that responsibility should be entirely encapsulated by the class. All its services should be narrowly aligned with that responsibility. Robert C. Martin expresses the principle as, "A class should have only one reason to change."

djangoproject

@djangoproject · Post #549 · 14.01.2018 г., 22:32

https://julien.danjou.info/blog/2013/guide-python-static-class-abstract-methods Mixing #static, #class and #abstract methods When building classes and inheritances, the time will come where you will have to mix all these methods decorators. So here's some tips about it. Keep in mind that declaring a method as being abstract, doesn't freeze the prototype of that method. That means that it must be implemented, but it can be implemented with any argument list.

科技&趣闻&杂记

@kejiqu · Post #4130 · 02.02.2026 г., 14:30

中国数十年来沿用的“天才班”培养体系正悄然助力其对美国的 AI 挑战 中国通过数十年来沿用的“天才班”培养体系,正在积极提升其在 AI 领域的竞争力。该体系每年选拔约 100,000 名青少年,提供大学水平的 STEM 教育。毕业生包括字节跳动、淘宝、拼多多、美团、寒武纪和 DeepSeek 等公司的关键人物。DeepSeek 在发布 R1 模型时,其 100 多人的研究团队几乎全部由“天才班”毕业生组成,成本远低于国际竞争对手。中国每年培养约 500 万 STEM 专业毕业生,远高于美国的 50 万。2025年,中国在国际科学奥林匹克竞赛中获得 22 枚金牌。Slashdot 🏷#China#AI#Genius#Class#DeepSeek 📢频道👥群组📝投稿

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