Pull to refresh
7
0
Роман @angry_stitch

Пользователь

Send message

Заблуждения Clean Architecture

Reading time 15 min
Views 406K
Превращаем круги в блоки

­­ 


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

Читать дальше →
Total votes 58: ↑56 and ↓2 +54
Comments 203

Вэнивар Буш: «Как мы можем мыслить» (As We May Think)

Reading time 16 min
Views 16K
«Это не была война ученых, это была война в которой каждый принял участие. Ученые, похоронившие свои старые профессиональные разногласия, в угоду общему делу, многое разделили вместе и многому научились. Это было опьяняюще, работать в эффективных партнерских отношениях. Сейчас, для многих, это подходит к концу.
Что ученые будут делать дальше?»


image

Речь пойдёт об эссе американского инженера Вэнивара Буша «As We May Think», вышедшем в журнале The Atlantic в 1945 году. В нём Буш предсказал наступление информационной эпохи и появление некоторых её проявлений, например, персональных компьютеров, интернета. В статье описывается гипертекст реализованный «в железе».

Эта работа вдохновила и была ориентиром для первопроходцев информационных технологий Джозефа Ликлайдера (компьютерная сеть, разделение времени), Дугласа Энгельбарта (мышка, NLS, GUI, пруф), Теда Нельсона (гипертекст, Xanadu) и пр.

imageВ 1940 году Вэнивар Буш был назначен председателем Национального исследовательского комитета по вопросам обороны США, а с 1941 по 1947 год возглавлял организацию преемника комитета — Бюро научных исследований и развития, занимавшееся координацией усилий научного сообщества (6000 ведущих учёных страны) в целях военной обороны, разработкой ядерного оружия и Манхэттенским проектом.

Биография на Википедии.

  • Советник по науке при президенте Рузвельте.
  • Инициировал разработку дифференциального анализатора, аналогового компьютера, который мог решать дифференциальные уравнения с 18 независимыми переменными.
  • Научный руководитель Клода Шеннона (основатель теории информации) и Фредерика Термана («отец» кремниевой долины).

As We May Think


На Википедии
PDF
Скан самой газеты
Выдержки из статьи (на русском)

Под катом — перевод первой половины статьи.
(за перевод спасибо Алексею Ворсину)
Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Comments 1

Повтор неудачных HTTP-запросов в Angular

Reading time 9 min
Views 11K
Организация доступа к серверным данным — это основа почти любого одностраничного приложения. Весь динамический контент в таких приложениях загружается с бэкенда.

В большинстве случаев HTTP-запросы к серверу работают надёжно и возвращают желаемый результат. Однако в некоторых ситуациях запросы могут оказываться неудачными.

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

А что если поезд попадёт в туннель? Тут высока вероятность того, что связь с интернетом прервётся и веб-приложение не сможет «достучаться» до сервера. В этом случае пользователю придётся перезагрузить страницу приложения после того, как поезд выедет из туннеля и соединение с интернетом восстановится.

Перезагрузка страницы способна оказать воздействие на текущее состояние приложения. Это значит, что пользователь может, например, потерять данные, которые он ввёл в форму.

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



Материал, перевод которого мы сегодня публикуем, посвящён разбору нескольких способов повторения неудачных запросов в Angular-приложениях.
Читать дальше →
Total votes 31: ↑30 and ↓1 +29
Comments 6

Стандарты и шаблоны для ТЗ на разработку ПО

Reading time 7 min
Views 740K

Введение


Недавно ко мне обратились, чтобы я посоветовал стандарты для написания технического задания (ТЗ) на разработку автоматизированных систем (АС) и программного обеспечения (ПО). Вот думаю, сейчас зайду в Яндекс, найду подходящую статейку и отправлю её. Но не тут-то было! Одной статьи, где перечисляются стандарты для ТЗ, включая шаблоны и примеры готовых документов, я не нашел. Придется сделать такую статейку самому…

И так, основные стандарты, методологии и своды знаний, где упоминается ТЗ или SRS (Software (or System) Requirements Specification):

• ГОСТ 34
• ГОСТ 19
• IEEE STD 830-1998
• ISO/IEC/ IEEE 29148-2011
• RUP
• SWEBOK, BABOK и пр.
Читать дальше →
Total votes 36: ↑34 and ↓2 +32
Comments 22

Хабрарейтинг 2017: лучшие материалы за 2017 год

Reading time 16 min
Views 8.9K
Привет Хабр.

В недавней публикации подборки лучших статей за 2018й год было высказано пожелание увидеть такой же список за год 2017. В принципе, неплохая идея — практически все опубликованное тогда, актуально и сейчас. Обработка данных закончена, да и выходные еще не истекли, так что желающим будет что почитать в воскресный вечер. Читателей в конце текста также ждет бонус.



Кому интересны результаты, прошу под кат.
Читать дальше →
Total votes 20: ↑20 and ↓0 +20
Comments 10

Больше возможностей с паттернами в C# 8.0

Reading time 7 min
Views 14K

Совсем недавно вышла Visual Studio 2019 Preview 2. И вместе с ней пара дополнительных функций C# 8.0 готовы к тому, чтобы вы их опробовали. В основном речь идет о сопоставлении с образцом, хотя в конце я коснусь и некоторых других новостей и изменений.


Эта статья на английском


Читать дальше →
Total votes 23: ↑23 and ↓0 +23
Comments 15

Собеседования — взгляд интервьюера

Reading time 7 min
Views 30K
Давным-давно, ещё в стародавние времена я написал статью для Хабра — Собеседование. Взгляд соискателя.

За 10 лет прошедших с тех пор многое поменялось: увеличилось количество проектов в моём портфолио, как успешных, так и успешно проваленных; прочитаны десятки книг, просмотрены десятки тренингов и видосиков на ютубе, как полезных так и просто «поедателей времени», а также десятки собеседований, но которые проводил уже я. Спустя некоторое время произошёл пересмотр взглядов, но это не точно, о чем я и хочу рассказать в этой дискуссионной статье.


Настало время создать сиквел. Встречайте мой #10YearChallenge, только теперь со стороны интервьюера.
Читать дальше →
Total votes 49: ↑46 and ↓3 +43
Comments 105

Реактивное приложение без Redux/NgRx

Reading time 11 min
Views 6.6K


Сегодня мы детально разберем реактивное angular-приложение (репозиторий на github), написанное целиком по стратегии OnPush. Еще приложение использует reactive forms, что вполне типично для enterprise-приложения.

Мы не будем использовать Flux, Redux, NgRx и вместо этого воспользуемся возможностями уже имеющимися в Typescript, Angular и RxJS. Дело в том, что данные инструменты не являются серебряной пулей и могут внести излишнюю сложность даже в простые приложения. Нас об этом честно предупреждают и один из авторов Flux, и автор Redux и автор NgRx.

Но эти инструменты дают нашим приложениям очень приятные характеристики:

  • Predictable data flow;
  • Поддержка OnPush by design;
  • Неизменяемость данных, отсутствие накопленных side effect-ов и прочие приятные мелочи.

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

Как вы сами убедитесь к концу статьи, это довольно простая задача — если убрать из статьи детали работы Angular и OnPush, то остается лишь несколько простых идей.
Читать дальше →
Total votes 11: ↑11 and ↓0 +11
Comments 0

Топ-10 докладов конференции Гейзенбаг 2016 Moscow

Reading time 5 min
Views 8.1K
Сегодня пятница, впереди выходные и много свободного времени – пора публиковать десятку лучших докладов с Гейзенбаг 2016 Moscow! Подборка получилась весьма разнообразная и охватывает тестирование со всех сторон. Рейтинг, как всегда, предельно объективен, никем не проплачен и основан на отзывах тех, кто был на докладах.



Впрочем, вы можете проверить всё сами: полные видео докладов под катом.
Total votes 27: ↑25 and ↓2 +23
Comments 1

Идеальный каталог, вариант реализации

Reading time 13 min
Views 9K
В продолжении статьи "Идеальный каталог, набросок архитектуры", я покажу на примерах как можно использовать предложенную структуру БД для хранения произвольных данных и выполнения произвольных поисков по этим данным. Скрипты лежат в репозитории — universal_data_catalog_idea.

Приглашаю под кат, тех кому интересно посмотреть на эти скрипты с авторскими комментариями.
Читать дальше →
Total votes 12: ↑9 and ↓3 +6
Comments 22

Как стать продакт-менеджером. Часть 4 про Data Science и ASO

Reading time 7 min
Views 9.3K
В середине ноября наши друзья из Sports.ru запустили курс для тех, кто хочет стать продакт-менеджером мобильных приложений. Среди лекторов – сотрудники Sports.ru, AppFollow, Aviasales, Uber и другие классные ребята. Студент курса kirillkobelev рассказывает нам, как проходило обучение. Сегодня – заметки о том, на какие аспекты аналитики должен прежде всего обращать внимание начинающий продакт-менеджер (по мотивам лекции Олега Новикова из Uber) и как продвигать свое приложение в сторах без бюджета (со слов Сергея Шарова из ASO Desk).
Читать дальше →
Total votes 20: ↑20 and ↓0 +20
Comments 4

Как стать продакт-менеджером. Часть 1

Reading time 8 min
Views 54K
В этом блоге мы много пишем про разработку и продвижение приложений. Настало время для взгляда с другой стороны. В середине ноября наши друзья из Sports.ru запустили курс по продакт-менеджменту мобильных приложений. Среди лекторов – сотрудники Sports.ru, AppFollow, Aviasales, Uber и другие классные ребята. Весь декабрь студент курса kirillkobelev будет рассказывать, как проходит обучение и что же нужно знать юному продакт-менеджеру, чтобы создать лучшее мобильное приложение. Передаем слово автору:
Читать дальше →
Total votes 21: ↑21 and ↓0 +21
Comments 21

Мониторинг Microsoft SQL Server «на коленке»

Reading time 10 min
Views 38K
Когда я устроился на новую работу, передо мной была поставлена первая задача — разобраться, почему один из экземпляров SQL очень сильно нагружает диски. И предпринять необходимые действия для устранения этой ужасной проблемы. Я еще не сказал, что дисковый пул был всего один, и что при нагрузке на диски страдали все экземпляры сиквела? Так вот это было так. Что самое главное, как оказалось, мониторинг в лице Zabbix не собирал необходимые метрики, а на добавление оных нужно было заводить заявку и ждать. Ждать и смотреть, как «горит» дисковый массив. Или…

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

Для начала создадим БД и объекты, необходимые для сбора метрик производительности SQL-сервера.
Читать дальше →
Total votes 24: ↑23 and ↓1 +22
Comments 13

Почему в России почти нет гражданского/коммерческого высокотехнологичного производства?

Reading time 27 min
Views 407K
Статью с обзором ситуации с микроэлектроникой в России я закончил утверждением, что сейчас в России есть технические возможности для создания любых военных микросхем (если не считаться с ценой). Однако и в комментариях к той статье, и во многих других — всех больше волновал вопрос отсутствия (на уровне погрешности измерений) производства чисто-коммерческих (гражданских) высокотехнологичных продуктов. Этот вопрос волновал и меня, потому я постоянно мучил вопросами всех, кто так или иначе связан с высокими технологиями и бизнесом в России.

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

Под катом попробуем разобраться чем отличаются «высокотехнологичные» компании от «низкотехнологичных», что нужно, чтобы высокотехнологичные компании могли рождаться и выживать, почему с софтом у нас лучше, чем с хардом, с чего начиналась кремниевая долина в США и можно ли её «скопировать», почему Китай всех рвет, а также — окинем взором все, что происходит в Сколково, Роснано, фонде перспективных исследований и приведут ли они к расцвету российских инноваций. Безусловно, я где-то могу ошибаться — буду рад дополнениям в комментариях.

Сразу нужно отметить, что в связи с многогранностью проблемы объем статьи получился довольно большой, так что можно начать читать с резюме в конце, и затем прочитать лишь те разделы, которые вызовут интерес. Сразу хочу предупредить — повествование «нелинейное», соседние заголовки могут описывать разные аспекты проблемы и быть друг с другом практически не связанными.
Читать дальше →
Total votes 389: ↑380 and ↓9 +371
Comments 304

Налоговый суслик. Особенности упрощенной системы налогообложения при работе по договорам с Apple, Google и другими

Reading time 46 min
Views 53K
В данной статье я постараюсь провести краткий юридический ликбез для разработчиков по некоторым положениям Гражданского кодекса, имеющим значение в контексте деятельности индивидуальных предпринимателей и организаций, применяющих упрощенную систему налогообложения, в работе по договорам с Apple, Google и другими компаниями, а также обратить внимание на некоторые не всегда очевидные налоговые нюансы, которые, как показал личный опыт изучения данной темы, довольно часто ускользают от внимания разработчиков или вызывают множество вопрос и споров.

Прочтите внимательно эту статью, если вы применяете упрощенную систему налогообложения с объектом налогообложения «доход» по ставке 6 процентов и продаете игры или приложения в Google Play, Apple App Store, а также прочий цифровой контент — например, 3D-модели — в Steam, Unity Asset Store или на других площадках, в условиях договоров с которыми фигурируют комиссии, агентские вознаграждения и прочие формы разделения выручки между сторонами.

Из материала вы узнаете:

  • Почему разработчику желательно обладать хотя бы базовой юридической грамотностью
  • Чем с точки зрения Гражданского кодекса являются игры и приложения и какие права на них есть у разработчиков помимо авторского права
  • Что такое агентский договор и почему все это важно при работе по договору с Apple или Google
  • Кто такой налоговый суслик и почему он может превратиться в пушного зверя
  • Какой «подвох» существует для применяющих «упрощенку» в части определения налоговой базы
  • Почему налог на добавленную стоимость (НДС) продолжает преследовать нас, даже когда мы не являемся его плательщиками
  • Как, с точки зрения Федеральной налоговой службы, облагаются НДС внутриигровые покупки (InApp Purchases)
Покажите мне суслика!
Total votes 40: ↑36 and ↓4 +32
Comments 84

Первые 6 лекций онлайн школы Android-разработчиков

Reading time 2 min
Views 38K
Чуть больше месяца назад мы совместно с Google стартовали онлайн школу Android-разработчиков и сегодня хотим подвести промежуточные итоги.

За этот месяц:
— в школе зарегистрировалось 18 000 человек
— мы охватили русскоговорящее Android-сообщество из России, СНГ, Европы, США, Канады, Сингапура и Китая
— было выпущено 6 лекций от JetBrains, Parallels, Kaspersky Lab, LinguaLeo и Тинькофф Банк (посмотреть их вы можете на сайте школы)



Целью школы LearnDroid было поднять уровень интереса к разработке под Android и собрать материал от ведущих разработчиков, курс не был предназначен заменить университетское образование.

Чтобы начинающим разработчикам было легче изучать Android, мы попросили лекторов составить список литературы и статей, которые необходимо прочитать, чтобы стать гуру Android-разработки.
Читать дальше →
Total votes 35: ↑31 and ↓4 +27
Comments 14

Наш доклад на «Стачке»: «Как избавиться от persistent database зависимости»

Reading time 5 min
Views 11K
10-11 апреля наша команда приняла участие в крупнейшей в регионах России ИТ-конференции «Стачка», которая прошла в четвертый раз в Ульяновске. ИТ-компании представили свои стенды, где можно было познакомиться с их продуктами, узнать про вакансии, принять участие в конкурсах.

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

За два дня на 8 площадках выступили 130 экспертов и в общей сложности прозвучало 150 актуальных докладов по различным направлениям. Наш разработчик Алексей Ключников представил свой доклад на тему “Делаем интерактив в мобильных играх или как избавиться от persistent database зависимости” на примере нашего флагмана Magic Jigsaw Puzzles (2M MAU, 600K DAU и до 50K онлайн-игроков c интерактивным взаимодействием).

Ниже приведен текст его выступления:

Читать дальше →
Total votes 19: ↑15 and ↓4 +11
Comments 23

Несколько слабо известных эмпирических правил

Reading time 6 min
Views 10K


По какой-то причине русскоязычные пользователи Интернета не пользуются многими полезными понятиями, законами и эмпирическими правилами, созданными англофонами. Для тех эпоха активного сетевого общения и освоения цифровых технологий началась ещё в начале 90-х, и уже к концу десятилетия были созданы несколько любопытных понятий, которые за редкими исключениями наиболее интересных не настолько распространены. Здесь будет с несколько необычных позиций объяснено, как связаны провал SOPA, сегодняшнее закрытие русскоязычной Википедии и кошачьи, по какой причине анонимы такие злые, почему некоторые хорошие публикации на «Хабрахабре» никогда не имеют комментариев и отчего узкое место безопасности любой системы есть человек.
Читать дальше →
Total votes 108: ↑98 and ↓10 +88
Comments 46

Заземление. Что это такое и как его сделать (часть 2)

Reading time 12 min
Views 136K


1 часть. Заземление
(общая информация, термины и определения)


2 часть. Традиционные способы строительства заземляющих устройств
(описание, расчёт, монтаж)


3 часть. Современные способы строительства заземляющих устройств
(описание, расчёт, монтаж)



2 часть. Традиционные способы строительства заземляющих устройств (описание, расчёт, монтаж)


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

Г. Основные способы строительства

Г1. Несколько коротких электродов (“уголок и кувалда”)
Г1.1. Особенности решения
Г1.1.1. Промерзание грунта зимой
Г1.1.2. Взаимное “экранирование”/ “затенение” электродов
Г1.2. Расчёт получаемого сопротивления заземления и необходимого количества заземляющих электродов
Г1.3. Монтаж
Г1.4. Достоинства и недостатки
Г1.5. Уменьшение количества электродов
Г2. Одиночный глубинный электрод (“обсадная труба”)
Г2.1. Особенность решения
Г2.2. Расчёт получаемого сопротивления заземления
Г2.3. Монтаж
Г2.4. Достоинства и недостатки


Г. Основные способы строительства


Напомню, в прошлой части я остановился на общем подходе…
Читать дальше →
Total votes 65: ↑64 and ↓1 +63
Comments 30

Видео-курс «Введение в логику» на русском языке

Reading time 1 min
Views 61K
Здравствуй, Хабр!

Представляю вам курс «Введение в логику», недавно прошедший на Хекслете. Он основан на учебнике по математике Романа Добровенского. Курс состоит из шести лекций общей продолжительностью 2 часа 20 минут.



Первая лекция. Базовые понятия логики, логические операции, наша первая теорема и закон Де Моргана.


Читать дальше →
Total votes 62: ↑61 and ↓1 +60
Comments 8
1

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Registered
Activity