Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

asp.net: полезные вещи, часть вторая

.NET
Атрибуты полезная вещь, которая является одним из основных механизмов .net framework. В этой статье я предлагаю рассмотреть один простой пример использования атрибутов. Данная статья продолжает предыдущую статью и использует определенные там методы расширения.

Иногда существует потребность разом проверить некоторую валидность состояния объекта. К примеру, может потребоваться быть уверенным, что все необходимые поля и свойства объекта инициализированы и не равны null. Для решения такой задачи применимы атрибуты.
Читать дальше →
Всего голосов 11: ↑7 и ↓4 +3
Просмотры6.3K
Комментарии 33

asp.net: полезные вещи, часть третья

.NET
Я уже привел пример использования атрибутов в C# и конкретно в asp.net в предыдущей статье. Там был объявлен простейший атрибут и выполнялась некоторая логика по его проверке. В этот раз я хотел бы показать другой полезный атрибут, который немного сложнее предыдущего, но гораздо полезнее.
Читать дальше →
Всего голосов 11: ↑7 и ↓4 +3
Просмотры4.6K
Комментарии 22

Имитация свойств для элементов перечислений (Enumerations) в .NET Framework 3.5

Чулан
Уверен, многие периодически сталкивались с необходимостью указания каких-либо простых свойств для элементов перечислений в C#.

Существуют различные способы решить эту задачу, самым популярным из которых, на мой взгляд, является написание вспомогательного статического метода, принимающего перечисление в качестве параметра и возвращающего результат нужного типа.

Я же хочу предложить вам несколько иной, более универсальный и изящный способ, основанный на атрибутах, методах расширения и рефлексии.
Читать дальше →
Всего голосов 15: ↑9 и ↓6 +3
Просмотры315
Комментарии 22

Поддержка рефакторинга атрибутов в Delphi 2010

Delphi
Перевод
РефакторингЯ упоминал ранее, что в этом выпуске большая часть работы была отведена для дополнительных функциональных возможностей и их улучшения. В результате, IDE продолжает меня приятно удивлять. Я пробую делать что-то, даже не задумываясь о том, а будет ли это работать вообще, и нахожу что оно не просто работает, а работает даже лучше, чем я мог себе представить.

Один из примеров касается поддержки рефакторинга атрибутов.
Читать дальше →
Всего голосов 20: ↑11 и ↓9 +2
Просмотры1.4K
Комментарии 17

Кратко о RTTI и атрибутах в Delphi 2010

Delphi
Перевод
RTTI (Runtime Type Information) было тщательно переработано в Delphi 2010.
RTTI является центральным элементом, на котором написано Delphi IDE, он существует со времен первого выпуска, однако я слышал от некоторых людей на протяжении многих лет, что они попытались использовать RTTI и нашли это слишком сложным и замысловатым, особенно по сравнению с Reflection API в Java и .NET. Вот это настоящий позор, поскольку возможность писать код для запроса подробной информации о других объектах, не зная заранее их типа, это действительно мощная возможность.
Читать дальше →
Всего голосов 48: ↑28 и ↓20 +8
Просмотры12.1K
Комментарии 378

Подробнее об атрибутах в Delphi 2010. Пример — проверка данных

Delphi
Перевод
МышаВ моей предыдущей статье Кратко об атрибутах в Delphi 2010, я показал основы связанные с созданием, применением и опросом атрибутов. Однако, я не привел пример, для чего вы могли бы их использовать.

Вероятно, наиболее распространенным является пример для персистентности, и, действительно, кто-то опубликовал подобный пример на сайте Wings of Wind. Я хотел бы показать другое их применение — для проверки данных (Validation).
Читать дальше →
Всего голосов 16: ↑10 и ↓6 +4
Просмотры5.3K
Комментарии 43

Спецификация HTML5 допускает практически любое значение атрибута id — пользуйтесь с умом

Разработка веб-сайтов
Перевод
Как я упоминал какое-то время назад в статье «Создание правильных id», HTML 4.01 достаточно ограничен с точки зрения допустимых значений атрибута id:
Атрибуты ID и NAME должны начинаться с буквы ([A-Za-z]), за которыми могут следовать любое количество букв, цифер ([0-9]), дефисов ("-"), подчеркиваний ("_"), двоеточий (":") и точек (".").

HTML5 допускает использование почти любого значения атрибута id:
Спецификация HTML5 3.2.3.1 о атрибуте id:
Значение должно быть уникально относительно всех остальных значений ID в рамках дерева элементов, содержащего данный и должно содержать как минимум один символ. Значение не должно содержать пробелов.
Как минимум один символ, без пробелов.

Это позволяет использовать в качестве значений атрибута id специальные символы. А еще это дает нам массу возможностей поставить себя в идиотское положение, так как мы можем использовать значения, которые вызовут проблемы как с CSS таки и с JavaScript, если вы не будете осторожны.
Читать дальше →
Всего голосов 58: ↑50 и ↓8 +42
Просмотры7.8K
Комментарии 72

Пользовательские атрибуты в Python

Python
Из песочницы
Вы когда нибудь задумывались о том, что происходит, когда вы ставите точку в python? Что скрывает за собой символ str(“\u002E”)? Какие тайны он хранит? Если без мистики, вы знаете как происходит поиск и установка значений пользовательских атрибутов в python? Хотели бы узнать? Тогда… добро пожаловать!
Читать дальше →
Всего голосов 101: ↑96 и ↓5 +91
Просмотры136.3K
Комментарии 20

Применение атрибутов в C#

Программирование.NET
Большинство источников по использованию атрибутов [1, 2] рассказывают, что они есть, «обеспечивают эффективный способ связывания метаданных или декларативной информации с кодом», могут быть получены при помощи отражений [3]. В рамках данной статьи, я попробую показать прикладной пример применения атрибутов: проверка заполненности обязательных полей на форме добавления/редактирования нового бизнес-объекта.
Перед тем, как вы нажмете подробнее, несколько предупреждений:
1. Если вы уже работали с атрибутами, то, возможно, вам будет неинтересно.
2. При написании демонстрационного примера были допущены существенные упрощения (например, отказ от MVVM), с целью облегчения восприятия материала про атрибуты.
Читать дальше →
Всего голосов 23: ↑19 и ↓4 +15
Просмотры91.7K
Комментарии 28

Очистка HTML-тегов от атрибутов

PHPHTML
Из песочницы
WYSIWYG — это неотъемлемая чаcть сайтов с редактируемым контентом. Но его недостатком является «фарширование» HTML-тегов разными атрибутами. В этой статье хочю расказать о том, как можно удалить «ненужные» атрибуты в большом количестве записей.
Читать дальше →
Всего голосов 28: ↑7 и ↓21 -14
Просмотры8.3K
Комментарии 6

MultiCAD.NET API: вставка блока с атрибутами

НанософтAPICAD/CAM
В сегодняшней публикации речь пойдёт о вставке блоков с использованием MultiCAD.NET API, это один из наиболее часто задаваемых вопросов в программистском разделе нашего форума.

Итак, имеется файл чертежа, который уже содержит блоки-шаблоны для условных обозначений элементов чертежа, например, схемы водоснабжения. Допустим, блоки для представления различных типов кранов содержат два атрибута:
  • NAME – название элемента (например, «Шаровый»),
  • LABEL – маркировка элемента (например, «11Б27п(М)»),
и имеют следующее графическое представление:

image
Как эти блоки вставить в чертёж?
Всего голосов 8: ↑8 и ↓0 +8
Просмотры3K
Комментарии 0

Кэш, хэш и няш-меш

FirefoxJavaScriptКлиентская оптимизацияHTMLMesh-сети

UPD0 (2016-07-19 23-31): судя по всему, первая половина моей статьи — успешно изобретённый велосипед. Спасибо хабравчанам за ссылку на спецификацию
Статья ценна не более, чем вольное описание уже придуманной технологии.


Предыстория


Июльский субботний вечер подходил к концу. Нарубив дров на шашлык, я повесил USB-модем на багету, скомандовал sudo wvdial, развернул браузер и обновил вкладку с открытым гитхабом. Вернее, попытался обновить. Скорость не радовала, и в итоге страница-то обновилась, но явно не хватало какого-то из стилевых файлов; и дело было не в блокировке, поскольку аналогичные проблемы я наблюдал и с другими сайтами, и зачастую они решались просто многократным обновлением страницы. Во всём был виноват перегруз 3G-сети.


Стоп! А как же кэш?

Читать дальше →
Всего голосов 14: ↑9 и ↓5 +4
Просмотры10.8K
Комментарии 34

Понятия: множество, тип, атрибут

СемантикаАнализ и проектирование системПроектирование и рефакторингIT-стандартыМатематика
Математикам лень объяснять на языке обывателя, что такое действительное число. Обывателю трудно читать значки, написанные математиком, потому что их смысл для него не понятен. В итоге есть разрыв между теорией и практикой. В теории математики прекрасно знают, что такое типы объектов и что такое атрибуты, но, спускаясь к практике, мы видим, что мало, кто из практиков понимает, что это такое. Существует множество интуитивных понятий, но каждое из них скорее похоже на религиозную догму, нежели на знание. В данной статье я попытался ликвидировать пробел между математиками и прикладниками, объясняя основы теории множеств простым языком, без сложных значков. Например, вы знакомы с определением понятия атрибут? Я выстрадал его самостоятельно, потому что не мог найти формального его определения. И лишь потом Игорь Катричек прислал мне ссылку на книгу Е.Киндлера «Языки моделирования» (1979 год, перевод 1985 год), в которой дано определение атрибута:


В данной статье я дам свое, более общее определение атрибута, чтобы можно было легко его себе представить.
Читать дальше →
Всего голосов 14: ↑10 и ↓4 +6
Просмотры14.9K
Комментарии 128

Как запутать аналитика. Часть первая

СемантикаАнализ и проектирование системIT-стандартыООПМатематика
— В армии научились совмещать пространство и время.
— Как?
— Очень просто! Прапорщик дает задание: «Сегодня будем копать от забора и до обеда»

В этой статье я начну рассказ о путаницах, которые регулярно встречаются, и которые кочуют в информационные модели без всякого критического анализа.

В прошлой статье я дал определения типу и атрибуту. Напомню их:

  • Тип – это выделение кучки (подмножества) из кучи (множества) и наделение объектов этой кучки уникальным именем — существительным.
  • Атрибут разделяет кучу (множество) на кучки (подмножества) и наделяет объекты этих кучек разными прилагательными.

Это было определение типа и определение атрибута на основе анализа – мы делили кучу на части. Фактически, это было построение типа при помощи анализа. Теперь я покажу, как можно строить типы и атрибуты на основе синтеза.
Читать дальше →
Всего голосов 16: ↑13 и ↓3 +10
Просмотры10.3K
Комментарии 14

Edge ненавидит ваши атрибуты

Разработка веб-сайтовCSSAngularБраузеры
Из песочницы

Сказ о том, как мы бездумно использовали на проекте бойлерплейт с целым боекомплектом зависимостей, которыми никто не пользовался, как нам потом это акнулось, когда потребовалась поддержка Edge, и как мы героически починили то, что, по факту, сами и поломали.
Нет, это слишком длинно.
Сказ о том, что все браузеры — атрибутофобы, а некоторые особенно.


Читать дальше →
Всего голосов 50: ↑45 и ↓5 +40
Просмотры23.8K
Комментарии 26

Атрибуты и протокол дескриптора в Python

PythonПрограммирование
Перевод
Tutorial

Рассмотрим такой код:


class Foo:
    def __init__(self):
        self.bar = 'hello!'

foo = Foo()
print(foo.bar)

Сегодня мы разберём ответ на вопрос: «Что именно происходит, когда мы пишем foo.bar




Вы, возможно, уже знаете, что у большинства объектов есть внутренний словарь __dict__, содержащий все их аттрибуты. И что особенно радует, как легко можно изучать такие низкоуровневые детали в Питоне:


>>> foo = Foo()
>>> foo.__dict__
{'bar': 'hello!'}

Давайте начнём с попытки сформулировать такую (неполную) гипотезу:


foo.bar эквивалентно foo.__dict__['bar'] .


Пока звучит похоже на правду:


>>> foo = Foo()
>>> foo.__dict__['bar']
'hello!'

Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Просмотры8.6K
Комментарии 2

Разбираемся с доступом к атрибутам в Python

OTUSPythonПрограммирование
Перевод

Интересно, сколько людей понимают, что в Python много синтаксического сахара? Я не говорю, что он похож на Lisp-подобные языки, где синтаксис настолько голый, насколько это возможно (хотя и сравнение с Lisp не совсем обосновано), но большая часть синтаксиса Python технически не нужна, поскольку под капотом в основном вызовы функций.

Ну и что с того? Зачем думать о том, как Python за меньший синтаксис делает больше вызовов функций? На самом деле для этого есть две причины. Во-первых, полезно знать, как на самом деле работает Python, чтобы лучше понимать/отлаживать код, когда что-то идет не так как надо. Во-вторых, так можно выявить минимум, необходимый для реализации языка.

Именно поэтому, чтобы заняться самообразованием и заодно подумать, что может понадобиться для реализации Python под WebAssembly или API bare bones на C, я решил написать эту статью о том, как выглядит доступ к атрибутам и что скрывается за синтаксисом.

Теперь мы можете попытаться собрать воедино все, что относится к доступу к атрибутам, прочитав справочник по Python. Так вы можете прийти к выражениям ссылок на атрибуты и модели данных для настройки доступа к атрибутам, однако, все равно важно связать все вместе, чтобы понять, как работает доступ. Поэтому я предпочитаю идти от исходного кода на CPython и выяснять, что происходит в интерпретаторе (я специально использую тег репозитория CPython 3.8.3, поскольку у меня есть стабильные ссылки и я использую последнюю версию на момент написания статьи).

В начале статьи вам встретится немного кода на С, но я не жду, что вы досконально поймете, что там происходит. Я напишу о том, что нужно будет из него понять, поэтому если у вас нет ни малейших знаний в С, то ничего страшного, вы все равно поймете все то, о чем я говорю. 

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Просмотры5.8K
Комментарии 0

Библиотека для работы с iOS-пермишенами, от идеи до релиза (часть 1)

Разработка под iOSXcodeSwift

• Каĸ унаследовать Swift-ĸласс не целиĸом, а лишь то в нём, что тебе нужно?

• Каĸ позволить юзеру твоей CocoaPods- или Carthage-библиотеĸи ĸомпилировать лишь те её части, что он действительно использует?

• Каĸ раздербанить ресурсы iOS, чтобы достать оттуда ĸонĸретные системные иĸонĸи и лоĸализованные строĸи?

• Каĸ поддержать completion blocks даже там, где это не предусмотрено дефолтным API системных разрешений?

Читать полностью
Всего голосов 6: ↑5 и ↓1 +4
Просмотры1.5K
Комментарии 3

Малоизвестные, но крутые атрибуты в HTML

VDSina.ruРазработка веб-сайтовCSSHTML


Спросите случайного фронтендера, какие атрибуты HTML он использует — и услышите что-то вроде «src, href, style, class...» и прочую чепуху, которую всем ещё в младенчестве вживили на чипе агенты IETF. Между тем, стандарты веба не стоят на месте, и с каждым годом в браузерах появляются всё более крутые фичи не только для монструозного CSS, но и для обычных элементов HTML. Вы знали, что с помощью атрибутов можно пинговать* произвольный адрес, а элементы формы могут многократно переопределять её поведение? Вряд ли.
Читать дальше →
Всего голосов 67: ↑65 и ↓2 +63
Просмотры24.7K
Комментарии 15