Код, который не может не работать
90
подписчиков
Привет! Меня зовут Сергей Азаров, я разработчик. Делюсь мыслями о написании кода и процессе разработки. …
Матрица оценки задач, 2 фактора для прогноза времени выполнения
Одним из факторов успешной работы команды разработки является эффективность оценки времени выполнения задач. Это в том числе сильно влияет и на бизнес, т.к. прогноз времени выполнения необходим для планирования поставки функциональности пользователю. Принято измерять задачи в часах или в стори пойнтах (Story Points). Сама оценка может проводится индивидуально разработчиками, тим-лидом либо на активностях — типа покера планирования (Planing Poker). Если в плане оценки часами все понятно — ставим ожидаемое время выполнения задачи в измеряемых единицах — часах...
Почему эффективный разработчик делает в 3 раза больше неэффективного
На мое удивление, я часто видел, как разработчики слишком много операций производят при помощи мыши. О, что во мне творилось во время этого… Короткий и простой совет сразу — обязательно изучайте горячие клавиши. Минимизируйте работу с мышью. Мышь — это контрпродуктивно. Используя горячие клавиши и некоторые манипуляции с кодом, например последовательное выделение, перемещение курсора в начало и конец строки, перемещение курсора по словам, перенос строки или группы строк, дублирование строки, выделение...
8 нарушений потоков в приложении, которых следует избегать
Это Кеша. Кеша — начинающий разработчик. Кеша хочет узнать, как работать с кодом легко. Давайте поможем Кеше не нарушать потоки в его приложениях. В предыдущих статьях я говорил о потоках в приложении и потоках в команде, а так же к чему приводит их нарушение. Сейчас я поделюсь классификацией нарушений потоков. Для более простого понимания, я буду использовать понятные аналогии, хотя на самом деле эти явления — энергетические. В самом конце я расскажу как это работает. Итак. Нарушение, когда некий объект пронизывает своими щупальцами все приложение...
Абстракции. Во сне и наяву.
Пожалуй, абстракция — это самое непонятное, что появляется перед разработчиками в процессе освоение славного ремесла программирования. Это Кеша. Кеша начинающий разработчик. Кеша хочет стать хорошим разработчиком. Давайте поможем Кеше разобраться с абстракциями. Введем определение абстракции. Хотя для определения это пока не очень четко сформулировано. Назовем это смыслом. Абстракция — это то, что должно сделать нашу программистскую жизнь проще и понятней, добавив семантически емкое утверждение для использования в клиентском коде...
Собран тестовый анимационный слайд. Потрачу еще некоторое время на работу с абстракциями для более удобной работы и соберу первый блок инфографики для курса «Анатомия приложения». Кстати, на данном слайде один из тезисов курса 😊
Добавил анимацию перемещения. Рассмотрел вариант JS-анимации и CSS. Понятно, JS-вариант не годится для плавных анимаций, в силу своего устройства. Поэтому будет использоваться CSS-вариант. С самим программным использованием анимации еще придется поработать, в плане — как ее назначать, как строить animation-chaining и т.д. Там много вопросов и деталей, поэтому чтобы получить хороший интерфейс нужно будет посидеть с задачей. Принципиально же, для моих целей движок готов, буду пробовать делать продуктовые задачи 😊
Тест геометрической анимации перед началом внедрения анимации перемещения. Да и вообще возможностью перемещения 😄 Скорее всего после следующего шага уже попробую сделать что-то прикладное. Например, пару страниц презентации.
Рефакторинг или битва за эффективность
В этой статье хочу затронуть актуальную и так любимую разработчиками тему рефакторинга кода. Наверняка вы сталкивались с таким термином или даже применяли на практике. Рекомендую к прочтению одноименный труд Мартина Фаулера, кстати. Лично я очень люблю рефакторинг, однако у меня особое к нему отношение. На мой взгляд, выделять специально на него время имеет смысл только тогда, когда нужно разобрать какой-то легаси проект, либо вы впервые сталкиваетесь с проектом и видите объективные причины на работу с кодовой базой...
#презентатор — Рендеринг динамики
Статику мы рассмотрели в прошлом посте, а теперь давайте посмотрим что произойдет, если оживить элементы. Возьмем исходный проект. И теперь начнем менять в динамике скейл каждого компонента, угол поворота и цвет фона. Получим через какое-то время набор компонентов, напоминающий цветные стикеры на доске. Много стикеров. Надеюсь, это не скрамборд с багрепортами 😄 Теперь увеличим диапазон скейла и угла поворота. Нам это нужно для того, чтобы более наглядно увидеть текущий вариант работы движка рендеринга...
#презентатор — Рендеринг статики
Рассмотрим такой исходный вариант сцены. Можно это рассмотреть как проект монтажа плитки, но в данном случае это ряд компонентов типа Box, размещенных внутри компонента Flex. С определенными настройками. Пока особо ничего интересного. Теперь давайте добавим случайную обводку в случайном порядке. Уже интересней. А теперь увеличим диапазон ширины обводки. Стало еще фактурней. А мы всего поменяли один параметр. Давайте поменяем еще парочку параметров 👀 Всего лишь добавили скругление 50% и рандомный цвет обводки...
#презентатор — Устройство
Расскажу для начала, что от него жду и зачем все вообще. Мне нужна система, которая будет показывать различные объекты на сцене: тексты, прямоугольники, стрелочки, картинки и т.д. Я хочу описывать сцену программно. Это даст возможность строить сцену при помощи циклов, получать интересные эффекты (генеративная графика типа), строить пресеты, фасады и другие интересные штуки. А кроме того, конвертировать в различные форматы. Мне нужно заставить элементы двигаться по экрану. А также плавно появляться и исчезать...
Что сейчас в работе
Всем привет! Что-то давно ничего не публиковал. Я пропал, но не пропал на самом деле. Расскажу немного о том, что сейчас в работе. «Код, который не может не работать» — это не просто название канала, это целая философия, над систематизацией которой я сейчас и работаю. В данный момент написал около 100 черновых страниц, охватив 25% – 30% принципов и концепций. Версию 1.0 проводил в конце 2022 года в формате очных онлайн-вебинаров. В обновленном курсе хочу более глубоко осветить некоторые концепции, убрать лишнее и подготовить новые примеры...