Какой рейтинг вас больше интересует?
|
Главная / Главные темы / Тэг «проектирования»
Эволюция приложений или куда мы идем 2017-04-12 03:16:28
Называть статью «Эволюция прикладных информационных систем и перспективы развития их архитектуры» ...
+ развернуть текст сохранённая копия
Называть статью «Эволюция прикладных информационных систем и перспективы развития их архитектуры» было бы слишком академично, а ведь тут будет очень краткая выжимка из реального практического опыта, возможные варианты развития технологий, вызвавшие их потребности и пути решения. Я надеюсь, что статья поможет обобщить и переосмыслить широкий круг задач, связанных с прикладными ИС, и сразу хочу уточнить, что понимаю под этими терминами. ИС — это системы, обеспечивающие обработку, передачу и хранение данных. Это далеко не все программирование, но сейчас ИС чаще всего ассоциируются с веб и мобильными приложениями, хотя и не совпадают с ними полностью, знак равенства между UI и ИС нельзя ставить тем более. Очень прошу всех посмотреть на вопрос как можно шире и присоединяться к обсуждению в комментариях. И еще, я намеренно не буду использовать названия фреймворков и технологий, чтобы избежать лишних холиваров, ограничившись общепринятыми названиями архитектур, стандартов и протоколов, что и вам рекомендую в комментариях.
Читать дальше →
Тэги: api, rpc, анализ, архитектура, браузер, браузеры, веб, веб-сайтов, ветхий, высокая, интернет, исследование, клиент, модель, обзор, прогноз, программирование, проектирование, производительность, протокол, разработка, реактивность, сервер, систем, субд
[Перевод] Шаблоны проектирования с человеческим лицом 2017-04-10 15:49:31
... инженерии шаблон проектирования приложений — ... ul>
Шаблоны проектирования — не «серебряная ...
+ развернуть текст сохранённая копия
Шаблоны проектирования — это способ решения периодически возникающих проблем. Точнее, это руководства по решению конкретных проблем. Это не классы, пакеты или библиотеки, которые вы можете вставить в своё приложение и ожидать волшебства.
Как сказано в Википедии:
В программной инженерии шаблон проектирования приложений — это многократно применяемое решение регулярно возникающей проблемы в рамках определённого контекста архитектуры приложения. Шаблон — это не законченное архитектурное решение, которое можно напрямую преобразовать в исходный или машинный код. Это описание подхода к решению проблемы, который можно применять в разных ситуациях.
Будьте осторожны
- Шаблоны проектирования — не «серебряная пуля».
- Не пытайтесь внедрять их принудительно, последствия могут быть негативными. Помните, что шаблоны — это способы решения, а не поиска проблем. Так что не перемудрите.
- Если применять их правильно и в нужных местах, они могут оказаться спасением. В противном случае у вас будет ещё больше проблем.
В статье приведены примеры на PHP 7, но пусть вас это не смущает, ведь заложенные в шаблонах принципы неизменны. Кроме того, внедряется поддержка других языков. Читать дальше →
Тэги: group, mail.ru, php, анализ, блог, веб-сайтов, компании, проектирование, проектирования, разработка, рефакторинг, систем, теги, читает, шаблоны
Шаблон проектирования «Спецификация» в C# 2017-03-30 14:51:19
... — это шаблон проектирования, посредством которого ... реализация шаблона проектирования выглядит так:< ...
+ развернуть текст сохранённая копия
«Спецификация» в программировании — это шаблон проектирования, посредством которого представление правил бизнес логики может быть преобразовано в виде цепочки объектов, связанных операциями булевой логики.
Я познакомился с этим термином в процессе чтения DDD Эванса. На Хабре есть статьи с описанием практического применения паттерна и проблем, возникающих в процессе реализации.
Если коротко, основное преимущество от использования «спецификаций» в том, чтобы иметь одно понятное место, в котором сосредоточены все правила фильтрации объектов предметной модели, вместо тысячи размазанных ровным слоем по приложению лямбда-выражений.
Классическая реализация шаблона проектирования выглядит так:
public interface ISpecification
{
bool IsSatisfiedBy(object candidate);
}
Что с ним не так применительно к C#?
- Есть
Expression<Func<T, bool>> и Func<T, bool>> , сигнатура которых совпадает с IsSatisfiedBy
- Есть Extension-методы. alexanderzaytsev с помощью них делает вот так:
public class UserQueryExtensions
{
public static IQueryable<User> WhereGroupNameIs(this IQueryable<User> users,
string name)
{
return users.Where(u => u.GroupName == name);
}
}
- А еще можно реализовать вот такую надстройку над LINQ:
public abstract class Specification<T>
{
public bool IsSatisfiedBy(T item)
{
return SatisfyingElementsFrom(new[] { item }.AsQueryable()).Any();
}
public abstract IQueryable<T> SatisfyingElementsFrom(IQueryable<T> candidates);
}
В конечном итоге возникает вопрос: стоит ли в C# пользоваться шаблоном десятилетней давности из мира Java и как его реализовать? Читать дальше →
Тэги: .net, ddd, issatisfiedby, specification, веб-сайтов, проектирование, разработка, рефакторинг
Запрещенные изменения в коде или продолжение истории ремонта одного крана 2017-03-29 13:50:37
+ развернуть текст сохранённая копия
Данная статья является продолжением ранее опубликованной статьи, которую можно найти здесь.
В текущей статье я уделю больше внимания тому, как, не смотря на ограничения, которые вводит политика обратной совместимости, не идти на компромисс в качестве кода. И выполнять непрерывный рефакторинг в ходе любых изменений кода, а не откладывать рефакторинг до тех пор когда будет позволено внести обратно несовместимые изменения, т.к. только непрерывный рефакторинг, который производится при каждом изменении кода, ведет к постоянному улучшению дизайна кода и архитектуры приложения, что ведет к улучшению расширяемости и поддержки кода в целом.
Откладывание рефакторинга на потом ведет к увеличению технического долга и созданию задач (user story) на рефакторинг, которые не имеют business value для product owner-a, а соответственно такие задачи не будут попадать в топ продуктового беклога.
Читать дальше →
Тэги: backward, compatibility, e-commerce, magento, php, refactoring, обратная, проектирование, разработка, рафакторинг, рефакторинг, совместимость
[Перевод] А вы знаете скорость загрузки вашего сайта с мобильных устройств? Самое время разобраться 2017-03-23 13:23:43
< ...
+ развернуть текст сохранённая копия
Выясните, сколько времени потребуется для загрузки страницы на мобильных устройствах из разных регионов.
Читать дальше →
Тэги: hosting.cafe, it-стандарты, анализ, блог, веб-сайтов, веб-сервисов, время, загрузки, компании, оптимизация, проектирование, разработка, сайта, систем, тестирование
Главная / Главные темы / Тэг «проектирования»
|
Взлеты Топ 5
Падения Топ 5
|