All streams
Search
Write a publication
Pull to refresh
43
0
Березников Алексей @gdt

Разработчик C#

Send message
… и программистские там всё-таки тоже есть: image
А вы попробуйте сами для начала сделать такой класс.
Смотрите, есть два варианта (базовых, вариантов конечно же больше):
  1. Определяете интерфейсы для всех компонентов UI (Margin, Width, Measure и т.д.), делаете абстрактную фабрику, знания о платформе концентрируете в конкретных реализациях — получаете простой для сопровождения код, максимально абстрагированный от платформы
  2. Убираете «лишние сущности» и оставляете только классы элементов, передавая в конструктор платформу. С таким подходом каждый отдельно взятый визуальный элемент должен знать о каждой платформе


А теперь возьмите вариант #2, и представьте, что вам необходимо добавить поддержку ещё одной платформы.
Я вас разочарую, но это именно абстрактная фабрика. Смотрите, например, вики. Это, конечно, похожие шаблоны, но абстрактная фабрика — это порождающий шаблон, а мост — структурный.
Абстрактные фабрики, на самом деле, далеко не везде нужны. Хороший пример в данной ситуации — это кроссплатформенный GUI framework, в котором вам необходимо создавать визуальные элементы (кнопки, поля ввода и т. д.) одинаковым образом независимо от платформы. То есть, у вас будет интерфейс по типу IVisualElementFactory с методами CreateButton, CreateTextBox и так далее, у которого будут реализации, например, WindowsVisualElementFactory и MacVisualElementFactory. Клиентский код получает из фреймворка уже готовый экземпляр IVisualElementFactory и конструирует свой визуальный интерфейс, не требуя знания о платформе.
Если вы не разрабатываете подобные программные системы — такие шаблоны вам без надобности.
Для организации все же будет удобнее SharePoint/TFS. Для не-программистов классические системы контроля версий — тёмный лес.
Неистово плюсую за Ghost, мне кажется, это лучшее, что услышал за последние несколько лет.
Всё же зависит, как вы правильно говорите, от движка. В .Net, например, используется недетерминированный конечный автомат, чтобы обеспечить поддержку хотя бы backtracking. Если вы используете backtracking (и другие расширения базового синтаксиса regex), производительность будет оставлять желать лучшего, я уверен.
Если говорить о HTML, то далеко не всегда у вас на входе будет полностью валидная разметка.
Бывало, конечно, и такое, что приходилось делать анализ, например, списка объявлений переменных на Pascal/C/C# при помощи регулярного выражения (сыну маминой подруги в университете задавали), но это максимум хорошая задача для того, чтобы прокачаться в регулярных выражениях. В реальных проектах почему-то мне всегда гораздо проще сделать отдельно простой лексер (из кучи маленьких и понятных регулярок) и уже отдельно анализировать синтаксис рекурсивным спуском или табличными парсерами.
А как вы относитесь к разбору HTML при помощи regex? (см например stackoverflow.com/a/1732454)
В последний раз был в апреле, забирал карту.
Очень странно, я тоже клиент Альфа банка, в моём случае всё прямо противоположно — крайне быстро и удобно, никаких данных вбивать не приходилось ни разу.
Попахивает экзоядром, разве нет?
Это всё конечно здорово, надеюсь, когда-нибудь прогресс дойдёт и до корректного отображения баланса на карте в тех случаях, когда выполняется списание не через приложение (обслуживание, онлайн покупки) — сейчас для того, чтобы увидеть изменённый баланс, необходим перезапуск.
Можно ли слово «subvolume» перевести как, например, подраздел?
Простите, но отношение периметра шестиугольника к длине описанной вокруг него окружности никак не может быть равно пи. Для правильного шестиугольника радиус описанной окружности равен длине его стороны. Таким образом, получаем периметр = 6*R, длина описанной окружности = 2*pi*R ≈ 6.28*R, ваше отношение равно 6/6.28 ≈ 0.955.
мета- и не только данные можно собирать с серверов

Возможно, но, например, когда разгребаю краши — максимум, что могу узнать о пользователе, это страна и версия ОС. Я сильно сомневаюсь, что такое могло пройти мимо разработчиков. Конечно, инопланетяне-жидорептилоиды могли промыть всем мозги и нас всех обманывают (включая меня), но так недалеко и до чайника, вращающегося вокруг солнца, не так ли?
Нормальные люди делают это с помощью аутентификации

Как же мы раньше жили без этой, безусловно, ценной информации. Вообще то, о чём я говорю, называется «аутентификация по device hash». Ну есть такая бизнесовая фича — link up to 5 devices, и по ряду причин гораздо удобнее делать именно так. А у вас позиция «не читал, но критикую», ай-яй-яй.
Статья выглядит как антиреклама AnchorFree, фу-фу-фу. Я своими руками переписывал Betternet в 2018 году и с полной ответственностью могу заявить, что как минимум версия для Windows не собирает и не собирала никакой истории браузера, как и любой другой пользовательской информации. Минимальная информация о системе собирается и хэшируется на стороне клиента — чтобы отличить устройства с премиум от free, это обычная практика для любого условно-бесплатного приложения, но это всё.
В коммандере — да.
Ага, а те, кто ставил роутер, не отключили upnp

Information

Rating
Does not participate
Location
Кемерово, Кемеровская обл., Россия
Date of birth
Registered
Activity

Specialization

Software Developer
Senior
C#
.NET
Software development
Object-oriented design
Multiple thread
Git
WPF