Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Реалистичный симулятор игры бильярд. Играйте в Бильярд 3D: Русский бильярд, как в настоящей бильярдной!

Бильярд 3D: Русский бильярд

Симуляторы, Спорт, Настольные

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Программирование + Программное обеспечение

С этим тегом используют

IT Программист IT юмор Разработка Python Картинка с текстом Юмор Компьютер Windows Программа Софт Помощь Все
79 постов сначала свежее
ebytna12
ebytna12
9 месяцев назад

Рабочее место - арт нейросети⁠⁠

Рабочее место - арт нейросети Арты нейросетей, Компьютер, Программа, Windows, Программное обеспечение, Монитор, Программирование, Рабочее место
Показать полностью 1
Арты нейросетей Компьютер Программа Windows Программное обеспечение Монитор Программирование Рабочее место
1
4578
logotipper
logotipper
Логотипер. Брендинг на грани
9 месяцев назад

Программистский Брендинг на грани⁠⁠

Сегодня собрал тематическую подборку в честь Дня программиста

Программистский Брендинг на грани Юмор, Креатив, Дизайн, Маркетинг, Deepfake, Каламбур, Игра слов, Идея, Боги маркетинга, Графический дизайн, Бренды, Логотип, Нейминг, Слоган, Программирование, Программист, Программное обеспечение, IT юмор, Подборка, Длиннопост
Программистский Брендинг на грани Юмор, Креатив, Дизайн, Маркетинг, Deepfake, Каламбур, Игра слов, Идея, Боги маркетинга, Графический дизайн, Бренды, Логотип, Нейминг, Слоган, Программирование, Программист, Программное обеспечение, IT юмор, Подборка, Длиннопост
Программистский Брендинг на грани Юмор, Креатив, Дизайн, Маркетинг, Deepfake, Каламбур, Игра слов, Идея, Боги маркетинга, Графический дизайн, Бренды, Логотип, Нейминг, Слоган, Программирование, Программист, Программное обеспечение, IT юмор, Подборка, Длиннопост
Программистский Брендинг на грани Юмор, Креатив, Дизайн, Маркетинг, Deepfake, Каламбур, Игра слов, Идея, Боги маркетинга, Графический дизайн, Бренды, Логотип, Нейминг, Слоган, Программирование, Программист, Программное обеспечение, IT юмор, Подборка, Длиннопост
Программистский Брендинг на грани Юмор, Креатив, Дизайн, Маркетинг, Deepfake, Каламбур, Игра слов, Идея, Боги маркетинга, Графический дизайн, Бренды, Логотип, Нейминг, Слоган, Программирование, Программист, Программное обеспечение, IT юмор, Подборка, Длиннопост
Программистский Брендинг на грани Юмор, Креатив, Дизайн, Маркетинг, Deepfake, Каламбур, Игра слов, Идея, Боги маркетинга, Графический дизайн, Бренды, Логотип, Нейминг, Слоган, Программирование, Программист, Программное обеспечение, IT юмор, Подборка, Длиннопост
Программистский Брендинг на грани Юмор, Креатив, Дизайн, Маркетинг, Deepfake, Каламбур, Игра слов, Идея, Боги маркетинга, Графический дизайн, Бренды, Логотип, Нейминг, Слоган, Программирование, Программист, Программное обеспечение, IT юмор, Подборка, Длиннопост
Программистский Брендинг на грани Юмор, Креатив, Дизайн, Маркетинг, Deepfake, Каламбур, Игра слов, Идея, Боги маркетинга, Графический дизайн, Бренды, Логотип, Нейминг, Слоган, Программирование, Программист, Программное обеспечение, IT юмор, Подборка, Длиннопост
Программистский Брендинг на грани Юмор, Креатив, Дизайн, Маркетинг, Deepfake, Каламбур, Игра слов, Идея, Боги маркетинга, Графический дизайн, Бренды, Логотип, Нейминг, Слоган, Программирование, Программист, Программное обеспечение, IT юмор, Подборка, Длиннопост
Программистский Брендинг на грани Юмор, Креатив, Дизайн, Маркетинг, Deepfake, Каламбур, Игра слов, Идея, Боги маркетинга, Графический дизайн, Бренды, Логотип, Нейминг, Слоган, Программирование, Программист, Программное обеспечение, IT юмор, Подборка, Длиннопост

Сбрендил для вас,
Антон Логотиппер

Мои сообщества:
Telegram Брендинга на грани
ВК Брендинга на грани
Telegram Logotipper.Agency
ВК Logotipper.Agency

Показать полностью 10
[моё] Юмор Креатив Дизайн Маркетинг Deepfake Каламбур Игра слов Идея Боги маркетинга Графический дизайн Бренды Логотип Нейминг Слоган Программирование Программист Программное обеспечение IT юмор Подборка Длиннопост
154
13
tproger.official
tproger.official
9 месяцев назад
Типичный программист

Экзистенциальный вопрос⁠⁠

Экзистенциальный вопрос IT юмор, Программирование, IT, Программист, Картинка с текстом, Программное обеспечение, Разработка
Показать полностью 1
[моё] IT юмор Программирование IT Программист Картинка с текстом Программное обеспечение Разработка
2
user5603520
user5603520
9 месяцев назад
IT минувших дней

Как искусственный интеллект меняет будущее программирования: ключевые тренды и перспективы⁠⁠

С развитием технологий искусственный интеллект (ИИ) становится неотъемлемой частью процесса программирования. От автоматизации написания кода до анализа данных и тестирования — ИИ трансформирует привычные подходы к разработке программного обеспечения, меняя правила игры для программистов и компаний по всему миру. В этой статье рассмотрим, как именно ИИ влияет на мир программирования и почему это важно для каждого разработчика.

1. Автоматизация написания кода и повышение продуктивностиСовременные ИИ-инструменты, такие как GitHub Copilot и Ghostwriter, предоставляют разработчикам возможность ускорить написание кода. Они предлагают автозавершение строк, исправляют ошибки и даже создают целые блоки программного кода. Это позволяет программистам сосредоточиться на решении более сложных задач, избавляя их от рутинных процессов. В результате значительно повышается продуктивность и сокращается время на выполнение проектов.

2. Оптимизация и улучшение качества кодаИИ помогает находить и исправлять ошибки на ранних стадиях разработки. Множество современных ИИ-помощников выполняют анализ кода, выявляют потенциальные уязвимости и предлагают пути их устранения. Это не только повышает безопасность приложений, но и значительно улучшает их стабильность. Автоматизированное тестирование с помощью ИИ позволяет выявить критические ошибки задолго до того, как продукт поступит в эксплуатацию.

3. Персонализированное обучение и наставничествоДля начинающих разработчиков и студентов ИИ-инструменты стали настоящими наставниками. Платформы, такие как LeetCode и CSS Diner, интегрированные с ИИ, позволяют учиться программированию в интерактивном формате. Пользователь получает обратную связь в реальном времени, а обучение адаптируется под его уровень знаний и скорость освоения материала. Это делает процесс обучения более эффективным и увлекательным, помогая быстрее освоить ключевые навыки.

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

5. Разработка без кода и low-code платформыПоявление no-code и low-code платформ расширяет границы программирования, делая его доступным не только разработчикам, но и специалистам без глубоких знаний в кодировании. С помощью ИИ такие платформы помогают пользователям создавать рабочие приложения, сайты и даже сложные бизнес-решения, используя визуальные интерфейсы и готовые шаблоны. Это позволяет бизнесу быстрее реализовывать идеи и выводить продукты на рынок.

6. Влияние ИИ на проектирование интерфейсовПроектирование пользовательских интерфейсов (UI/UX) становится более персонализированным благодаря ИИ. Современные инструменты анализа поведения пользователей помогают создавать интерфейсы, которые не только визуально привлекательны, но и максимально удобны в использовании. ИИ-анализ данных о поведении пользователей позволяет улучшать продукты на основе реальных взаимодействий.

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

Показать полностью
Искусственный интеллект Программирование IT Программное обеспечение Telegram (ссылка)
4
6
Mathos
Mathos
9 месяцев назад

Где я создаю изображения графов, полезный инструмент⁠⁠

http://magjac.com/graphviz-visual-editor/

Где я создаю изображения графов, полезный инструмент Программирование, IT, Инструменты, Программное обеспечение, Web

Вот такой полезный web-инструмент. Изображение можно выгружать в формате SVG.

Программирование IT Инструменты Программное обеспечение Web
3
A1ex42
11 месяцев назад

Ответ на пост «Как я превратил обычный бизнес в IT компанию, читая книги»⁠⁠1

Спасибо за текст. Легко читается, перешел на виси, там тоже интересно.

Хочу дать совет. Фраза читайте книги такого то автора звучит ужасно. А второй раз за текст и про другого автора - ещё хуже. Лучше, наверное так: Если хотите получить правильное понимание маркетинга, начните со справки Яндекс директ https://yandex.ru/support/direct/campaign-master/about.html. Кстати, по моему это хуёвый совет.

И я читал пару книг, про которые Вы говорите, что они Г, и согласен с тем, что из них сложно что то извлечь. Но, "Договориться можно обо всём" во первых заставляет думать в процессе чтения, во-вторых доносит мысль, что отказ от переговоров, это самое большое поражение.

И на Виси вы хвалите "Социальный конфликт. Эскалация, пути разрешения". Возможно здесь стоило сделать акцент только на одной книге?

Бизнес IT Маркетинг Предпринимательство Малый бизнес Клиенты Услуги Сервис Программирование Программное обеспечение Длиннопост Мат Ответ на пост Текст
3
mlenzovet
mlenzovet
11 месяцев назад

Как я превратил обычный бизнес в IT компанию, читая книги⁠⁠1

Как я превратил обычный бизнес в IT компанию, читая книги Бизнес, IT, Маркетинг, Предпринимательство, Малый бизнес, Клиенты, Услуги, Сервис, Программирование, Программное обеспечение, Длиннопост

Началось с того, что я феерически прогорел при попытке создать IT компанию с нуля. Это произошло в дремучие года: у меня были длинные волосы, оранжевая рубашка, один из первых огромных смартфонов и белоснежный микро-ноутбук с большим черным модемом. Поэтому я мог сидеть в интернете прямо в Макдачной, что в те годы было реже, чем встретить Феррари на улице. И это почему-то приманивало ко мне разные интересные личности, они кидались ко мне чуть завидев издалека с кучей вопросов про компьютеры. И я почему-то решил, что было бы круто организовать телефонные консультации для пользователей компьютеров.

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

Тех - поддержка

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

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

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

Маркетинг и продажи

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

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

Одна из любимых книг: Джэк Траут и Эл Райс “Позиционирование: битва за умы”

Да-да, у термина “Позиционирование” есть авторы. Ваш бизнес, ваш продукт, ваш бренд - это всего лишь восприятие в голове покупателя. Из этого следует несколько интересных выводов, которые мне очень помогли при строительстве ИТ компании:

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

- Многим компаниям выгоднее вкладываться в продажи, а не в узнаваемость. Так как знать и покупать - это не одно и тоже.

- Лучше всего работают прямые понятные сообщения. Покупатели не понимают намеков.

- Не нужно пытаться быть всем для всех. Нужно уметь фокусироваться на чем-то одном и как можно более ясно это доносить.

- Не стоит повторять за лидерами рынка. Нужно вести себя совсем наоборот, как партизан. Кстати книгу “Партизанский Маркетинг” я тоже прочел и был очень разочарован.

Вообще на удивление в курсах и книгах по маркетингу оказалось очень мало полезного и практического: “Маркетинг” Филипа Котлера, “Фиолетовая Корова” Сета Година, “Стратегия голубого океана” Рене Моборн да и многие менее популярные книги содержат только какие-то пространные рассуждения. Если взять учебник по маркетингу, то ситуация не лучше: AIDA, 4P, SWOT, USP - авторы хоть сами верят, что это вообще работает?

Единственное, что вызывает доверие это книги Траута, я прочел все и мне даже удалось с ним немного переписываться незадолго до его смерти.

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

Понятно, что одни каналы коммуникации будут давать лучше выхлоп, чем другие. Также будет отличаться выхлоп от разных маркетинговых материалов и коммуникаций. Казалось бы: просто померяй это все и оптимизируй. Но в реальности это умеет делать только небольшая часть компаний. Скажу вам по секрету, во многих крупных, известных, международных компаниях измерения влияния маркетинга на продажи до сих пор не внедрены. А если и внедрены, то очень фрагментарно.

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

Когда я искал ответы, то наткнулся на совершенно новую область, которая меня поразила в самое сердце:

Поведенческая экономика и маркетинговый бизнес

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

Слыхали про “Невидимую руку рынка”? “Рыночек все порешает, всех поставит на место”. А все благодаря чему? Ведь вокруг много людей, все они считают, все они выискивают наиболее рациональные, наиболее оптимальные и выгодные экономические решения. Поэтому достаточно только появиться хоть какой-то возможности получить хоть мало мальскую выгоду - она сразу же будет использована. А поэтому мы можем считать бизнес-планы, маркетинговые-планы, строить ценообразование опираясь на то, что покупатель ведет себя рационально и предсказуемо.

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

1. Серия книг Канемана и Тверски: “Принятие решений в условиях неопределенности”, “Думай медленно, решай быстро”, “Шум”.

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

2. Серия книг Дэна Ариели: “Предсказуемая иррациональность”, “Позитивная иррациональность”, “Вся правда о неправде”:

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

Больше всего меня поразило “Нарушение транзитивности”. Студенткам предлагали кандидатуры парней попарно и предлагали выбрать. И получалось, что:

Как я превратил обычный бизнес в IT компанию, читая книги Бизнес, IT, Маркетинг, Предпринимательство, Малый бизнес, Клиенты, Услуги, Сервис, Программирование, Программное обеспечение, Длиннопост

Т.е. математика часто нарушается, когда люди что-то сравнивают попарно, да и в других случаях тоже.

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

3. Серия книг Роберта Шиллера: “Охота на простака”, “Иррациональный оптимизм”:

Тоже самое Роб наблюдает при поведении на финансовых рынках, на рынках недвижимости. Люди и компании плохо считают, плохо проверяют, плохо прогнозируют, поддаются сначала истерии спроса, а потом паническим продажам. Не удивительно, что финансовые пузыри надуваются и лопаются, мошенники этим часто пользуются.

4. Серия книг Джозефа Стиглица: “Ревущие девяностые”, “Цена неравенства”:

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

5. Серия книг Ричарда Талера: “Подталкивание”, “Новая поведенческая экономика”:

Все это наконец вместе собрал Ричард Таллер. Получилась идея “Либертарианского Патернализма”: мы понимаем, что ты плохо считаешь, часто делаешь плохой выбор, что подвержен эмоциям и ложным ожиданиям. Поэтому мы дадим тебе полную свободу выбора (мы ведь либертарианцы), но сделаем так, чтобы правильный вариант тебе было выбрать сильно проще, чем неправильный (мы ведь патерналисты).

Не хватает доноров органов? Никаких проблем: теперь все, кто получает права на мотоцикл автоматически становятся донорами органов (мы же патерналисты). Можно ли отказаться? Конечно, ты же всегда можешь заполнить специальное заявление на отказ от донорства органов и принести его нам (мы ведь либертарианцы).

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

6. По интернет-маркетингу самым полезным чтивом оказались инструкции к рекламным кабинетам сетей контекстной и таргетированной рекламы.

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

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

Было много экспериментов и открытий, особенно запомнившиеся такие:
1. Пользователь в браузере не видит дизайн.

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

2. Пользователь плохо читает текст в браузере:

Лучше всего, чтобы предложение было прямо в заголовке и лучше, чтобы самые важные слова были в начале первой строки. Поэтому витиеватые “продающие тексты” все только портят обычно.

3. На изменения написания пользователь реагирует хуже, чем на изменение сути. При этом длинные и скучные тексты ухудшают продажи.

4. Комменты почти никто не читает.

5. Разные ресурсы дают разный трафик, хотя аудитория пересекается, т.е. одни и те же люди на разных ресурсах ведут себя по-разному. Это нормально танцевать в клубе и скучно сидеть в клинике. И это нормально бесцельно листать картинки во Вконтакте и не на что не реагировать, а потом отправиться в Яндекс что-то покупать.
6. Если вирусное видео ничего не рекламирует, то оно ничего и не продает. А какие там в нем были отсылки - почти никто не заметит.

7. Если кто-то предлагает “красиво упаковать” ваш продукт или бизнес, скорее всего, из этого ничего не выйдет.

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

Т.е. продающие тексты, продающий дизайн, поисковый спам и реклама у блогеров сильно переоценены. Со времен Траута ничего не изменилось:
1. Либо вы с очень узким продуктом или услугой нацеливаетесь на узкую аудиторию. Но их мало и продажи невелики, зато маржа хорошая.
2. Либо звучите из каждого утюга, много тратите на рекламу и продажи, но очень низкомаржинальны из-за расходов на продвижение.

С большим удовольствием прочел все книги Траута и вам советую.

Разбор провала

И вот наконец все мои ошибки с тех-поддержкой стали как на ладони:
1. Ко мне подходили люди в кафе за консультацей по компам:

  • это не значило, что они готовы были за нее платить;

  • это не значило, что они готовы были мне звонить;

  • все это можно было легко и бесплатно выяснить прямо на месте, я мог бы просто дать им свой телефон.

2. Реклама и продажи:

  • если вам готовы за что-то платить, то нужно выяснить где такие люди еще ходят, куда смотрят, как принимают решения о покупке;

  • казалось бы люди ходят в Кафе и должны там заметить открытки. Но открытки лежат в специальных кармашках на входе. И открытки интересуют коллекционеров, а не тех кому нужна компьютерная помощь;

  • даже если бы у кого-нибудь, кому нужна техподдержка упал бы взгляд на открытку со смертью, то было бы совершенно не понятно, что это собственно она;

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

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

3. Организация:

  • я знаю многих предпринимателей, кто гордится своей организацией, гордятся своим продуктом или сервисом. При этом невозможно организовать что-то сносное, если нет продаж. Поэтому и не надо. Сначала надо продать и только потом уже пытаться что-то делать. Но 100% моих знакомых Айтишников хотят сначала что-то сделать вау, а потом уже искать способы продажи. У них имеется иррациональный оптимизм, что их продукт оторвут с руками довольные потребители. Предприниматели из неайтишной сферы склонны к этому не меньше.

Успех

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

Чтобы понять, почему у меня так легко это получилось прочтите две мои статьи:
1. Без ТЗ: https://habr.com/ru/articles/315046/
2. ТЗ высокой четкости: https://habr.com/ru/articles/320476/

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

И тут меня ждало еще одно открытие, это клиентоориентированность. Вот книги, которые мне больше всего запомнились:

1. Карл Сьюэлл, Пол Браун “Клиенты на всю жизнь”

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

2. Джон Шоул “Лояльный клиент. Как превратить разгневанного покупателя в счастливого за 60 секунд”

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

3. Барлоу Джанелл  “Жалоба - это подарок. Как сохранить лояльность клиентов в сложных ситуациях”

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

Обязательно читайте мою статью: как я научился выигрывать переговоры - там много полезного про работу с возражениями, конфликтологию и переговоры.

https://vc.ru/life/143321-ya-nauchilsya-vyigryvat-peregovory...

Обычный бизнес

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

Меня позвали, чтобы я организовал работу по разработке интерактивных презентаций. Я люблю программистов, а они меня - помните? В общем теперь у нас лучшая скорость и качество по программированию интерактивных презентаций.

Но собственники не унимались, они теперь хотели какой-то серийный продукт, который можно многократно продавать.

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

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

Барахолка

Мы собирались по пятницам: писали статьи, осваивали новые технологии (например на этих встречах мы впервые попробовали использовать ИИ), искали какие-то рандомные идеи и проверяли их.

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

Это все произошло благодаря книгам, которыми я тогда сильно увлекся. Это книги про Customer Development или сокращенно CustDev:

1. Боб Дорф и Стив Бланк “Стартап. Настольная книга основателя”

Это как раз ребята, которые сформулировали суть метода.

2. Синди Альварес “Как создать продукт, который купят: Метод Lean Customer Development.

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

3. Эрик Рис “Бизнес с нуля: Метод Lean Startup для быстрого тестирования идей и выбора бизнес-модели.”

Собственно этот метод мы и попробовали чтобы быстро протестировать нашу барахолку.

4. Роб Фитцпатрик “Спроси маму: Как общаться с клиентами и подтвердить правоту своей бизнес-идеи, если все кругом врут?“

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

Суть простая: сделайте прототип и продайте. Не продаётся? Ну и ладно, вы не обеднели, это же был просто прототип, сделайте другой! И так пока не купят, главное не тормозить, верить только деньгам на счету и не слушать сказки и обещания.

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

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

Серийный ИТ продукт

Часть наших интерактивных презентаций и корпоративных порталов мы делали для специалистов Административно Хозяйственного Отдела. Им нужна была https://карта-офиса.рф - интеллектуальная система управления офисом. Дело в том, что когда у вас даже один этаж на котором 100 рабочих мест, вы потихоньку начинаете сходить с ума. А если у вас 40 тысяч рабочих мест в 20-ти разных городах? Таблички вас не спасают, вам нужна визуализация. С такой визуализацией офис становится более понятным и управляемым. Ну и конечно это позволяет достичь экономических эффектов, если вы, конечно, умеете и главное хотите их считать.

Зацените название “Карта Офиса”, ведь я достойный ученик Траута и Райса? Мы сделали прототип, продали, доделали и снова продали и так по кругу. Во всем этом мне сильно помогла поведенческая экономика, CustDev и конечно же клиентоориентированность!

Сейчас у нас уже более 45-ти внедрений в крупных промышленных, финансовых, девелоперских компаниях. Вот некоторые из них: https://карта-офиса.рф/customers

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

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

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

Комментарии

Я внимательно читаю все комментарии, буду рад, если вы поделитесь со мной своим опытом: интересны и победы, и неудачи. Пробовали ли вы превратить обычный бизнес в ИТ компанию? Чем эта затея закончилась? С какими вы трудностями столкнулись?

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

Посвящение

Хочу посвятить эту статью людям, которые меня вдохновили, но их сейчас уже нет со мной: моему отцу и моему лучшему другу Алексею.

Анонсы

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

Консалтинг и семинары

После каждой статьи меня спрашивают об этом. На консалт могу взять 1-2 компании если будет химия. Сам организовывать семинар пока не хочу, но могу к кому-то сесть на хвост. Пишите в телегу: @mlenzovet или тут в личку

Читайте другие мои статьи:

1. Я научился выигрывать переговоры и заработал проблемы с сердцем

https://vc.ru/life/143321-ya-nauchilsya-vyigryvat-peregovory-i-zarabotal-problemy-s-serdcem

2. Без ТЗ: почему клиент не хочет его

https://habr.com/ru/articles/315046/

3. ТЗ высокой четкости

https://habr.com/ru/articles/320476/

4. Как научить продажника говорить с разработчиками

https://habr.com/ru/users/krivotester/publications/articles/

5. Как избавиться от умных сотрудников в вашей компании

https://habr.com/ru/articles/327126/

6. Изучение иностранных языков: живые учителя или интернет?

https://habr.com/ru/articles/137305/

Показать полностью 1
[моё] Бизнес IT Маркетинг Предпринимательство Малый бизнес Клиенты Услуги Сервис Программирование Программное обеспечение Длиннопост
7
8
Timeweb.Cloud
Timeweb.Cloud
1 год назад
Android Developers

Мое решение 3-х проблем MVx⁠⁠

Автор текста: Lynnfield

Итак, в прошлый раз я описал три проблемы, которыми, на мой взгляд, страдают все MVx и даже некоторые не MVx архитектуры. Если коротко, то это:

  • проблема остатка — при делении фичи на заявленные компоненты архитектуры остаётся либо «неделимая» часть фичи, либо лишние компоненты архитектуры;

Мое решение 3-х проблем MVx Разработка, Программирование, Android, Timeweb, Алгоритм, Программное обеспечение, Telegram (ссылка), Длиннопост
  • проблема масштабирования — при расширении фичи компоненты архитектуры начинают раздуваться, что усложняет дальнейшую поддержку;

Мое решение 3-х проблем MVx Разработка, Программирование, Android, Timeweb, Алгоритм, Программное обеспечение, Telegram (ссылка), Длиннопост
  • и проблема разрывов логики, когда из-за взаимодействия с UI логика разрывается на части, что тоже не помогает нам делать систему более цельной, предсказуемой и тестируемой.

Мое решение 3-х проблем MVx Разработка, Программирование, Android, Timeweb, Алгоритм, Программное обеспечение, Telegram (ссылка), Длиннопост

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

❯ Проблема остатка (Remainder issue)


Первый вопрос: что делать с остатком? Все просто — взять делитель поменьше, потому что чем меньше делитель, тем меньше остаток. Этому меня еще в школе научили. Но я столкнулся с тем, что это не работает с MVx архитектурами, потому что мой делитель, обычно, это набор определенных компонент, и введение новых — значит изменение архитектуры.

Возможно и вы с этим сталкивались, когда вводили всякие мапперы, делегаты, интеракторы (те, что репозитории репозиториев) и прочее. Помогли ли они мне? Нет. Лучшее решение, что я видел — это Flux- и ELM-like архитектуры, которые заявляют «чистую» функцию как единицу деления логики, но со всеми вытекающими отсюда удобствами и следующими за ними «эффектами».

Но решение проблемы остатка, даже если бы оно у меня было, не помогает мне решить проблему масштабирования.

❯ Проблема масштабирования (Scalability issue)


В прошлый раз я упоминал «интуитивный» подход к решению задачи масштабирования и рассказывал почему он не работает. По крайней мере не у меня.

А какой не интуитивный?

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

Так и в MVx архитектурах: можно было бы попробовать реализовывать доработки отдельно, а уже потом объединять их с существующей фичей, вместо того, чтобы вносить изменения в уже написанные компоненты. Что в прошлом не раз приводило меня к череде переписываний тестов, судорожному протыкиванию приложения на предмет того, что ничего не поменялось, и мольбам о том, чтобы очередной баг-репорт был не по моим изменениям.Но вот что я заметил, ведь именно такой подход, когда мы предпочитаем композицию изменениям, я и мои коллеги используем для Data-слоев. Например, новые источники данных оборачиваются в Репозитории, а потом комбинируются в Интеракторы. Но почему-то чем ближе мы подходим к UI-слою, тем больше начинаем изменять, а не комбинировать.

Чаще всего я вижу эту проблему как вечное переписывание тестов уже существующих компонент, или Presenter, ViewModel, Controller размером со вселенную, который даже трогать страшно, потому что что-то точно развалится.

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

Мое решение 3-х проблем MVx Разработка, Программирование, Android, Timeweb, Алгоритм, Программное обеспечение, Telegram (ссылка), Длиннопост

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

Мое решение 3-х проблем MVx Разработка, Программирование, Android, Timeweb, Алгоритм, Программное обеспечение, Telegram (ссылка), Длиннопост

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

❯ Проблема разрывов (Gaps issue)


И вот тут становится интересно. Все дело в Hello World. Мне все никак не дает покоя вопрос: какая у него архитектура?

Hello world


Я видел примеры Hello World в разных языках, фреймворках и архитектурах (кроме Open GL, конечно же), и у них не было проблем с его реализацией. Если не считать проблемой то, сколько усилий надо приложить, чтобы написать изначальный шаблон. Но, если результат одинаковый, не значит ли это, что разница только в том, сколько обвязок надо написать, чтобы Hello World работал? И нужны ли они? Тогда я стал думать: а что общего у всех этих реализаций Hello World в разных архитектурах? И как-то я пришел к мысли, что скорее всего правильный ответ — Алгоритм. И он до безобразия тривиален.

Мое решение 3-х проблем MVx Разработка, Программирование, Android, Timeweb, Алгоритм, Программное обеспечение, Telegram (ссылка), Длиннопост

И что интересно, у самого алгоритма нигде не написана архитектура в которой он должен быть имплементирован. Но это Hello World. Как я и сказал: он чересчур прост.

Более интересные примеры


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

Мое решение 3-х проблем MVx Разработка, Программирование, Android, Timeweb, Алгоритм, Программное обеспечение, Telegram (ссылка), Длиннопост

А вот еще интересное наблюдение: если мы немного обобщим алгоритм Hello World, отделив show от Hello World, то увидим, что он дважды появляется в алгоритме этого примера.

Все еще слишком просто, правда? Следующий учебный пример — работа со структурами данных. И в самом простом виде — это CRUD плюс “показать все” с хранением в списке (он же List). Этот пример, не очень интересный с точки зрения реализации, интересен тем, что он добавляет в предыдущий алгоритм композицию.

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

Мое решение 3-х проблем MVx Разработка, Программирование, Android, Timeweb, Алгоритм, Программное обеспечение, Telegram (ссылка), Длиннопост

Появление Gaps issue


Но что происходит даже с этими простыми программами, когда мы пытаемся перенести их в UI-среду?

Легче всего Hello World, потому что он просто обрастает кучей компонент, которые помогают ему “жить” в новой среде. Даже не интересно.

А вот Hello %user name% приходится куда сложнее. Беднягу размазывает по компонентам системы или архитектуры: в одном месте мы слушаем ввод имени, в другом показываем приветствие, а в третьем прописываем реакцию на введенное имя.

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

Мое решение 3-х проблем MVx Разработка, Программирование, Android, Timeweb, Алгоритм, Программное обеспечение, Telegram (ссылка), Длиннопост


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

Причина — асинхронность


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

Многие, если не все GUI-системы построены вокруг event loop, потому что нам надо одновременно и экран рисовать, и ввод от пользователя слушать. А чтобы сюда добавить еще и наш алгоритм, его придется разделить так, чтобы он хорошо встраивался в этот event loop.

Я уже не говорю о том, что мы вообще-то еще должны взаимодействовать с другими асинхронными системами. Кстати, с ними то, обычно, проблем и не возникает. А почему?

Решение — закрытие разрыва

Мое решение 3-х проблем MVx Разработка, Программирование, Android, Timeweb, Алгоритм, Программное обеспечение, Telegram (ссылка), Длиннопост

Обратим внимание на графикоподобную картинку, на которой я объяснял проблему разрывов в прошлый раз.

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

Мое решение 3-х проблем MVx Разработка, Программирование, Android, Timeweb, Алгоритм, Программное обеспечение, Telegram (ссылка), Длиннопост

Обычно это вызов какой-то “асинхронной” функции: корутины, async- или suspend- функции, уж простите мой котлинский, или какой-то функции с callback’ом, или функции возвращающей какой-нибудь Future, Promise или Single.

И вот вопрос: вызывая эту функцию с callback’ом, как часто мы задумываемся, что эта операция может вообще никогда не вернуться в этот callback? Лично я до недавнего времени считал, что управление гарантированно будет передано в наш callback. Не считая случаев “отмены”, конечно же. Но откуда у нас такая гарантия? Возможно все дело в реализации системы? Давайте “заглянем под капот” и посмотрим что же там на самом деле происходит.

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

Мое решение 3-х проблем MVx Разработка, Программирование, Android, Timeweb, Алгоритм, Программное обеспечение, Telegram (ссылка), Длиннопост

Так вот вопрос: а почему бы нам не повторить этот же трюк с UI?

На картинке это будет выглядеть как параллельный перенос: мы просто поднимем нашу линию, а вот тут, в нижней точке, вместо того чтобы разрывать логику и отдельно задавать на UI какое-то состояние и callback’и, сделаем функцию, которая отправляет запрос на UI и ждет от него ответа. Таким образом мы закрываем разрыв и теперь наша логика будет выглядеть как единое целое.

Мое решение 3-х проблем MVx Разработка, Программирование, Android, Timeweb, Алгоритм, Программное обеспечение, Telegram (ссылка), Длиннопост

Ничего сложного, мы даже не изобретаем что-то новое, но такой подход поможет нам взаимодействовать с UI, как с любой другой внешней системой, а не как с чем-то особенным. И вот моё видение того, как это могло бы работать и решать проблемы, описанные выше.

❯ Proposal


Давайте писать функции…

Да, может звучать нелогично, тем более, что я уже говорил о том, что это не помогает Flux- и ELM-like архитектурам, но я объясню. Начнем с проблемы остатка.

Влияние на решение проблемы остатка


Добавлю небольшую аналогию с математикой. Как я и говорил «архитектура» — это делитель. А чтобы при делении не оставалось остатка — нам нужно найти наибольший общий делитель. Чем и является функция, на мой взгляд. Чем больше я смотрю на реализации всех наших «архитектур», тем больше я вижу, что все они, по сути, просто один из способов удобнее объединять и специализировать функции (и тут я подразумеваю, что метод класса — это функция, которая иногда неявно принимает дополнительный аргумент).

Дальше лучше — проблема масштабирования.

Решение проблемы масштабирования


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

А что с разрывами?

Решение проблемы разрывов


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

❯ Концепт


Так что же я предлагаю?

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

Мое решение 3-х проблем MVx Разработка, Программирование, Android, Timeweb, Алгоритм, Программное обеспечение, Telegram (ссылка), Длиннопост

Во-вторых, у этой функции (композиции функций) должна быть возможность работать независимо от «сторонних» систем, поэтому я предлагаю вынести ее в свой поток, чтобы у нее была возможность спокойно выполняться, блокироваться при необходимости, параллелиться и тому подобное. Пусть будет “синхронной”. Обычно мне не надо, чтобы логика продолжала свое выполнение, когда она ждет какой-то ресурс. А если такое поведение нужно, то почему-бы его не описать его явно? И назвать бы этот поток Main, но имя уже “занято”. =)

В-третьих, хотя это и самый важный пункт, а у меня видимо есть тенденция оставлять все важное на потом, я предлагаю сосредоточиться на реализации логики приложений, а не экранов и виджетов. Как видите, с таким подходом нет разницы между слоем данных и пользователем. Есть только наша детерминированная логика и внешние системы, которые обмениваются данными через нее. Логика просто ходит между ними и предоставляет им некий контекст для принятия решения и набор возможных действий, а внешние системы в свою очередь “отвечают” нашей логике руководствуясь представленным контекстом. Это похоже на игру в шахматы, где внешние системы — игроки, а логика — доска с фигурами и правила игры.

Мое решение 3-х проблем MVx Разработка, Программирование, Android, Timeweb, Алгоритм, Программное обеспечение, Telegram (ссылка), Длиннопост

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

В конце концов, применив этот концепт, я хочу помочь всем нам проектировать и писать кроссплатформенные приложения в самом широком смысле этого слова: разрабатывая и реализуя end-to-end алгоритмы которые прозрачно перескакивают с бэкенда на фронт и обратно, которые не видят различия между разными видами фронтов, будь то Web, iOS или Android, или разными типами вроде UI, CLI, или TalkBack.

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

Увидимся.

  • Написано специально для Timeweb Cloud и читателей Пикабу. Больше интересных статей в нашем блоге на Хабре и телеграм-каналах (статьи и новости).

  • Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать наши проекты.

Показать полностью 14
Разработка Программирование Android Timeweb Алгоритм Программное обеспечение Telegram (ссылка) Длиннопост
1
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии