Pull to refresh
8
0
Send message

Правильное понимание Single Responsibility Principle (SRP) в Dart/Flutter

Level of difficultyMedium
Reading time4 min
Views4.8K

SRP оказался самым сложным принципом из всех SOLID принципов в понимании и как в следствии неправильное применение в кодировании. Множество разработчиков уровня junior / middle, которых я собеседовал на позицию Flutter разработчика давали ответ, что SRP - это принцип единой отвественности. Это конечно правильный ответ согласно книги Роберта Мартина "Чистая архитектура". Но мне хотелось услышать как понимает этот принцип наш кандидат в разработчики. Ведь от этого зависит расширяемость и простота читаемости нашего проекта, ведь мы расширяем команду и хотелось бы чтоб мы писали код в единой концепции. В большинстве случаев разработчики понимают этот принцип, как класс, который он создал должен содержать только один метод. И всё что мы написали в этом методе, несёт единственную ответственность, ведь он решает одну задачу. И на этом кандидат заканчивает свою мысль. Ну что же, неплохо, но и не совсем правильно. Да, такой принцип тоже есть, но он применяется на низшем уровне системы. Действительно для удобства чтения не надо всё сваливать в один метод. Практичнее будет если мы каждому методу разрешим делать что то одно и название этого метода будет понятно другому разработчику, что делает этот метод. SRP же применяется на среднем уровне программы. В общем, я делаю вывод что кандидат не читал книгу "Чистая архитектура", либо это делал очень невнимательно...

SRP это про другое! Сам Роберт Мартин столкнулся с такой же проблемой, неправильное понимание того, что он имел ввиду под SRP и попробовал её решить, написав другое определение и разъяснение к нему. Давайте почитаем!

Читать далее
Total votes 9: ↑4 and ↓5+3
Comments13

Закон больших чисел и закон больших грабель

Level of difficultyEasy
Reading time9 min
Views13K

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

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

Бросать не будем, все брошено до нас
Total votes 45: ↑45 and ↓0+45
Comments36

Парадокс вращения монеты — иллюзионист от мира математики

Level of difficultyEasy
Reading time2 min
Views24K

Дэвид Копперфильд мог заставить исчезнуть самолет или статую Свободы. Наш герой тоже мастер исчезновений. Ему удалось обмануть 300 тысяч американских студентов во время вступительного теста. Хотите поучаствовать в его представлении?

Тогда прошу под кат!
Total votes 39: ↑38 and ↓1+51
Comments53

Для Героев III вышло долгожданное полномасштабное обновление — Фабрика. Почему это по-настоящему уникальное явление?

Level of difficultyEasy
Reading time7 min
Views101K

Если судить по группе ВК, дополнение вышло где-то 31 декабря в 7:38 минут по Москве. Новость дошла до меня где-то за час-два до нового года. Если вы в курсе, то думаю вы уже или без меня ознакомились или вот, прочитав новость, побежите прямо сейчас и статья для вас тут по сути заканчивается). Сначала Doom порадовал ... а сейчас Герои.

Если вы не в теме, то в остатке заметки попробую рассказать пару слов о том, почему: это дополнение важно, почему люди ждали его пять лет и почему это абсолютно уникальное явление для "игровой индустрии" (и да, там есть и кампания, и мультиплеерное обновление, и редактор карт новый, и музыка и новый замок).

Я с трудом удержал себя от того, чтобы не засесть на пару суток проходить кампанию залпом, но конце расскажу своё мнение про первые две карты (я специально не спешу). Итак, обо всём по порядку.

И почему же HotA так уникальна?
Total votes 105: ↑100 and ↓5+123
Comments165

Наши заказчики любят работать по T&M. Рассказываем, почему иногда лучше выбрать Fixed Price

Reading time6 min
Views3.4K

Привет! Я Виталий Дощенко, New Business директор в AGIMA. Поговорим о моделях работы с заказчиком. Вот статистика по нашим контрактам: 52% — Time and Materials, остальные — Fixed Price. Хотя перевес в сторону T&M, я объясню на простом примере, почему для запуска новых проектов иногда лучше выбрать Fixed Price.

Читать далее
Total votes 6: ↑4 and ↓2+4
Comments3

Альтернативные клавиши переключения языка

Level of difficultyEasy
Reading time3 min
Views8.4K

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

Гораздо удобнее, когда есть разные клавиши «Переключить на язык такой‑то». Если этот язык уже выбран — то просто ничего не происходит. Весь смысл в том, что не нужно думать: собираешься писать на языке — нажал его кнопку. Перешёл в другое окно — автоматом нажал кнопку для желаемого языка. Отвлёкся — снова нажал. Для мозга нажать на автомате лишнюю кнопку в сто раз проще, чем вспоминать, какая там раскладка стоит сейчас.

Читать далее
Total votes 7: ↑6 and ↓1+8
Comments43

QA под капотом. Тестируем и настраиваем 1С-Битрикс

Level of difficultyMedium
Reading time10 min
Views3K

Привет, Хабр! Меня зовут Анастасия, я QA-специалист SimbirSoft и работаю на проектах с 1С-Битрикс. Не единожды я могла наблюдать, насколько эффективно бывает допустить QA-команду внутрь CMS, чтобы достичь бизнес-целей клиента. И на примере нескольких кейсов из разных проектов расскажу, как мы обеспечиваем качество на платформе 1С-Битрикс. Для тех, кто дочитает до конца, бонусом будет чек-лист для тестирования.

Вдохновил на этот рассказ один из проектов, где клиент доверился нашей команде и предоставил возможность настроить некоторые функции интернет-магазина для удобной работы пользователей с системой. QA-специалисты получили допуск в святая святых, backend — под этим мы подразумеваем работу в административной части и с базами данных, тестирование API. Такой подход готов поддержать не каждый бизнес, а между тем QA может создать удобные пользовательские сценарии и сделать тестирование более системным. А зачастую и сэкономить ресурсы для устранения критичных багов впоследствии.

Я рассмотрю детали работы QA-специалиста на примере настройки CMS 1С-Битрикс: Управление сайтом, приведу вводные данные, предполагаемый результат, инструменты, методологии и опыт, которые в этом помогут. А еще расскажу, как не упустить важные моменты в работе с коробочным решением от Битрикс.

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

Читать далее
Total votes 5: ↑4 and ↓1+5
Comments4

Опросы с использованием метода Дельфи

Reading time8 min
Views5.2K

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

Цель статьи — не только описать метод Дельфи, его основные этапы и применение, но и показать, как его преимущества и ограничения могут быть интегрированы в реальные бизнес-процессы и исследовательские проекты. Мы также рассмотрим, как инструменты, предлагаемые сервисом Testograf, могут помочь в организации и проведении опросов методом Дельфи. Эта статья будет интересна тем, кто ищет новые подходы к сбору и анализу экспертных мнений, а также тем, кто стремится улучшить свои исследовательские методы с помощью современных инструментов онлайн-опросов.

Читать далее
Total votes 9: ↑8 and ↓1+9
Comments2

Безопасность — это процесс, а не результат

Reading time8 min
Views5K
image

Типичный ИБ-инцидент, ломающий корпоративную защиту, зачастую выглядит очень по-бытовому.

Конструктор решил взять работу на дом и скидывает на флешку всю необходимую ему для этого документацию. Дома он вставляет ее в компьютер, на который ранее скачал кучу торрентов, не подозревая, что примерно 99 % из них содержит в себе backdoor. И вот уже компания, использующая самые современные (как она думает) способы защиты, оказывается под ударом.

Есть ли реальный способ защиты от вольного или невольного инсайдера? Самым актуальным выглядит метод построения эшелонированной защиты. С ее помощью можно поднять планку гарантированной защиты очень высоко — почти до 99 %. Надо отдавать себе отчет, что 100-процентная защита недостижима в принципе: злоумышленники все время придумывают новые способы атак, и мы как будто играем с ними в шахматы, обмениваясь ходами.
Читать дальше →
Total votes 28: ↑22 and ↓6+17
Comments17

Должна ли программа помогать сокращать затраты?

Level of difficultyEasy
Reading time5 min
Views1.7K

Цель бизнеса как известно - прибыль. Тут можно поспорить по части определения терминов, но сути это не меняет: цель бизнеса - деньги и как можно в большем количестве! как этого добиться? Логично: что необходимо увеличить прибыль и сократить затраты. Следовательно, одно из направлений этого - сокращение затрат. Как можно сократить затраты? Если не брать в расчет «стандартной процедуры» большинства руководителей как то: сокращение персонала и зарплат, то необходимо провести довольно большую работу по оптимизации бизнес-процессов (далее БП) с целью поиска «узких мест» и их ликвидации.

Читать далее
Total votes 4: ↑2 and ↓2+2
Comments16

Идемпотентность: больше, чем кажется

Level of difficultyEasy
Reading time10 min
Views41K

image


Друзья, всем привет! Идемпотентность в проектировании API — не просто формальность. Это свойство, часто рассматриваемое как способ получения одинакового ответа на повторяющийся запрос, на самом деле означает гораздо больше...

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

Создание атомарных коммитов в Git

Reading time7 min
Views16K

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

Читать далее
Total votes 29: ↑26 and ↓3+28
Comments41

У нас есть должность «бадди» — приятеля, который поможет во всём

Reading time5 min
Views5K
image

«Дмитрий, помогите, пожалуйста, у меня не открывается рабочий стол. Уже половина десятого, а я ещё не залогинилась. Что мне делать? Как быть? Меня уволят».

Это позвонила Даша, новая сотрудница. Позвонила она своему бадди, человеку, отвечающему за то, чтобы новички нормально въехали в работу. С Дашей работал Дмитрий — главный инженер процессинга. И да, он сделал работу поддержки.

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

Короче, адаптироваться. На это уходит какое-то время.

Каждому новому члену команды нужен свой Дмитрий. Ему можно задать глупые вопросы, с которыми иногда неловко идти к руководителю. Например, кому звонить, куда бежать, где кулер.

Легче обратиться к приятелю.

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

Кто такие бадди? Сотрудники, которые готовы помочь адаптироваться. Это не про руководство или наставничество, а про поддержку и комфорт.

Сейчас я расскажу, какую роль играют бадди в нашей системе онбординга.
Читать дальше →
Total votes 20: ↑16 and ↓4+13
Comments10

После прочтения применить, или Чистый код на практике

Level of difficultyEasy
Reading time11 min
Views20K

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

Со временем у разработчика опытным путем или с чтением хорошей технической литературы нарабатывается чувство чистого кода, но что делать новичкам? В этой статье я не буду долго мучать теорией про чистый код и паттерны —  про это уже было в Симпсонах в учебниках, конференциях и на Хабре в том числе. Но приведу примеры плохого (на мой взгляд) кода в приложениях на React и JavaScript — и также покажу, как его улучшить.

Надеюсь, что начинающим моя статья будет полезна — и после прочтения они смогут применить всё на практике.

Читать далее
Total votes 16: ↑14 and ↓2+18
Comments13

Удаленно следим за состоянием газового котла

Level of difficultyEasy
Reading time12 min
Views21K

Из рекламы молока всем известно, как хорошо иметь домик в деревне. Вариаций мемов на эту тему огромное количество, но суть одна — необходимо много работать. Например, в промышленных масштабах выращивать помидоры, крутить компот из яблок и окучивать малину. Мне, молодому поколению, такая постановка задачи непонятна. Зачем выращивать, когда продается готовое? Из аргументации можно услышать: «А зачем переплачивать?». Так что трагикомических воспоминаний о сенокосе или очистке полей картошки от майского жука и организации её орошения предостаточно. Поэтому мой домик в деревне, сокращенно дача, является образцом рационального пользования, поведения, неприемлемого в былые времена.

Неотъемлемой частью дачи является система отопления. Конечно, существуют дачи, которые на зиму «консервируются», но в моем случае газовый котел и все коммуникации есть. Современные котлы оборудованы электронной управляющей платой. Изучив документацию на котел Lemax Primve обнаруживаем, что к плате подключаются несколько термисторов, датчик протока, реле давления воды, электрод ионизации, электрод розжига, в общем все, что нужно для его правильного функционирования. Старые чугунные котлы имели в своем распоряжении только горелку и биметаллическую пластину с газовым клапаном. Если пламя тухло по тем или иным причинам, нужно было свернуть старую газету, зажечь её кончик и внести в область горелки. С современными котлами такую процедуру проделывать категорически не рекомендуется. Лучше посмотреть код ошибки на экране или вызвать мастера.

Читать далее
Total votes 24: ↑22 and ↓2+25
Comments58

Аксиомы: что это такое и с чем их готовить

Level of difficultyEasy
Reading time8 min
Views6.5K

Все знают что такое аксиомы, но мало кто понимает что они из себя представляют.

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

Проблема такой трактовки состоит в слове "является", и вот почему.

Читать далее
Total votes 6: ↑3 and ↓30
Comments40

Как понять, есть ли в тебе искра программиста

Reading time6 min
Views34K

Я думаю начать учиться писать код. Какой ноутбук мне купить? Нужно ли участвовать в буткемпе? Нужны ли моему ребёнку особые курсы или подготовка, чтобы поступить на computer science?

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

Приведу свой совет вкратце


Прежде чем думать обо всём этом: специальности, вузе, в который будет поступать ребёнок, покупке ноутбука, вам нужно понять, есть ли у вас (или у ребёнка) «искра программирования».

Это потребует от вас немного времени и усилий, но здорово то, что онлайн есть куча высококачественных и бесплатных ресурсов, позволяющих вам ощутить, что же такое кодинг и разработка, чтобы вы приняли решение, стоит ли выбрать это в качестве карьеры или хобби. Некоторые из них я приведу в этом посте.
Читать дальше →
Total votes 34: ↑31 and ↓3+36
Comments22

Если процесс нельзя роботизировать, то он кривой

Reading time7 min
Views8.3K
image

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

Почему так? Ну например, уйдёт на больничный единственный человек, который знает, как что-то делать. И всё. Если знания хранятся не только в его голове, это не проблема. То есть должна быть инструкция или что-то похожее — а это значит, что можно роботизировать по такому артефакту.

Если вам тревожно уходить в отпуск — это тоже оно. Это ваши знания куда-то не переложены.

Если вашу работу можно было бы роботизировать (хотя бы в теории), то пускай с качеством ниже, но она выполнялась бы.

Ещё два признака: мелкое изменение приводит к резкому увеличению трудоёмкости — и никто точно не знает, кто и в какой конкретно момент принимает решение.

Попробуйте проверить процесс на роботизируемость:

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

Сразу скажу, компаний без кривых процессов в принципе не бывает, как и компаний без техдолга.

Это примерно одно и то же. И подход один и тот же — надо вовремя что-то с этим делать. Лучше раньше.

Самые частые ситуации в моей практике, когда надо отлаживать такие процессы, — это потому что исторически сложилось, потому что лучше жить в хаосе, чем разбираться, потому что кто-то хочет стать незаменимым. Один большой набор крайне кривых процессов я разбирала после слияния-поглощения компаний, когда одинаковые вещи делались по-разному.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments19

Секрет Безоса: Amazon специально делает свой сайт хуже, чтобы получать больше прибыли

Reading time7 min
Views57K

Федеральная торговая комиссия США (ФТК) отвечает за защиту прав потребителей, в том числе за борьбу с монополиями. Недавно она предъявила Amazon официальную жалобу за «незаконное удержание монопольной власти» и «сознательное ущемление прав покупателей». Это очень серьезно и может поставить компанию на грань разделения активов. Новые разделы жалобы показывают, что руководители Amazon, включая бывшего гендиректора Джеффа Безоса, вносили в платформу изменения, которые увеличивали прибыль компании, одновременно нанося вред покупателям и продавцам, а также делая сайт менее удобным в использовании.

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

Читать далее
Total votes 44: ↑41 and ↓3+53
Comments103

ТРИЗ в разговорном дизайне: как находить оптимальные решения при проектировании сложных сценариев

Level of difficultyEasy
Reading time11 min
Views2.8K

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

Устранить подобные противоречия помогают приёмы ТРИЗ — теории решения изобретательских задач. Вот только есть проблема: эти приёмы были сформулированы для решения инженерных задач, поэтому их использование в дизайне выглядит неуместным — как можно сделать бота пористым, изменить его агрегатное состояние или привести в колебательное движение?

Меня зовут Кирилл Богатов, я дизайнер разговорных продуктов в KODE. В этой статье я на примерах покажу, как адаптировал ТРИЗ для работы над голосовым навыком для Алисы. Материал будет полезен дизайнерам и любителям мозговых штурмов.

Читать далее
Total votes 12: ↑8 and ↓4+8
Comments48

Information

Rating
Does not participate
Registered
Activity