Pull to refresh
0
@mafficread⁠-⁠only

User

Send message

Инверсии зависимостей управления впрыском

Reading time6 min
Views121K
image

Вступление


Наверняка первый вопрос, который возник у вас при взгляде на заголовок, был "Шта?". На самом деле я просто перевел фразу "Инверсия управления, внедрение зависимости" в Google Translate на китайский, а затем обратно. Зачем? Затем, что на мой взгляд, это хорошая иллюстрация того, что происходит на самом деле. Люди вокруг путают, коверкают и извращают эти понятия. По долгу службы я провожу много интервью, и 90% того, что я слышу, когда задаю вопрос про DI — честно говоря, откровенный бред. Я сделал поиск по Хабру и нашел несколько статей, которые пытаются раскрыть эту тему, но не могу сказать, что они мне сильно понравились (ладно, ладно, я проглядел только три первых страницы, каюсь). Здесь же на Хабре я встречал в комментариях такую расшифровку IoC, как Injection of Container. Кто-то всерьез предполагает, что есть некий механизм инъекции контейнеров, который сосуществует где-то рядом с DI, и, видимо, даже делает нечто похожее. Только с контейнерами. Мда. На самом деле понять внедрение зависимости очень просто, надо всего лишь…
Читать дальше →
Total votes 48: ↑41 and ↓7+34
Comments51

Предельная производительность: C#

Reading time56 min
Views261K
performanceЯ поделюсь 30 практиками для достижения максимальной производительности приложений, которые этого требуют. Затем, я расскажу, как применил их для коммерческого продукта и добился небывалых результатов!
Приложение было написано на C# для платформы Windows, работающее с Microsoft SQL Server. Никаких профайлеров – содержание основывается на понимании работы различных технологий, поэтому многие топики пригодятся для других платформ и языков программирования.
Читать дальше →
Total votes 135: ↑90 and ↓45+45
Comments289

Изменение схемы таблиц PostgreSQL без долгих блокировок. Лекция Яндекса

Reading time10 min
Views23K
Если одновременно выполняется много операций по изменению схемы БД, сервис не может корректно работать на запись. Разработчик Владимир Колясинский объяснил, какие операции в PostgreSQL требуют длительных блокировок и как команда Яндекс.Коннекта обеспечивает почти стопроцентную доступность сервиса на запись во время выполнения подобных операций. Кроме того, вы узнаете о библиотеке для Django, которая призвана автоматизировать часть описанных процессов.


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

Total votes 61: ↑61 and ↓0+61
Comments41

Асинхронный рассинхрон: антипаттерны в работе с async/await в .NET

Reading time9 min
Views49K

Кто из нас не косячит? Я регулярно встречаюсь с ошибками в асинхронном коде и делаю их сам. Чтобы прекратить это колесо Сансары делюсь с вами самыми типичными косяками из тех, которые иногда довольно сложно отловить и починить.



Читать дальше →
Total votes 49: ↑48 and ↓1+47
Comments64

Тёмные стороны деятельного человека

Reading time5 min
Views12K
Если в большинстве случаев, когда вы получаете новую задачу, вы больше думаете о возможностях сделать её любой ценой, вместо того, чтобы искать препятствия и причины, почему она не может быть выполнена, то вы, в моем понимании, деятельный человек. Пока другие думают, что это невозможно, вы всё еще ищете возможности и находите их. Но на пути поиска и воплощения решения в жизнь вы можете создавать напряжение между людьми. И об этом следует помнить, преследуя цели. И речь идет не о преодолении стены, а о поиске компромиссов, работающих решений и синхронизации с другими людьми. Существует такой набор черт, которые могут создать напряженность и об этом под катом.
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments14

Основные проблемы разработки современных интерфейсов

Reading time9 min
Views30K
Привет, Хабр! Представляю вашему вниманию перевод поста Дэна Абрамова «The Elements of UI Engineering» о современных проблемах и задачах, которые должны быть решены в хорошем интерфейсе. Автор разбирает фундаментальные проблемы при разработке интерфейсов, осмысление и решение которых самостоятельно — без использования готовых библиотек и фреймворков — способно дать глубинное понимание существующих на рынке решений в области frontend-разработки.



Примечание переводчика
Текст написан и переведен от первого лица. Автор оригинала на английском — Дэн Абрамов, разработчик библиотеки React для построения сложных пользовательских интерфейсов.

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

Я убежден, что вы можете начать свое познание «с места в карьер» и нет необходимости изучать технологии (технологический стек для веб-разработки — прим. переводчика) в определенном порядке. Но я так же считаю, что имеет огромное значение накопление опыта и профессиональных навыков в выбранной области. Лично я всегда испытывал наибольший интерес к созданию пользовательских интерфейсов.

И я раздумывал — в чем же я разбираюсь и что нахожу важным? Конечно, я хорошо знаком с такими технологиями, как Javascript и React. Однако, самые важные вещи, которые приходят с опытом, неуловимы и обычно ускользают при попытках точно их сформулировать. Я никогда не пытался выразить их словами. Это моя первая попытка систематизировать и описать некоторые из них.
Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments49

Что не так с GraphQL

Reading time6 min
Views54K

В последнее время GraphQL набирает всё большую популярность. Изящный синтаксис запросов, типизация и подписки.


Кажется: "вот оно — мы нашли идеальный язык обмена данными!"...


Я разрабатываю с использованием этого языка уже больше года, и скажу вам: всё далеко не так гладко. В GraphQL есть как просто неудобные моменты, так и действительно фундаментальные проблемы в самом дизайне языка.


С другой стороны, большая часть таких "дизайнерских ходов" была сделана не просто так — это было обусловлено теми или иными соображениями. По факту, GraphQL — не всем подойдет, и может оказаться совсем не тем инструментом, который вам нужен. Но обо всём по порядку.

Читать дальше →
Total votes 91: ↑88 and ↓3+85
Comments132

Разработка Технического задания по ГОСТ 34 легко и просто

Reading time45 min
Views303K
Нередко слышишь мнение, что составление Технического задания по ГОСТ 34 (ТЗ) занятие не только трудоемкое, но и крайне раздражающее, поскольку приходится писать много всякой ерунды, воды. Но подумайте: разработкой этого ГОСТа занимались целые НИИ, это был проект на государственном уровне, обобщен опыт сотен проектов автоматизации, сложных проектов. Неужели они могли написать чушь?

На самом деле, при грамотном подходе ГОСТ очень сильно помогает не только при разработке ТЗ, но и в ходе реализации проекта автоматизации в целом (и не только в госконтрактах, но и для коммерческой разработки). Грамотные люди его писали. Но чтобы воспользоваться плодами их трудов, нужно немного понять замысел не только ТЗ, но и ГОСТ 34 в целом.

В данной статье мы пункт за пунктом разберем все требования ГОСТа и попробуем сделать разработку ТЗ по ГОСТ 34 не обременением, а большой помощью в проекте.
Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments20

Теория счастья. Головокружительный полёт бутерброда с маслом

Reading time21 min
Views13K
Продолжаю знакомить читателей Хабра с главами из своей книжки «Теория счастья» с подзаголовком «Математические основы законов подлости». Это ещё не изданная научно-популярная книжка, очень неформально рассказывающая о том, как математика позволяет с новой степенью осознанности взглянуть на мир и жизнь людей. Она для тех кому интересна наука и для тех, кому интересна жизнь. А поскольку жизнь наша сложна и, по большому счёту, непредсказуема, упор в книжке делается, в основном, на теорию вероятностей и математическую статистику. Здесь не доказываются теоремы и не даются основы науки, это ни в коем случае не учебник, а то, что называется recreational science. Но именно такой почти игровой подход позволяет развить интуицию, скрасить яркими примерами лекции для студентов и, наконец, объяснить нематематикам и нашим детям, что же такого интересного мы нашли в своей сухой науке.



В этой главе мы рассмотрим закон бутерброда и организуем целое исследование с применением метода Монте-Карло, и анализа размерностей. И, наконец, развенчаем популярный миф о том, что именно масло является причиной этого закона подлости.
Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments11

Комфортная работа с Android Studio

Reading time16 min
Views112K


Всем доброго времени суток!


Насколько производительно работает Android Studio? Считаете ли Вы, что она работает шустро на Вашем ПК или Mac? Или, иногда, сталкиваетесь с лагами или долгой сборкой? А на крупных проектах?


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


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

Читать дальше →
Total votes 26: ↑17 and ↓9+8
Comments25

Образовательные стриминговые каналы программистов

Reading time5 min
Views49K


Источник Twitch


Удивительно, но люди действительно хотят смотреть на то, как вы пишите код. В 2014 году появился даже специальный сайт Livecoding.tv (сейчас он называется LiveEdu), на котором каждый желающий разработчик может всему миру показать процесс работы в режиме реального времени.


Идея устраивать трансляции с новорожденным кодом появилась гораздо раньше – стримеры занимались этим на Twitch, YouTube и standalone-площадках. В подборке представлены активные (за редким исключением) стримеры-кодеры, а также методы поиска интересных лично для вас трансляций.

Total votes 45: ↑45 and ↓0+45
Comments17

Изучаем азотные лазеры — часть 2. Лазеры продольного разряда

Reading time10 min
Views13K
В прошлой части мы рассмотрели примеры самодельных и заводских конструкций азотных лазеров с поперечным разрядом, и именно эта топология стала наиболее популярной для повторения самодельщиками. И вот какие её достоинства:

  1. Простота. Как сказано выше, во многих случаях вполне применима даже конструкция самодельного простейшего азотного лазера работающего на атмосферном воздухе, даже при вполне серьезной научной работе в лаборатории.
  2. Достаточно серьезная выходная энергия импульса – десятки миллиджоулей у крупных установок.
  3. Очень малая длительность импульса, в ряде случаев составляющая сотни пикосекунд.
  4. Сочетание предыдущих двух факторов позволяет достигнуть огромных импульсных мощностей – десятки-сотни мегаватт.

Но эта топология не лишена некоторых недостатков. Каких именно и к чему привело их устранение? Читайте дальше.

image
Читать дальше →
Total votes 39: ↑38 and ↓1+37
Comments27

Кому нужен GPS? Забытая история навигатора 1985 года от компании Etak

Reading time11 min
Views51K
image
Обложка журнала от июня 1985 года

Тридцать лет назад компания Etak выпустила в свободную продажу компьютеризированную навигационную систему для автомобилей. Руководил проектом инженер Стэн Хани [Stan Honey], а за финансы отвечал Нолан Бушнел [Nolan Bushnell], сооснователь Atari. Навигатор настолько опережал своё время, что сама фраза «опережал своё время» кажется диким преуменьшением.

Для адекватной оценки этого удивительного явления необходимо вспомнить, что спутниковая система глобального позиционирования GPS вступила в строй лишь в 1995 году. Да и тогда по запросу ФБР её точность была ограничена 100 метрами, чтобы враги не смогли ей использовать для наведения своих ракет. Это ограничение сняли в 2000 году, когда и началась эра навигационных гаджетов.

Etak опередил GPS-навигацию на полтора десятка лет. Изобретателям пришлось оцифровывать карты самостоятельно и придумать, как хранить их в автомобиле ещё до того, как появились SSD, оптические диски и беспроводной интернет. Да, да – они хранили данные на кассетах!

Практически всю систему пришлось разрабатывать с нуля. И она заработала!

По текущим меркам, коммерческий успех системы был слабым – но это и не был полный тупик. Для создания устройства изобретателям пришлось придумывать технологии и собирать данные, которые до сих пор используют некоторые навигационные приложения и устройства. И вот, как это было.
Читать дальше →
Total votes 89: ↑88 and ↓1+87
Comments38

Динамическое тестирование Андроид приложений

Reading time3 min
Views6.9K

Динамическое тестирование проводится с целью выявить уязвимости по время функционирования приложения. В данной статье хочу поделиться нескольким способамии тестирования приложения под Андроид. Также покажу как конфигурировать и настраивать оборудование. Кому интересно, добро пожаловать под кат.
Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments5

.NET — локализация без боли. (N)gettext + poedit

Reading time2 min
Views10K


Создавая новый проект, мне приходилось использовать либо *.resx для WinForms, либо I2Localization для Unity, либо другие решения для локализации приложений. Все эти решения похожи тем, что приходится придумывать ключ-локализации, вставлять его в код и в словарь. Поначалу все хорошо, но со временем этот процесс начинает раздражать. Вместе с тем, смотря на ключ в коде не всегда понятно о чем речь.

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

Не знаю почему, но оказывается существует уже давно такое готовое решение как gnu/gettext. Расспрашивая своих знакомых и коллег (тех кто работает с .NET), большинство даже и не слышал о таком. Поэтому решил поделиться с этим удобным инструментом.

Принцип прост. Вы пишите код со строками на английском языке, запускаете утилиту, которая сканирует исходники и предоставляет вам возможность перевода. Никаких ключей придумывать не надо. Текст на английском и есть ключ.
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments28

Качество воздуха в доме зимой

Reading time4 min
Views85K
image

Зимой воздух в помещении хуже всего. Духота, сухость. Работает отопление, проветривать часто нельзя, потому что замерзнешь. Особенно актуально, когда дома есть маленькие дети.
Как соблюсти баланс? Возможно ли это?

В статье я приведу цифры и расчеты. А еще свой вариант решения проблемы и устройство, собранное для этого. Кому интересно, прошу под кат…
Читать дальше →
Total votes 64: ↑60 and ↓4+56
Comments411

Феншуйная автоматизация CI & CD с помощью Jenkins и Jira

Reading time8 min
Views81K

image alt text


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


Рассказывать о долгом и тернистом пути всегда непросто. Однако за последние годы инфраструктура разработки Яндекс.Денег сделала большой шаг в сторону автоматизации самого важного для нас процесса — релиза, о чем просто грех не рассказать. Фактически получилось полноценное решение Continuous Integration и Continuous Delivery на базе связки Bitbucket, Jenkins и Jira.

Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments10

Поднимаем IDS/NMS: Mikrotik и Suricata c web-интерфейсом

Reading time9 min
Views48K
У меня, видимо, такая карма: как ни возьмусь за реализацию какого-нибудь сервиса на опенсорсе, так обязательно найду кучу мануалов, каждый по отдельности из которых в моем конкретном случае не сработает, готовое решение толком не заведется или не понравится, случится еще какая-нибудь неудобоваримость, и в итоге приходится самому пробиваться к результату.

В этот раз все мануалы были на ELK5 или еще старше, а мне не очень хотелось ставить софтину пред-предыдущих версий. Мне хотелось взять софтину с наиболее перспективными сроками поддержки: желательно самое свежее из стабильного.

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

Итак, сегодня Mikrotik (RouterOS), Suricata 4.1, Elasticsearch+Filebeat+Kibana 6.5.
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments17

Пчеловоды против микроконтроллеров или о пользе ошибок

Reading time3 min
Views36K

Пчеловоды за работой


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


Это выразилось в электрификации некоторых процессов выкачки(извлечения) меда да использование зимнего подогрева ульев.


Между тем, популяция пчел в мире сильно уменьшается — в силу изменения климата, широкого использования химии в сельском хозяйстве и того, что мы до сих пор не знаем чего-же хотят пчелы?


Мои пропали по первой причине, и это сильно поменяло изначальную концепцию "умного улья"


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


Ну и конечно-же вопрос цены — стоимость пчелиной семьи примерно равна стоимости простого улья и цене меда, производимой ими за сезон(год).


А теперь возьмите цену какого-то из взлетающих проектов и умножьте на количество ульев на коммерческой пасеке (от 100 и выше).


В общем, кому интересны пятничные размышления гика-пчеловода, прошу под кат!

Читать дальше →
Total votes 61: ↑57 and ↓4+53
Comments200

Оптимальная температура в доме или как установить термостат в дальней комнате без проводов

Reading time11 min
Views23K

Для многих далеко не секрет, что такие устройства как недельные термостаты помогают обеспечить оптимальную комнатную температуру в доме к тому же с экономией энергоресурсов, затрачиваемых на обогрев. Для корректной работы устройства его обычно размещают в самой дальней комнате, где наименьшая температура. Но большинство термостатов предполагают проводное подключение к котлу для управления и далеко не всегда есть возможность эти провода проложить. О решении подобной проблемы и пойдет речь в данной статье. Всем, кому интересно прошу под кат…
Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments33
1
23 ...

Information

Rating
Does not participate
Location
Белгород, Белгородская обл., Россия
Date of birth
Registered
Activity