Pull to refresh
  • by relevance
  • by date
  • by rating

Ciklum Mobile Saturday (iOS edition) в Минске, 18 июня

Ciklum corporate blog
18 июня компания Ciklum при поддержке портала TUT.by приглашает всех iOS разработчиков на Ciklum Mobile Saturday (iOS edition).

Для нашей компании организовывать и поддерживать встречи различных сообществ разработчиков (.NET, PHP, Mobile) уже стало традицией. Этот субботник будет первым в Минске мероприятием, которое полностью посвящено разработке ПО под iOS.

Мы постарались сделать его еще более интересным и на этот раз к нам приедут известные спикеры и опытные технические специалисты, многие из которых впервые посетят Беларусь

Подробности под хабракатом
Читать дальше →
Rating 0
Views 851
Comments 0

11-12 апреля. Online трансляция конференции Software People 2013

Software People corporate blog Website development *
Друзья!

11-12 апреля 2013 года проходит одно из самых значимых событий в мире разработки ПО — юбилейная международная конференция Software People. В этом году, конференция проходит в пятый раз, собирая под одной крышей высококлассных специалистов в области разработки ПО.

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

Software 3.0: тихая революция

TopTechPhoto corporate blog
Который год все спрашивают всех о том, что же будет “the next big thing”. Что будет после веба, социальных сетей и облаков? По-моему, ответ валяется у нас под ногами, но мы никак не хотим его замечать. Просто потому что он не совсем такой, как нам нравится. Эта штука не такая простая, как все ожидают. Простых вещей больше не осталось: Instagram и Groupon – не самые сложные продукты – уже сделали.

Давайте попробуем взглянуть немного назад, скажем, лет на 35. Это было время появления первых доступных персональных компьютеров. Их уже можно было купить, но в силу странного интерфейса, понятного только очень усидчивым ребятам, пользоваться ими было довольно тяжело. Это была эра software 1.0. Время псевдографики и командной строки, время, когда появление цветного изображения на экране впечатляло больше, чем трюки Копперфильда. По понятным причинам компьютеры, в их тогдашнем виде, не могли стать по-настоящему массовыми. Софт тех времен был скорее научным и “гиковским”, но никак не персональным.

Затем пришла эра графических пользовательских интерфейсов, эра Windows, OS/2 и Mac OS. Компьютеры стали понятнее и люди начали их использовать для своих повседневных задач: создания документов и редактирования изображений. Это время software 2.0. Потом появился интернет, социальные сети и даже облачные вычисления, но софт, в большинстве случаев, остается таким же. Если вы сравните одну из первых версий MS Word и его современную инкарнацию, то обнаружите, что концептуально они практически не отличаются. То есть, возможностей стало больше, но это все еще заменитель карандаша и листа бумаги.
Читать дальше →
Total votes 41: ↑16 and ↓25 -9
Views 11K
Comments 67

Inversion of Control: Методы реализации с примерами на PHP

PHP *Programming *Designing and refactoring *
О боже, ещё один пост о Inversion of Control


Каждый более-менее опытный программист встречал в своей практике словосочетание Инверсия управления (Inversion of Control). Но зачастую не все до конца понимают, что оно значит, не говоря уже о том, как правильно это реализовать. Надеюсь, пост будет полезен тем, кто начинает знакомится с инверсией управления и несколько запутался.

Читать дальше →
Total votes 34: ↑29 and ↓5 +24
Views 42K
Comments 32

Разговор о MVC и архитектуре веб-приложений

PHP *Programming *Designing and refactoring *IT Standards *API *
MVC паттерн давно уже на рынке, но многие его используют по разному.

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

Основная цель — это выполнить проект в сроки и в дальнейшем развивать его вкладываясь в запланированный бюджет.

Один из важных критериев качества кода — это его простота. Но как измерять простоту? Один из вариантов — это рассчитать кол-во элементов системы. Чем меньше элементов тем система проще.

Допустим бизнес логику меньше сделать нельзя, так как она зависит от бизнеса, а не программиста, разве что можно ее оптимизировать. Тогда критерий будет — кол-во кода НЕ бизнес-логики. С опытом разработки мы увидели, что очень удобно разделить MVC таким образом:

Core Components
Server Environment needs
Routing
Common Libraries
M (Controller can connect with different objects):
2nd layer of business-logic
Get, Set, Data processing
HMVC Contollers
Adapters (for easy work with other services)
V = templating, head, footer-scripts, parts
C = easy code and first layer of business logic

+L = Libraries (for advanced and third-party components)

Модель многие понимают как работу с данными и это может быть как получение данных из базы так и целый внутренний сервис или сборка MVC компонента для вставки во view. Желательно, что бы они были НЕ сильно связаны и код можно было легко расширять.

View в веб-разработке часто несёт в себе заголовки head и скрипты, которые не являются уже внешним видом, а несут отдельный смысл. Лучше их переносить в отдельные файлы. Также View-ки должны легко делится на части для простоты масштабирования проекта

Controller — это основной элемент всей связки. В нем происходит распределение реакций на запросы клиента. И часто на первом этапе это распределение выполняет Rotuting, а уже потом в методе контроллера собираются все нужные данные и помещаются во View.
Читать дальше →
Total votes 30: ↑9 and ↓21 -12
Views 19K
Comments 84

Скользящая ответственность паттерна Репозиторий

Programming *
В ходе многих дискуссий о применимости паттерна Repository я заметил, что люди разделены на два лагеря. В рамках этого текста я, условно, их назову абстракционистами и конкретистами. Разница между ними заключается в том, как они относятся к значению паттерна. Первые считают, что репозиторй стоит иметь, т.к. он позволяет абстрагироваться от деталей хранения данных. Вторые считают, что мы не можем полностью абстрагироваться от этих деталей, поэтому сама идея репозитория бессмыслена, а его использование пустая трата времени. Спор между ними обычно превращается в холивар.

Что не так с репозиторием? Очевидно, что с самим паттерном все нормально, но разница в его понимании разработчиками. Я попробовал исследовать это и наткнулся на два основных момента, которые, на мой взгляд, являются причиной разного к нему отношения. Одним из них является «скользящая» ответственность репозитория, а другой связан с недооценкой unit testing. Под катом я объясню первый.
Читать дальше →
Total votes 12: ↑9 and ↓3 +6
Views 12K
Comments 161

uDev tech events: Харьков, 9 августа. Better Architecture with UX-Driven Design

Plarium corporate blog JavaScript *Programming *Game development *
Что посетить: uDev Tech Events
Когда: 9 августа, вторник, 18:00
Где: г. Харьков, Premier Palace Hotel

Тема встречи: Better Architecture with UX-Driven Design


Читать дальше →
Total votes 17: ↑12 and ↓5 +7
Views 2.5K
Comments 0

Правила внедрения TDD в старом проекте

.NET *TDD *IT Standards *
Статья «Скользящая ответственность паттерна Репозиторий» подняла несколько вопросов, на которые очень сложно дать ответ. Нужен ли репозиторий, если абстрагироваться от технических деталей полностью невозможно? На сколько сложным репозиторий может быть, чтобы его написание оставалось целесообразным? Ответ на эти вопросы различается в зависимости от акцента, который делается при разработке систем. Наверно, самый сложный вопрос: нужен ли, вообще, репозиторий? Проблема «текучей абстракции» и рост сложности кодирования с увеличением уровня абстракции не позволяют найти решение, которое удовлетворяло бы оба лагеря. Например, в репортинге intention design приводит к созданию большого числа методов для каждого фильтра и сортировки, а generic решение создает большой оверхед по кодированию. Продолжать можно бесконечно…

Для более полного представления я взглянул на проблему абстракций со стороны применения их в уже готовом коде, в legacy code. Репозиторий, в таком случае, нас интересует только, как инструмент для достижения качественного и безбажного кода. Конечно, этот паттерн — не единственное, что необходимо для применения TDD практик. Наевшись «невкусной еды» в нескольких больших проектах и наблюдая за тем, что работает, а что нет, я вывел для себя несколько правил, которые мне помогают следовать TDD практикам. С удовольствием выслушаю конструтктивную критику и иные приёмы внедрения TDD.
Читать дальше →
Total votes 29: ↑27 and ↓2 +25
Views 20K
Comments 86

Заменяем тестирование алгоритмов тестированием вносимых эффектов

TDD *IT Standards *
Как и ожидал, правило 8 о том, что не тестируем алгоритм методов в статье "Правила внедрения TDD в старом проекте" вызвало больше всего вопросов «как» и «зачем». В момент составления прошлой статьи мне показалось это очевидным, поэтому не остановился детальнее на этом моменте. Но т.к. вопросов возникло много, хочу описать своё видение. Поэтому под катом будет небольшой пример кода и два примера того, как его можно было бы протестировать.
Читать дальше →
Total votes 23: ↑21 and ↓2 +19
Views 8.9K
Comments 29

Как я свой Redux писал

Website development *JavaScript *Programming *ReactJS *
image

Или Охота на Кракена. В предыдущих заметках (тут и тут) я делился своим Braindump на тему различных архитектурных стилей, в частности Model-View-Controller и Flux.

Я отметил, что не увидел в лице Flux какой-то революции, этот шаблон не что-то новое. Я увидел в нем схожесть с Reenskaug-MVC 1979 года. Также, я упомянул, что решил убрать из своего кода Redux (одна из реализаций Flux). Мне кажется, эти моменты необходимо пояснить более развернуто. Моей целью не было убедить читателя в том, что Flux надо называть MVC, так же я не хотел сказать, что redux-модуль плох и от него нужно полностью отказаться.

Так как же относится тогда к Flux?


Для начала надо определится что же такое Flux. Во-первых это определенно архитектурный стиль, при чем на на данный момент, уже не только для клиентских web-приложений. Во-вторых это набор четко определенных компонентов и терминов.
Читать дальше →
Total votes 31: ↑24 and ↓7 +17
Views 15K
Comments 50

Развязываем игровой код с помощью паттерна Command, и дебажим, летая на машине времени

Microsoft corporate blog Programming *Designing and refactoring *Game development *ООP *
Tutorial

Картинка для привлечения внимания: > Replay bug-10492; going back in time


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


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


Начинающие разработчики познакомятся с паттерном, а продвинутые, возможно, найдут трюк полезным.


Хотите узнать как это сделать? Прошу под кат.

Читать дальше →
Total votes 31: ↑31 and ↓0 +31
Views 17K
Comments 27

Про M и про V и неможко про C

Programming *Perfect code *Data visualization

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

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

Microservices architecture & implementation Step-by-Step Part 1

.NET *C# *DevOps *
Sandbox
Hi All,

I’m in the process of implementing a new simple microservices-based project as an example of a step-by-step guide for those who had a hard time with a microservices architecture and are still looking for “another” good reference. Also, I would really appreciate thought through feedback and proposal to make this project a high-quality chunk of work.

There are tons of articles and source code examples. But, unfortunately, I could not find any reference with simple step-by-step instructions, without doing a deep dive into Docker, Event Store, a multitude of configurations, cloud deployment stuff, etc. I cloned several projects and tried to start playing with them, but you know, only God knows how to start them, which dependencies are missing and why all those scripts are failing with thousands of ERRORS.

For example, this eShop project from Microsoft contains all we need, but it is not so simple to figure out what is going on there, SQL database connection strings, Docker scripts fail, no How-Tos and I’m not sure it is super-simple architecture you need to start with.

image
Read more →
Total votes 17: ↑14 and ↓3 +11
Views 8.1K
Comments 0

Программная архитектура и проектирование систем: общая картина и путеводитель по ресурсам

Издательский дом «Питер» corporate blog Programming *Designing and refactoring *IT Standards *Database Administration *
Translation
Здравствуйте, коллеги.

Сегодня на ваш суд предлагается перевод статьи Тугберка Угурлу (Tugberk Ugurlu), который взялся в сравнительно небольшом объеме изложить принципы проектирования современных софтверных систем. Вот что автор сообщает о себе в сухом остатке:


Поскольку решительно невозможно охватить в хабростатье такую колоссальную тему, как архитектурные паттерны + паттерны проектирования по состоянию на 2019 год, рекомендуем не только сам текст господина Уруглу, но и многочисленные ссылки, которые он в нем любезно расставил. Если вам понравится — опубликуем и более узкоспециальный текст о проектировании распределенных систем.


Читать дальше →
Total votes 11: ↑10 and ↓1 +9
Views 7.8K
Comments 6

Метафизика Dependency Injection

Programming *Designing and refactoring *
image


Dependency Injection — это часто используемая техника в объектно-ориентированном программировании, предназначенная для уменьшения связанности компонентов. При правильном применении, помимо достижения этой цели, она может привнести поистине магические качества вашим приложениям. Как и любая магия, эта техника воспринимается как набор заклинаний, а не строгий научный трактат. Это приводит к неверному толкованию явлений и, как следствие, неправильному использованию артефактов. В своём авторском материале я предлагаю читателю шаг за шагом, кратко и по сути, пройти логический путь от соответствующих основ объектно-ориентированного дизайна до той самой магии автоматического внедрения зависимостей.
Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Views 7.9K
Comments 0

Пример гексагональной архитектуры на Java

OTUS corporate blog Programming *Java *
Translation
Перевод статьи подготовлен специально для студентов курса «Разработчик Java».





Как разработчикам нам часто приходится сталкиваться с легаси кодом, который тяжело поддерживать. Вы знаете как бывает сложно понять простую логику в большом запутанном спагетти-коде. Улучшение кода или разработка новой функциональности становятся ночным кошмаром для разработчика.
Читать дальше →
Total votes 9: ↑8 and ↓1 +7
Views 9.3K
Comments 3

6 Современных шаблонов проектирования архитектуры в области ПО

System Analysis and Design *
Sandbox
Привет, Хабр! Представляю вашему вниманию перевод статьи "Modern-Day Architecture Design Patterns for Software Professionals" автора Tanmay Deshpande.

image
Многие современные приложения необходимо создавать в масштабах предприятия, иногда даже в масштабах Интернета. Каждое приложение должно соответствовать требованиям к масштабируемости, доступности, безопасности, надежности и отказоустойчивости.

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

Вот список шаблонов, которые я буду обсуждать в этой статье:

  1. Circuit Breaker
  2. Command and Query Responsibility Segregation (CQRS)
  3. Event Sourcing
  4. Sidecar
  5. Backend-for-Frontend
  6. Strangler

Итак, давайте начнем.
Читать дальше →
Total votes 11: ↑8 and ↓3 +5
Views 12K
Comments 2

Архитектура архитектуры архитектора

System Analysis and Design *Project management *Design Systems engineering

Архитектор – это звучит… Звучит как-то не понятно. Наверное, поэтому всегда добавляют что-то. Ну типа «системный архитектор» или там «программный архитектор». Не то чтоб так стало понятно, что он делает, но точно кто-то важный. Я вообще пишу «архитектор информационных систем и программного обеспечения». Это ж как назовёшься -так и поплывешь! С архитекторами тут вообще такое дело – это как бы и не профессия. Ведь архитектором как стать? Либо тебя назовут таковым, либо сам назовёшься. Другого пути нет. Ни школы, ни спец. образования, никаких то там универсальных сертификатов нету. Только название и есть.

А раз оно есть – значит зачем-нибудь нужно! А нужно чтоб как-то указать на необходимость главного элемента мозаики – архитектуры. А раз нужен элемент, то за него, конечно, должен кто-то да отвечать. А раз должен, то вот и появляется такая должность.

Появляется, кстати, не всегда и не везде. Ведь не в каждой луже можно встретить кораблик. В самых больших - есть шанс. В такие лужи обычно и заплывают корабли из стартрека. Enterprise. Что же ищут эти корабли в корпоративных болотах? Чтоб вода не иссыхала, ветер только попутный и кругом гавани с блекджеком… Проще говоря им нужен сервис на много лет и так, чтоб исполнялись все их капризы за обещанные деньги.

Чтоб избежать проверенного классического сценария «много, дорого, бестолково» нужны ориентиры. Пунктир намеченного пути на карте требований и функционала. Это не красота и элегантность рисунков Леонардо, и не лабиринты цвета Поллока. Архитектура вообще не про искусство. Нет, все любят, когда красиво. Вот я бы строил дом, тоже бы хотел не бетонную коробку, а чтоб в вечность. Но у вечности, однако свои расценки. Так что даже Джи-мэн с кейсом полным золота хочет хайп и тренды, но строго в бюджет. Архитектура даёт парадигму.

Read more
Total votes 33: ↑26 and ↓7 +19
Views 14K
Comments 26

Архитектура архитектуры. Шаг 2: О заказчиках и приказчиках

System Analysis and Design *Product Management *Design Systems engineering

Продолжаем.

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

Read more
Total votes 15: ↑11 and ↓4 +7
Views 5.7K
Comments 13
1