Pull to refresh

JavaScript паттерны… для чайников

JavaScript *
Однажды вечером, сразу после того, как я закончил разбираться с наследованием в JS, мне пришла в голову идея, что пора бы заняться чем-нибудь посложнее — например паттернами. На столе внезапно оказалась книжка Gof, а на экране ноутбука появился труд с названием «JavaScript patterns».

В общем, спустя пару вечеров, у меня появились описания и реализации на JavaScriptе самых основных паттернов — Decorator, Observer, Factory, Mediator, Memoization (не совсем паттерн, а скорее техника, но мне кажется что она прекрасно в этот ряд вписывается) и Singleton.

Читать дальше →
Total votes 118: ↑108 and ↓10 +98
Views 177K
Comments 46

Erlang Factory Lite в Москве. 22 июня 2012

Self Promo
Erlang Factory Lite приезжает в Москву 22 июня 2012 года.

Erlang Factory Lite — это «миниконференция» на полдня-день на определенную тему или без темы (в то время как на полноценных конференциях выступления разделяются на несколько общих тем).

Московская конференция проводится при участии Яндекса. Если вы хотите выступить с докладом, заполните форму докладчика: http://www.erlang-factory.com/conference/Moscow2012/submit_talk

Если вы просто хотите прийти послушать, как выступают другие, зарегистрироваться можно тут: https://www.erlang-factory.com/conference/Moscow2012/register. Конференция бесплатна.

Взято тут: erlanger.ru
Total votes 21: ↑18 and ↓3 +15
Views 492
Comments 3

Type classes в Scala

TINKOFF corporate blog Scala *
Recovery mode

В последнее время в сообществе Scala-разработчиков стали уделять всё большее внимание шаблону проектирования Type classes. Он помогает бороться с лишними зависимостями и в то же время делать код чище. Ниже на примерах я покажу, как его применять и какие у такого подхода есть преимущества.

Статься расчитана не только на программистов, пишущих на Scala, но и на Java — возможно, они получат для себя ответ, как, хотя бы в теории, выглядит решение для многих прикладных задач, в котором компоненты не связаны между собой и расширяемы уже после написания. Также это может быть интересно разработчикам и проектировщикам на любых других языках.
Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Views 22K
Comments 18

Yet another factory

C++ *Qt *ООP *
В текущем проекте стала часто возникать необходимость конструирования множеств разнообразных объектов по каким-то идентификаторам. Была написана одна фабрика для какого-то множества, другая. Потом пришло понимание, что мы делаем одно и то же и нужно какое-то повторяемое решение.
Проект базируется на Qt, который, как известно, имеет развитые механизмы работы с метаданными. Тем не менее конструирование объектов через QMetaObject нас не удовлетворяло по двум причинам: во-первых конструируемые объекты должны быть QObject'ами, а во-вторых при конструировании мы получаем указатель на QObject, который так или иначе придется преобразовывать, что чисто эстетически некрасиво.

Проанализировав круг задач пришли к выводу, что мы хотим иметь статическую фабрику в базовых классах некоторых множеств наследников. Т.е. писать что-то в таком духе:

BaseClass * instance = BaseClass::factory()->build("derived_name");


При этом, мы не хотим писать каждый раз много однообразного служебного кода. Да, мы ленивые.
И конечно же мы не хотим чтобы фабрика или базовый класс знали о всех наследниках.
Как нам это удалось...
Total votes 23: ↑20 and ↓3 +17
Views 2.8K
Comments 27

Поддержка ИТ систем в производственной зоне

System Analysis and Design *
Sandbox

ИТ системы в производственной зоне


ИТ-технологии в современном мире развиваются стремительными темпами и все больше проникают во все сферы деятельности человеческой цивилизации. Применяемые технологии и оборудование становятся все более сложными и непонятными для человека без специализированной подготовки. Не обошла эта тенденция и промышленные предприятия. Среди основных ИТ систем находящихся непосредственно на производстве следует выделить следующие:
Внутриконтроллерные сети, применяемые на высокоавтоматизированных производствах для связи внутри и между участками, для получения данных с полевых устройств и элементов автоматики;
АСУ ТП — группа решений технических и программных средств, предназначенных для автоматизации управления технологическим оборудованием на промышленных предприятиях. Одним из ключевых компонентов данной системы является SCADA;
WMS — система управления, обеспечивающая автоматизацию и оптимизацию всех процессов складской работы профильного предприятия;
MES — специализированное прикладное программное-аппаратное обеспечение, предназначенное для решения задач синхронизации, координации, анализа и оптимизации выпуска продукции в рамках какого-либо производства;
Оконечное оборудование ERP — системы планирования ресурсов предприятия, позволяющей посредством целого комплекса интегрированных приложений создать единую информационную среду с целью автоматизации всех сфер деятельности предприятия от планирования бизнес-процессов до контроля над их реализацией и последующего анализа достигнутых результатов.

Читать дальше →
Total votes 7: ↑5 and ↓2 +3
Views 4K
Comments 2

В чем разница между factory и provider в AngularJS (на пальцах)

Website development *JavaScript *Angular *
Tutorial
Как-то давно переводил статью «Понимание типов сервисов в AngularJS (constant, value, factory, service, provider)». На практике, конечно, не всё пригождается, поэтому в рамках понижения порога вхождения в Ангуляр, объясню проще.
Читать дальше →
Total votes 45: ↑36 and ↓9 +27
Views 52K
Comments 9

Мини-обзор библиотек для Reflection в C++

Programming *C++ *Game development *
Sandbox
В силу скромной информации на эту тему, в данной статье проведу небольшой обзор и сравнение найденных библиотек для Reflection в C++. В первую очередь эта информация будет интереса разработчикам игр.

Благодаря reflection можно:
— Легко создавать редакторы, в том числе интерфейсов, так как есть удобный доступ к мета-информации о всех свойствах ваших объектов;
— Добавить binding для многих скриптовых языков сразу (Lua, Python, JavaScript и т.д.);
— Использовать мета-информацию для автоматической сериализаци;
— Использовать как фабрику объектов, создавая нужные экземпляры, имея лишь строку с именем тип;
— Использовать в качестве более легковесной замены dynamic_cast;
— И прочее прочее прочее, в зависимости от фантазии и потребностей.
Читать дальше →
Total votes 25: ↑23 and ↓2 +21
Views 25K
Comments 17

Google продолжает сотрудничество с берлинским коворкинг-центром Factory

Venture investment Personnel Management *Business Models *


Американская интернет-корпорация объявила о продолжении совместной работы с популярным бизнес-центром для стартапов, расположенным в столице Германии. В частности, Factory известна тем, что в здании расположены европейские представительства таких популярных компаний родом из Силиконовой Долины, как Uber и Twitter.
Читать дальше →
Total votes 7: ↑7 and ↓0 +7
Views 4.1K
Comments 0

Мобильное приложение с автоматической генерацией форм: наш кейс

True Engineering corporate blog Development for iOS *Development of mobile applications *Swift *
Мобильные приложения не всегда бывают простыми и лаконичными, как это любим мы — разработчики. Иные приложения создаются для решения сложных задач пользователя и содержат много экранов и сценариев. Например, приложения для проведения тестов, анкет и опросов — везде, где в процессе нужно заполнять много форм. Про такое приложение и пойдет речь в этой статье.



Мы начали разрабатывать мобильное приложение для агентов, которые занимаются выездным оформлением страховых полисов. Они заполняют в приложении большие формы с данными клиентов: информация об автомобиле, собственниках, водителях и т.п. Хотя каждая форма имеет свои секции, ячейки и структуру, а каждый пункт анкеты требует уникального типа данных (строка, дата, вложенный документ), экранные формы были достаточно похожи. Но главное – это их количество… Никто не захочет заниматься повторением визуализации и обработки однотипных элементов помногу раз.

Чтобы избежать многочасовой ручной работы по созданию форм, надо применить немного сообразительности и много динамического построения UI. В этой статье мы хотим поделиться способом, как решили эту задачу.
Читать дальше →
Total votes 4: ↑4 and ↓0 +4
Views 3K
Comments 2

Какие возможности предоставляет Spring для кастомизации своего поведения

OTUS corporate blog Website development *Programming *Java *Industrial Programming *
Всем привет. На связи Владислав Родин. В настоящее время я являюсь руководителем курса «Архитектор высоких нагрузок» в OTUS, а также преподаю на курсах, посвященных архитектуре ПО.

Помимо преподавания, я занимаюсь написанием авторского материала для блога OTUS на хабре и сегодняшнюю статью хочу приурочить к запуску курса «Разработчик на Spring Framework», на который прямо сейчас открыт набор.




Введение


С точки зрения читателя код приложения, использующего Spring, выглядит достаточно просто: объявляются некоторые bean'ы, классы размечаются аннотациями, а дальше bean'ы inject'ятся куда нужно, все прекрасно работает. Но у пытливого читателя возникает вопрос: «А как это работает? Что происходит?». В этой статье мы попытаемся ответить на данный вопрос, но только не ради удовлетворения праздного любопытства.

Spring framework известен тем, что он является достаточно гибким и предоставляет возможности для настройки поведения framework'а. Также Spring «изобилует» рядом достаточно интересных правил на применение некоторых аннотаций (например, Transactional). Для того, чтобы понять смысл этих правил, уметь их выводить, а также понимать что и как можно настраивать в Spring'е, необходимо понять несколько принципов работы того, что находится у Spring'а под капотом. Как известно, знание нескольких принципов освобождает от знания множества фактов. Я предлагаю ознакомиться с этими принципами ниже, если вы их, конечно, еще не знаете.
Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Views 4K
Comments 2

Laravel: создание фабрик и seeders при связях между моделями

Laravel *

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

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

Спойлер: фабрики не должны зависеть от сидов.

Читать далее
Total votes 9: ↑7 and ↓2 +5
Views 12K
Comments 5