Добро пожаловать в коллективный твиттер мобильных разработчиков, курируемый @igrekde.
Каждую неделю новый ведущий,… twitter.com/i/web/status/1…
Всем привет! Меня зовут Евгений. Я iOS разработчик в Redmadrobot, декан iOS факультета в Geekbrains и человек из тайги.
На этой неделе мы обсудим темы:
- архитектура
- ФП
- удаленка
- аутсорс
- онлайн курсы
- постоянное развитие
Последнюю мы выберем вместе.
Обсуждения архитектуры всех уже утомили. Каждая конференция имеет в обойме 1-2 доклада на эту тему. Даже книжка выш… twitter.com/i/web/status/1…
Меня раздражают речи о том какая крутая это архитектура. А все потому, что он конечно не плох, но и не крут. Во-пер… twitter.com/i/web/status/1…
Что бы донести свою мысль, я предлагаю небольшую экскурсию в php времен нулевых. Чудное время, когда программист ко… twitter.com/i/web/status/1…
Вместе это значит в одном файле, без функций (конечно были крутые парни, они функциями пользовались), без классов.… twitter.com/i/web/status/1…
Сейчас вспомнил свою стажировку в Информационно вычислительном центре РЖД. Мне показывали web портал написанный на… twitter.com/i/web/status/1…
Я в те времена не имел большого опыта, но смотрел на такой подход с удивлением. И решил что стоит выделить секции в… twitter.com/i/web/status/1…
Тогда все это только началось для PHP. Все спорили. МОжет не стоит в "C" хранить логику, а перенести ее в "M". Пере… twitter.com/i/web/status/1…
MVC дал старт архитектуре в PHP. Он все еще в сердцах большинства, Но на тру проектах уже думают о разделении на па… twitter.com/i/web/status/1…
Когда большая часть твоей работы это красить кнопки, нет нужды по настоящем думать о высоком.
Закончим с php. В iOS У нас из коробки MVC. Но про него не писали статей, документацию читать не модно, а в статьях… twitter.com/i/web/status/1…
Масла в огонь подливает формулировка задач. "Сверстать таблицу", "Добавить форму". Фокус делается на форме, что лог… twitter.com/i/web/status/1…
Если ты занимаешься UI, добавляешь код обработки интерактива, лейаута, отображения данных, можно и код обработки эт… twitter.com/i/web/status/1…
Конечно писать все в одном файле это проблема. Почему для этого надо было создавать новую архитектуру, а не начать… twitter.com/i/web/status/1…
Можно провести соответствие между mvc - VIPER
View-ViewController
Controller-Presenter
Model-Interacotr+Entity
???… twitter.com/i/web/status/1…
Я бы еще понял, если бы VIPER дал четкий ответ, где и что должно находится. Но и его каждый понимает как хочет. Как… twitter.com/i/web/status/1…
Но как я уже сказал. Проблема не в VIPER, а в том что его считают лучшим. На собеседовании надо спросить и обсудить… twitter.com/i/web/status/1…
Заученный вайпер не дает понимания того что любой из его элементов можно декомпозировать или объединять при необход… twitter.com/i/web/status/1…
Выговорился про вайпер) Теперь перейдем к сути, что архитектура это больше чем всякие "M.." и "V..". Как только при… twitter.com/i/web/status/1…
В любом приложении есть как минимум авторизация. Это простой пример, когда нельзя просто взять данные из View и отп… twitter.com/i/web/status/1…
Как обрабатывать переход к форме входа если он может произойти в любом контролере. Как восстанавливать сессию? Как… twitter.com/i/web/status/1…
Мое мнение, что надо меньше зацикливаться на стандартных UI архитектурах и больше уделять времени развитию обще арх… twitter.com/i/web/status/1…
Если брать стандартное приложение. То базовыми компонентами может быть логирование, аналитика, менеджмент сессии по… twitter.com/i/web/status/1…
Ниже уже обсудили, что лучше у всех похуже но одинаково, чем хорошо но по разному. Дискуссионно. Конечно общий карк… twitter.com/i/web/status/1…
Опять из личного опыта. Я видел классы которые вписывались в архитектуру по всем канонам выбранной архитектуры. Но… twitter.com/i/web/status/1…
Я не верю, что разделение плохого класс на несколько плохих классов ухудшит ситуацию. Но может улучшить. По этому я… twitter.com/i/web/status/1…
Я бы рекомендовал ознакомиться с "Совершенный код" (Стив Макконнелл), "Принципы, паттерны и методики гибкой разрабо… twitter.com/i/web/status/1…
Очень хочется рассказать подробнее о архитектуре описанных компонентов, но Твиттер тесен для этого. Если кому то ин… twitter.com/i/web/status/1…
У меня уже ночь, так что на сегодня все. Подведем итог.
Вайпер не лучше mvc
Архитектура намного больше чем UI слой.… twitter.com/i/web/status/1…
Всем привет. Новый день - новая тема. Сегодня мы будем говорить про ФП.
ФП это не сложно и все мы можем его использовать прямо сейчас. Для этого не надо знать что такое функторы, монады и… twitter.com/i/web/status/1…
И так, как проще покорить Эверест? Одним прыжком или короткими шагами? Думаю ответ очевиден. Так же и с ФП. Да в принципе с чем угодно.
Шаг1. Чистые функции. Не пишите методы которые изменяют состояние чего либо. Все необходимое передается в аргумента… twitter.com/i/web/status/1…
Шаг2. Иммутабельность. Мы стараемся делать наши данные максимально неизменяемыми где только можно. В идеале у нас в… twitter.com/i/web/status/1…
Шаг3. Замыкания. Мы их используем? Осталось раскрепоститься и использовать их более активно. Возвращать их из функц… twitter.com/i/web/status/1…
Пример замыканий 1. Мы написали обертку для UItextField, заменив стандартное делегирования на замыкания. Но у нас ч… twitter.com/i/web/status/1…
Пример замыканий 1. У нас есть метод работающий с "self", возникает необходимость передать его в качестве замыкания… twitter.com/i/web/status/1…
Шаг4. Функции высшего порядка. Их мы тоже используем и пишем. Как правило все асинхронные вызовы комплектуются ФВП. Особо и добавить нечего.
Шаг5. Использовать рекурсию. Не везде. Хасель не имеет циклов и там рекурсия не имеет аналогов. У нас аналоги есть.… twitter.com/i/web/status/1…
Шаг6. Функторы. Понять что мы уже работаем с функторами (Optional, Array, Result, ...). Понять что это не сложно. И… twitter.com/i/web/status/1…
Шаг7. Каррированные функции. Мы можем переписать свои функции так, что бы вместо получения нескольких аргументов он… twitter.com/i/web/status/1…
В хаскеле все функции каррируются. Но у нас не так. Да и это нам не к чему. Каррированные функции удобный инструмен… twitter.com/i/web/status/1…
Так же следует уточнить, что этот и последующее шаги я не могу отнести к категории "можем использовать прямо сейчас… twitter.com/i/web/status/1…
Шаг8. Понять что мы уже используем ФП. Серьезно. То что я описал и есть ФП. На этом можно остановиться. Или же можн… twitter.com/i/web/status/1…
Штука в том, в функциональных языках все строиться на правилах математики, функторах и операций над ними (не поддер… twitter.com/i/web/status/1…
Но как говориться если очень хочется то можно. И если я вас не утомил, то ставьте лайки. Мы рассмотрим пару примеро… twitter.com/i/web/status/1…
Я вчера ушел не попрощавшись и не закрыв тему. Тем не менее небольшое количество лайков набралось, а значит кому то… twitter.com/i/web/status/1…
Как вы помните. Технически, в коре ФП лежат функторы (контейнеры содержащие значение). Я добавил в проект библиотек… twitter.com/i/web/status/1…
Первый оператор <^>. Он работает аналогично map. То есть применят замыкание к optional. Если значение есть мы получ… twitter.com/i/web/status/1…
Но что, если наша функция которую мы применяем, сама может вернуть Optional? В результате мы получит двойной Option… twitter.com/i/web/status/1…
Хотелось бы избавиться от этой матрешки? На помощь прийдет монада (-<<). Она работает аналогично flatMap. pic.twitter.com/WLqUkfNCJU
Но самое интересное, то что можно функции группировать. Даже на такой манер как показано ниже. pic.twitter.com/jg9LOkgJDt
А что если я хочу сложить два опшенала? на помощь прийдут каррированные функции и аппликативные функторы (это как ф… twitter.com/i/web/status/1…
Подводя итог. Ничего страшного в ФП нет. Все это (кроме крутых операторов) у нас есть и используется. И термины не… twitter.com/i/web/status/1…
А сегодня мы поговорим про удаленку.
Я живу в Красноярске, а работаю Москве. Начинал я это дело постепенно. Немного фрилансил еще работая в РЖД. Постепе… twitter.com/i/web/status/1…
➕ Я просыпаюсь в 7:40, а в 8:00 уже выпил кофе и начал работать. Не надо выходить на мороз зимой. Не надо трястись… twitter.com/i/web/status/1…
Мне часто задают вопросы. Как ты рано просыпаешься? Как заставляешь себя работать? Не знаю. Для меня это естественн… twitter.com/i/web/status/1…
Про 8 часов. Сложно почувствовать это время. Иногда кажется что только начал работать, а время вышло.Реже бывает на… twitter.com/i/web/status/1…
Кстати пока я пишу твиты я таймер выключаю. Суммарно за день это отнимает много времени. По этому на этой неделе мо… twitter.com/i/web/status/1…
Еще один интересный момент. Конец рабочего дня. Если меня не отвлекают (что бывает часто), время кончается в 16:30-… twitter.com/i/web/status/1…
Про часовой пояс. Из за того что я жаворонок и живу в +4 от Мск. разрыв с командой у меня доходит до 7 часов.
➕Ник… twitter.com/i/web/status/1…
В целом я стараюсь сделать так что бы команда не чувствовала дискмофорта при работе со мной. Например если могу отв… twitter.com/i/web/status/1…
Само общение с командой проходит в чатах и звонках. Это довольно комфортно. Если в офисе вам надо встать и подойти… twitter.com/i/web/status/1…
Кроме личного общения есть встречи. Здесь все не так радужно. Команда как правило собирается в переговоре и мне час… twitter.com/i/web/status/1…
Мы уже дискутировали на этот счет. И я говорил, что эти проблемы решаются. Но для их решения, удаленные сотрудники… twitter.com/i/web/status/1…
На моих часах 14:56. Офис понемногу просыпается)
А еще когда ваш коллега приходит в офис, он не позвонит вам что бы пару минут поболтать перед началом рабочего дня.… twitter.com/i/web/status/1…
При работе дома. Вы сами отвечаете за рабочее место
➕ Вы купите тот ПК, стол, стул какие хотите, а не те что предло… twitter.com/i/web/status/1…
А еще нужно рабочее место. Сейчас это зал. И это неудобно, не мне, а семье. Они обходят его стороной, что бы не меш… twitter.com/i/web/status/1…
Про социализацию. С тех пор как начал работать дома, стал чаще выходить из дома отдыхать. У меня есть семья. Вместо… twitter.com/i/web/status/1…
В итоге я не могу сказать что я что то однозначно потерял. Тут скорее плюс на минус. Когда офисный работник без сил… twitter.com/i/web/status/1…
Попросил фото стола без приукрас. Такую и сделал. Просто откатился. Ничего особенного в нем нет. Кроме топового iMa… twitter.com/i/web/status/1…
Возникла неточность. 8 лет назад был куплен стол. iMac последний.
Еще один вопрос который мне часто задают - "Как научиться программировать под iOS, что бы как ты, сидеть дома и ничего не делать"
Я говорил, что утром могу сходить в кино? Так вот немного привыкаешь смотреть фильм в день премьеры, в двоем с жено… twitter.com/i/web/status/1…
Пожалуй я не знаю что еще рассказать. Удалена не фриланс. Это как в офисе, только дома. Или как дома, только в офис… twitter.com/i/web/status/1…
Наброшу как я не в тему. Почему большенство знакомых мне разработчиков добавляют к названию контроллеров "ViewContr… twitter.com/i/web/status/1…
Всем привет! Сегодня поговорим про аутсорс.
Продолжу капитанствовать. Аутсорс бывает разный, как и продуктовая разработка. По этому я не хочу устраивать их сор… twitter.com/i/web/status/1…
Для меня самое главное отличие между аутсорсом и продуктом в проекте. На продукте он один. Будешь работать там 5 ле… twitter.com/i/web/status/1…
Началось все ещё со времён фриланса. Задачи были простые но разнообразные. Сегодня ты работаешь с php, завтра с rub… twitter.com/i/web/status/1…
Бизнес задачи так же отличались. Погрузиться в во внутреннюю кухню кондитерской, риэлтеров, автошколы и так далее.… twitter.com/i/web/status/1…
А потом я начал заниматься продуктом. По началу все было так же круто. Новый проект, новые задачи. Но спустя 1-1,5… twitter.com/i/web/status/1…
Напоминает бег на месте. Люди работают, код пишется, изменений не видно. Нет они конечно есть, но такие как ты пили… twitter.com/i/web/status/1…
А еще я люблю аутсорс, за то что там на VIPER не пишут) Штука. Некоторые считают, что в аутсорсе нельзя использоват… twitter.com/i/web/status/1…
Вы что предпочитаете?
Повторю вечерний вброс.
Зачем использовать поды в 2018, когда есть картэж? Не засоряет проект, не персобирает зав… twitter.com/i/web/status/1…
Еще мне кажется что для длительной работе в проекте его нужно любить. Я бы с удовольствие работал над проектами свя… twitter.com/i/web/status/1…
Оказалось у меня была неверная информация. Литрес пилят не на аутсорсе.
Больше половины недели прошло. Пора выбирать 7ую тему. Накидывайте варианты.
Доброе утро! Сегодня будем говорить о онлайн курсах. Для тех кто пропустил, я декан iOS факультета в GeekBrains.
Кто такой декан в онлайн курсах? Это тимлид. То есть он преподает, но и видит картину в целом. Принимает решения о… twitter.com/i/web/status/1…
Он отвечает за факультативы. Если компания захочет, разместить у нас курс факультатив. То декан решает на сколько т… twitter.com/i/web/status/1…
Он собеседует преподавателей. Что бы не вышло, что человек написал hello world и уже пришел преподавать.
Он сотрудничает с отделом качества. Ученики пишут много отзывов. Часто просят каких то изменений. Часто простят диа… twitter.com/i/web/status/1…
Он общается с преподавателями. Погружает новичков, выдает рекомендации, как улучшить подачу материала и так далее.
Так же к декану могут обращаться ученики с вопросами или жалобами. Это довольно сложный момент. Так как не всегда у… twitter.com/i/web/status/1…
Как и у тимлида у декана много ограничений. То есть он не может просто взять добавить/удалить курс. Или переделать… twitter.com/i/web/status/1…
Начало преподавания было совершенно случайны. Увидел вакансию на популярном сайте, подумал "это интересный опыт, на… twitter.com/i/web/status/1…
Это был абсолютно новый для меня опыт. Мне казалось что все идет не так. Скучная презентация. Плохая подача материа… twitter.com/i/web/status/1…
Я записал тестовый урок. По нему не дали никакого фитбека, просто сказали "ок, теперь надо провести публичный вебин… twitter.com/i/web/status/1…
После вебинара опять никакого фитбека. Никто даже не связался, сказать "Ок". Прошло больше месяца. Преподавать ника… twitter.com/i/web/status/1…
Но не забыли. Мне назначили курс objc. С тех пор прошло почти два года. Я все еще преподаю, и теперь мне это чертов… twitter.com/i/web/status/1…
Настало время шикарных историй. Начиная преподавать, понимаешь, что рассказать тему мало. Даже с хорошими примерами… twitter.com/i/web/status/1…
Вы должны передать всю радость, крутость или боль от того что показываете. Ученики запомнят не то как правильно исп… twitter.com/i/web/status/1…
Как сказал один парень в статье на хабре "Я понял, что мне нельзя лажать". И это правда. Ваши слова непреложная ист… twitter.com/i/web/status/1…
Docendo discimus (Обучая, учимся сами). Почувствовать на себе смысл этой фразы бесценно. Как часто бывает, что знае… twitter.com/i/web/status/1…
Я провожу много часов копая в глубь казалось бы простых вещей. Проверяя расплывчатые утверждения экспериментально,… twitter.com/i/web/status/1…
Это все помогает отвечать на вопросы учеников. Они часто смотрят на проблему не стандартно, под другим углом. Их не… twitter.com/i/web/status/1…
Все эти как и почему заставляют мозги работать, держат в тонусе и развивают преподавателя лучше чем он учеников.
В книге "Идеальный программист" (goo.gl/EZE5Mz) упоминаются "каты". Это последовательность базовых движен… twitter.com/i/web/status/1…
Идея хорошая. Но попробуйте заставить себя сидеть вечерами в 100ый раз решая одну и тут же простую задачу. Вас на д… twitter.com/i/web/status/1…
В результате этих повторений, вы видите какие то мелкие шероховатости, нестыковки, шорткаты, которых не видели рань… twitter.com/i/web/status/1…
С профитами для преподавателя мы разобрались. Что для студентов? Рекомендую ли я им идти на курсы? Ведь эта тема ро… twitter.com/i/web/status/1…
Для начала определимся что такое такое курсы? Традиционно все делят образование на три направления. Самообразование… twitter.com/i/web/status/1…
Дело в том, что существует понятие образовательное учреждения. В него выходят университеты, институты, академии, те… twitter.com/i/web/status/1…
Размышляя я пришел к выводу, что все тлен. Все виды ОУ в России ничем не отличаются, кроме типа удостоверения об ок… twitter.com/i/web/status/1…
Бесспорно МГУ отличается от месячных курсов 1с. Но далеко не всегда так просто взять два ОУ и определить где же ты получишь лучшие знания.
Ключевой особенностью ОУ является наличие программы (читай плана обучения), преподавателя и кнута. При этом самообр… twitter.com/i/web/status/1…
Глядя на ситуацию под этим ракурсом стоит задать вопросы нужен ли вам:
план и насколько подробный
наставник и в как… twitter.com/i/web/status/1…
Исходя из этого можно сделать выбор.
Если у вас все хорошо с само организацией, коммуникацией, мотивацией, поиском… twitter.com/i/web/status/1…
Если вам нужен начальный план, наставник на первых парах, и коротенький кнут в виде условных требований к дз, распи… twitter.com/i/web/status/1…
Если вы вообще в себя не верите или хотите продлить детство на 4-6 лет (что в целом не плохой вариант) идите в унив… twitter.com/i/web/status/1…
Кстати. Университет еще хорошо работает для тех кто еще ничему не научился, но уже хочет переехать из свой деревни… twitter.com/i/web/status/1…
Вообще у нас учатся разные люди. Есть те кто уже работает разработчиком. Их правда очень мало. Как правило это джун… twitter.com/i/web/status/1…
Что бы вы не рассматривали это как рекламу, преподавателей из топовых фирм у нас не так много)
Есть люди из ИТ, но не разработчики. Им комфортнее всех учиться. С одной стороны они в теме. Их не пугает консоль,… twitter.com/i/web/status/1…
Следующая категория это люди не из IT вообще. Это могут быть студенты или взрослые люди с работой и семьей. Примеча… twitter.com/i/web/status/1…
Тут легкость обучения зависит от двух факторов. Наличие инженерного опыта мышления и готовности учиться.
Наличие инженерного образа мышления вообще отдельная тема. Приходит к тебе учиться человек. Его видно. По тому каки… twitter.com/i/web/status/1…
При решении задачи, он экспериментирует. Пробует изменить то что ему показали, "собрать из кубиков что то свое". А еще ему это нравится.
Без инженерного склада, напротив. Четко следует примеру, при любом не совпадении теряется. Дело даже не программиро… twitter.com/i/web/status/1…
Почему оно не работает? Вот ошибка, что мне делать? Я сделал как на уроке, но результат другой? Они никогда не эксп… twitter.com/i/web/status/1…
Желание учиться тоже разное. Одни открыты к знаниям. Слушают, задают вопросы, делают задания даже если получается.… twitter.com/i/web/status/1…
Я понимаю, что в этом с одной стороны виноват агрессивный маркетинг, который хоть и не явно но создает именно такое… twitter.com/i/web/status/1…
Надо закругляться. Спрашивали, про статистику кто устроился кто нет. Устраиваются все кто хочет. Все кто не хотят о… twitter.com/i/web/status/1…
Пятничный опрос. Пик Балмера работает?
Всем ленивых выходных! Сегодня поговорим про саморазвитие
Факт. На самом деле ваша специализация в IT никуда не летит бешеными темпами. Ничего нового каждый день учить не на… twitter.com/i/web/status/1…
Что бы говорить о развитии надо понять основу. Что делает программиста программистом? Это умение строить системы (В… twitter.com/i/web/status/1…
Система – это совокупность элементов или отношений, закономерно связанных друг с другом в единое целое, которое обл… twitter.com/i/web/status/1…
Так что наше приложение - система. UILabel - система. И даже ваш репозиторий на gitlab с кодом вашего приложения и… twitter.com/i/web/status/1…
Короче умение работать с системой это две вещи. Навык декопозиции/агрегации. И количество компонентов вашей предмет… twitter.com/i/web/status/1…
Так как все вокруг системы, включая языки программирования. Имея навык декомпозиции/агрегации вы можете разобрать о… twitter.com/i/web/status/1…
Так вы можете ну основе компонентов цикл, массив, вывод в консоль, оператор присваивания, переменная, целое число.… twitter.com/i/web/status/1…
Более сложные системы требуют более сложного навыка. Очевидно что система суммирования целых чисел требует меньшей… twitter.com/i/web/status/1…
Второе это знание компонентов систем. Это и языки программирования, фреймворка и Чем больше компонентов вы знаете,… twitter.com/i/web/status/1…
Проблема в том что в it не любят границ, а любят фулстек. Если мы не ожидаем что хороший кардиолог будет ещё и эксп… twitter.com/i/web/status/1…
Развитие в компонентом плане это добавление свой библиотеки компонентов. Новые операторы, языки, все что угодно. Уз… twitter.com/i/web/status/1…
Хранилище не безлимитно. Пополнение библиотеки требует времени и сил. Выгода не всегда соизмерима затраченным усили… twitter.com/i/web/status/1…
И ваша ценность повысится только если вы встретите должность где понадобятся ваши текущие навыки + Пайтон. А вы ее… twitter.com/i/web/status/1…
Это похоже, на компьютерную игру и древо развития. Надо брать компоненты сочетающиеся с друг другом. Например бой н… twitter.com/i/web/status/1…
С развитием навыка все сложнее. Нет каких то четких критериев. Да вы можете заучить solid, kiss, oop, dry, gof. Это… twitter.com/i/web/status/1…
Больше различных вариантов, больше повторний одних и тех же. Построение с нуля, развитие поддержка. Весь это опыт будет двигать вас вперёд.
И в отличии от развития компонентного, здесь нет лишних знаний. Мобильному разработчику не будет лишним посмотреть… twitter.com/i/web/status/1…
Развитие в целом очень не определенное. Нельзя четко измерить навык или знание компонентов. Нельзя так же определит… twitter.com/i/web/status/1…
Если кто ещё не понял. То списка что должен знать iOS мидл или синьор я не дам. Его вообще не существует.
Время подводить черту пространных рассуждений. Развиваться надо, но это не потому что у нас в IT все меняется, а по… twitter.com/i/web/status/1…
Всем привет. Сегодня мы поговорим о тестах.
Тесты чертовски сложная тема. Я не встречал ни одной статьи или книги, которая могла бы пролить свет на то как же п… twitter.com/i/web/status/1…
Возьмем функцию деления func div(a: Int, b: Int) -> Int. Я могу протестировать ее так div(a: 10, b: 2) == 5. Это ми… twitter.com/i/web/status/1…
И вот у меня простая функция. Она выполняет одну операцию. Там нет состояний, ветвлений, зависимостей. Но что бы уб… twitter.com/i/web/status/1…
Стоп, скажите вы. Не надо так упарываться. Хватит двух тестов. Но где то внутри меня шепчет голос. "Зачем тратить в… twitter.com/i/web/status/1…
А вы удовлетворены своими тестами?
Вся штука в дуальности тестов. С одной стороны это код, с другой требования к коду. Они не подчиняются никаким зако… twitter.com/i/web/status/1…
Но больше всего тесты усложняют зависимости. Если код зависит от другого его надо замокать. Если метод принимает сл… twitter.com/i/web/status/1…
А потом у вас изменились требования...
В общем я был не против иметь секретаря, который бы занимался только тем что фигачил для меня тестовый бойлерплейт.… twitter.com/i/web/status/1…
Я пробовал использовать Фреймворки для моков и код генерацию. Но ничего из этого так и ее смогло удовлетворить мои потребности.
Если все плохо, как писать тесты? Все просто, от тестов нужно чувствовать профит. Для себя я два варианта получения… twitter.com/i/web/status/1…
И так я остановился на том, что тесты давать профит. Сначала пройдёмся по второму кейсу. Писать код быстрее. Вы мо… twitter.com/i/web/status/1…
Как я говорю своим ученикам. Можно всего за 30 секунде вписать тест который поможет мне убедиться в том что запрос… twitter.com/i/web/status/1…
Можно пойти ещё дальше. Делить своё приложение на модули, и проверять их корректность тестами. Запуск тестов на а м… twitter.com/i/web/status/1…
Первый же вид выгоды это ловля багов. Бывает что у вас сложная логика, сложные тесты, куча краевых случаев, бойлер… twitter.com/i/web/status/1…
Подводим черту. Тесты имеют высокий порог входа. Написать тест просто, написать хороший тест сложно. Тесты помогают… twitter.com/i/web/status/1…
И пришла пора нам прощаться. Это была безумно интересная неделя для меня, надеюсь и для вас тоже. Всем спасибо за в… twitter.com/i/web/status/1…