Согласен с вами. В работе стараюсь придерживаться изоляции разных "стадий" жизни приложения, т.к. хоть проекты могут быть разными, но структура по сути одна и та же:
читаем из источника
применяем трансформации
пишем куда-либо
А если глобально в приложении, то:
инициализируем контекст
инициализируем конфигурацию (обычно мы используем внешний Key-Value, но есть варианты с SQL/JSON)
запускаем препроцессинг/процессинг/постпроцессинг (если это нельзя разделить по разным приложениям)
сохраняем статус во внешнем простом хранилище (файлы, бд или API)
Это конечно в общем и пальцем в небо и секрета тут никакого нет совсем, но позволяет покрывать тестами без каких-либо проблем все трансформации, что у нас есть.
Чтение и запись мы уже, конечно, покрываем с использованием Mock.
А вот все лишние обвязки мы стараемся убрать совсем, поэтому я не понял, зачем в статье упоминается pandas, но это, мне кажется, мелочи.
Я бы сказал, что вы не разобрались в том что и для чего нужно. На самом деле что это гумно, что то. Каждая ОСь имеет кучу недостатков и взгляд на вещи может зависить именно от задач.
К примеру на моем десктопе дома и на работе я сидел с линуксом около 7 лет. Не менял дистрибутив, ничего не переустанавливал, апдейты только по необходимости. Так сказать проблем не знал. До этого 5 лет с Макосью. По сути тоже проблем не знал. Сейчас уже 4 года с виндой 10.
Что в макоси у меня переодически были проблемы с библиотеками, лагами, убиванием SSD, перегревами из-за непонятной активности.
Что с линуксом были переодические проблемы на лэптопе из-за кривых дров производителей (дрова на трэкпад и видеокарту конфликтовали), а также кривой работе с памятью приводящей к зависанию всей машины.
Что с виндой появились проблемы на ровном месте: эта зараза сначала ставила мне дополнительный язык в раскладки сама, а теперь переключает языки через раз (хотя индикатор показывает переключение), или произвольно добавляет в раскладку еще один язык. Или сейчас мельком появляется сообщение на синем фоне «блокировка» и комп уходит в сон.
Все зависит от текущих задач. Играть в игрушки лучше на винде. Работать с Unix-like софтов лучше под линукс и писать такой же софт проще под Unix. Если надо окружение MS + Unix, То макось.
Так или иначе, каждому нужно, чтобы его девайс работал стабильно и вот в данную минуту выполнял заложенную задачу.
Но в любом случае, если вам нужно хоть чуть-чуть больше заложенного стандарта вам придется извращаться, читать мануалы, логи, тратить свое (или чужое) время и делать многие вещи руками (пусть даже чужими).
— Хотите под маком заняться ML? придется почитать о том, как заставить ваши библиотеки с этим работать (бубны, танцы, время). Сюда же все зависимости для скачивания, сборка пакетов из исходников (особенно если brew/ports уже не помогает), да много чего.
— Хотите работающее железо лэптопа в Linux? Велкам на сотни статей в инете. Часть сложного софта пишется для «здесь и сейчас» и по большей части жутко сырое, не адаптированное, медленное и забагованное. Несовместимость библиотек, неизолированность этих библиотек порождает иногда сильную головную боль, просто потому что вам надо запустить какое-то приложение.
— Даже по винде, половина решений от самого MS это пустышка, потому что оно работает только здесь и сейчас и не будет работать при повторной проблеме или вообще не будет лечить проблему, потому что «Стив» не понял что вы от него хотите, а по инструкции у него написано «ребут 3 раза, выключить и включить 3 раза». Слетающие настройки, крайне кривой интерфейс, невозможность кнопкой(ну или удалением файла конфига) сбросить настройки без головной боли.
Постоянно вылезающие нотификации или уведомления, которые блокируют окно, в котором вы работаете — это вообще бич всех операционок.
В свое время тоже хотел переехать в Прагу, но не сложилось. По итогу сейчас в Кракове. Еду покупаем в Biedronka, реже в Ашане. Продукты в основном все местные (Польские), цена ± от РФ и РБ. Качество нормальное, пробуем и находим, то, что нравится по качеству и вкусу.
Первое время было удивление, что колбасные изделия продаются небольшими порциями и нарезанные, палками очень редко.
Мясо в принципе достаточно дорого, но рыба еще дороже. После 2 лет в РБ, где карпа можно купить везде и всегда и цена будет около 3-4 долл за кг. Тут (в Кракове) несоразмерно дорого (3 злотых за 100 грамм, что превращается в 30 злотых и соответственно 8-10 баксов за рыбу).
В целом везде есть свою плюсы и минусы по уровню жизни, если где-то не нравится, то это не значит, что там плохо)
К сожалению, знание технологий тут поможет ненадолго. Хотите работать с большими данными? Будьте готовы к «вечно сырым продуктам», будьте готовы к тому, что вам нужен скилл пытливости и умение разобраться в коде/продукте/процессах.
В общем я о том, что помимо знания вышеуказанных продуктов потребуется включить еще с десяток конткретных (стэк AWS, стэк GCP, стэк Azure как минимум).
Еще туда же CAP теорема и хорошее понимание (или хотябы базовое) к чему и как применяется эта теорема в продуктах хранение, и кстати, отсюда понимать сильные и слабые стороны продукта.
В общем, помимо всего вышеуказанного, там еще за ширмой паровозик из вагонеток :)
А давайте еще уберем звездочки, т.е. они закрывают неполиткорректные слова, а также все слова, прочитывание которых наталкивает на оскорбительные и нецензурные слова…
я, возможно, повторюсь, но 50 тыс записей это семечки для эластика. На нормальной машине он способен выдавать и более объемные данные. Тем более структура у вас не то, чтобы сложная. К примеру частный случай использование эластика — хранение логов. Текстовой поиск по достаточно большому объему логов (около 2 Тб) занимает не так уж и много времени, учитывая, что мы используем кибану и по факту никто и никогда ничего не замерял(У нас редко когда вылазит ошибка кибаны о том, что реквест отвалился по таймауту в 300 ms).
Везде по разному. Могут и знать, но все зависит опять же от конечного человека.
Утром на скраме у всех есть понимание того, кто и что делает. Но, кто-то провалынил свою задачу в спортзале и не сделал или не доделал задачу к сроку. Работа у остальных заблокировалась.
Это все зависит от многих факторов, как и от личного разгильдяйства каждого сотрудника, так и от беспомощности ПМа. Но факт остается фактом, отсутствие дисциплины накладывает свой (порой существенный) отпечаток на работу, и на «моё расписание с 9 до 17»))
Дело же не только в строгом графике, дело еще в rapid разработке, когда есть некий график. И от работы каждого человека зависит последующая работа других сотрудников. Вы можете быть ограничены своими семейными делами, к примеру привезти/забрать детей из садика, билет на конкретное время в стрип-бар)) да что угодно. И так у многих, поверьте.
Строгих графиков я тоже не видел уже давно, но, я считаю, правила хорошего тона: прийти во-время, отработать положенное, пойти отдыхать.
*В качестве шутки* А вот это вот ваше туда-сюда: тренировки, лепка, аппликации, обед на пару часов в течении рабочего дня — это не серьезно))
Дисциплина — это хорошая тема
Смотрите сами. Вот от результатов вашей работы зависят остальные в вашей команде?
Представьте гипотетического индивида, он(она) тестер решила прийти на работу не как вы к 9 утра, а к 13:00. Ну вот звезды так сложились. Вы, уходите в 18:00, но вот 20 минут назад тестер решил проверить некий функционал на сервере, связанный с вашей работой (пусть не сегодняшней). Но, ах и увы, что-то пошло не так, сторонний API отвалился, место на диске кончилось, да неважно — НЕ РАБОТАЕТ.
И вот вас ловят в корридоре и со свитой в виде грозного начальства провожают обратно на место.
Мне кажется вполне такой себе пример))
Не обязательно, увы) Взрывное развитие технологий порождает кучу сырого софта, который на свой страх и риск используют все кому не лень. Посмотрите сколько всего «зашло» в продакшн за последние 5 лет. Стэк биг даты чего только стоит. Но для того и нужно 8 часов потратить на работе, чтобы найти все те мелкие и крупные баги в этом сыром софте и скилл тут, иногда, требуется огого какой)))
ЗЫ. Лучше чужие деньги не считать, таким макаром проще идти на вольные хлеба)
Мы говорим о недисциплинированных коллегах, которые в силу разных обстоятельств приходят к 10-11 часам и которые зависят от вашей работы. В конце рабочего дня, когда ваше время уже вышло вас могут догонять по корридору с просьбой доделать что-то, мол рабочий день не кончился, у всех остался еще один час (а то и 3) работы и мол, если вы не доделаете, то работа остальных будет стоять.
Помоему, взрывное развитие программирования и технологий должено как раз диктовать то, что ты должен уметь регулировать свою работу правильно. 8 часов в день на работу — это нормально, это нормально не только со стороны хорошего или плохого программиста, но и с точки зрения производительности и отдыха. По своему опыту могу сказать, что после длительной работы в овертайме в 8-16 часов в день(около 3-4 лет) наступает не то чтобы выгорание, а отвращение к работе в целом.
Я для себя как-то решил. Я прихожу на работу к 9:00 (лучше пораньше, чтобы разогнаться, кофе, чаи, письма и гит). Усиленно работаю до 12:00-13:00. Перерыв на обед 15 минут и дорабатываю до 17:00-17:30.
Это помогает понимать, что у тебя на разработку есть только 8 часов, не больше и не меньше. Это дает жесткое понимание, какие задачи выполнить сейчас или перенести на следующий день. Помогает крайне легко планировать не только работу, но и личную жизнь.
Одна проблема — менее дисциплинированные коллеги, зачастую, не понимают этого, они делают крайне удивительное лицо, когда ты уходишь ровно в 17:00.
Я бы написал:
1. Не берите с собой работу на выходные и праздники (читай пьянку)
2. Не надо брать с собой работу на выходные и праздники (читай пьянку)
3. Лучше не берите работу на выходные и праздники, а то будет хуже (читай пьянку)
4. Не обсуждайте серьезные вещи с клиентами вне работы
Я наверное придираюсь, но где пример запуска? где пример вывода? Зачем вам отдельная функция для приведения к нижнему регистру?
Почему бы не добавить определение кодировки консоли?
В заголовке речь о телеграм-боте — в примерах им и не пахнет)
Хорошо, что у нас только фиксированные трансформации :) правда, как раз на питоне
Согласен с вами. В работе стараюсь придерживаться изоляции разных "стадий" жизни приложения, т.к. хоть проекты могут быть разными, но структура по сути одна и та же:
читаем из источника
применяем трансформации
пишем куда-либо
А если глобально в приложении, то:
инициализируем контекст
инициализируем конфигурацию (обычно мы используем внешний Key-Value, но есть варианты с SQL/JSON)
запускаем препроцессинг/процессинг/постпроцессинг (если это нельзя разделить по разным приложениям)
сохраняем статус во внешнем простом хранилище (файлы, бд или API)
Это конечно в общем и пальцем в небо и секрета тут никакого нет совсем, но позволяет покрывать тестами без каких-либо проблем все трансформации, что у нас есть.
Чтение и запись мы уже, конечно, покрываем с использованием Mock.
А вот все лишние обвязки мы стараемся убрать совсем, поэтому я не понял, зачем в статье упоминается pandas, но это, мне кажется, мелочи.
К примеру на моем десктопе дома и на работе я сидел с линуксом около 7 лет. Не менял дистрибутив, ничего не переустанавливал, апдейты только по необходимости. Так сказать проблем не знал. До этого 5 лет с Макосью. По сути тоже проблем не знал. Сейчас уже 4 года с виндой 10.
Что в макоси у меня переодически были проблемы с библиотеками, лагами, убиванием SSD, перегревами из-за непонятной активности.
Что с линуксом были переодические проблемы на лэптопе из-за кривых дров производителей (дрова на трэкпад и видеокарту конфликтовали), а также кривой работе с памятью приводящей к зависанию всей машины.
Что с виндой появились проблемы на ровном месте: эта зараза сначала ставила мне дополнительный язык в раскладки сама, а теперь переключает языки через раз (хотя индикатор показывает переключение), или произвольно добавляет в раскладку еще один язык. Или сейчас мельком появляется сообщение на синем фоне «блокировка» и комп уходит в сон.
Все зависит от текущих задач. Играть в игрушки лучше на винде. Работать с Unix-like софтов лучше под линукс и писать такой же софт проще под Unix. Если надо окружение MS + Unix, То макось.
Так или иначе, каждому нужно, чтобы его девайс работал стабильно и вот в данную минуту выполнял заложенную задачу.
Но в любом случае, если вам нужно хоть чуть-чуть больше заложенного стандарта вам придется извращаться, читать мануалы, логи, тратить свое (или чужое) время и делать многие вещи руками (пусть даже чужими).
— Хотите под маком заняться ML? придется почитать о том, как заставить ваши библиотеки с этим работать (бубны, танцы, время). Сюда же все зависимости для скачивания, сборка пакетов из исходников (особенно если brew/ports уже не помогает), да много чего.
— Хотите работающее железо лэптопа в Linux? Велкам на сотни статей в инете. Часть сложного софта пишется для «здесь и сейчас» и по большей части жутко сырое, не адаптированное, медленное и забагованное. Несовместимость библиотек, неизолированность этих библиотек порождает иногда сильную головную боль, просто потому что вам надо запустить какое-то приложение.
— Даже по винде, половина решений от самого MS это пустышка, потому что оно работает только здесь и сейчас и не будет работать при повторной проблеме или вообще не будет лечить проблему, потому что «Стив» не понял что вы от него хотите, а по инструкции у него написано «ребут 3 раза, выключить и включить 3 раза». Слетающие настройки, крайне кривой интерфейс, невозможность кнопкой(ну или удалением файла конфига) сбросить настройки без головной боли.
Постоянно вылезающие нотификации или уведомления, которые блокируют окно, в котором вы работаете — это вообще бич всех операционок.
Первое время было удивление, что колбасные изделия продаются небольшими порциями и нарезанные, палками очень редко.
Мясо в принципе достаточно дорого, но рыба еще дороже. После 2 лет в РБ, где карпа можно купить везде и всегда и цена будет около 3-4 долл за кг. Тут (в Кракове) несоразмерно дорого (3 злотых за 100 грамм, что превращается в 30 злотых и соответственно 8-10 баксов за рыбу).
В целом везде есть свою плюсы и минусы по уровню жизни, если где-то не нравится, то это не значит, что там плохо)
В общем я о том, что помимо знания вышеуказанных продуктов потребуется включить еще с десяток конткретных (стэк AWS, стэк GCP, стэк Azure как минимум).
Еще туда же CAP теорема и хорошее понимание (или хотябы базовое) к чему и как применяется эта теорема в продуктах хранение, и кстати, отсюда понимать сильные и слабые стороны продукта.
В общем, помимо всего вышеуказанного, там еще за ширмой паровозик из вагонеток :)
Ну что за цирк то…
Утром на скраме у всех есть понимание того, кто и что делает. Но, кто-то провалынил свою задачу в спортзале и не сделал или не доделал задачу к сроку. Работа у остальных заблокировалась.
Это все зависит от многих факторов, как и от личного разгильдяйства каждого сотрудника, так и от беспомощности ПМа. Но факт остается фактом, отсутствие дисциплины накладывает свой (порой существенный) отпечаток на работу, и на «моё расписание с 9 до 17»))
Строгих графиков я тоже не видел уже давно, но, я считаю, правила хорошего тона: прийти во-время, отработать положенное, пойти отдыхать.
*В качестве шутки* А вот это вот ваше туда-сюда: тренировки, лепка, аппликации, обед на пару часов в течении рабочего дня — это не серьезно))
Дисциплина — это хорошая тема
Представьте гипотетического индивида, он(она) тестер решила прийти на работу не как вы к 9 утра, а к 13:00. Ну вот звезды так сложились. Вы, уходите в 18:00, но вот 20 минут назад тестер решил проверить некий функционал на сервере, связанный с вашей работой (пусть не сегодняшней). Но, ах и увы, что-то пошло не так, сторонний API отвалился, место на диске кончилось, да неважно — НЕ РАБОТАЕТ.
И вот вас ловят в корридоре и со свитой в виде грозного начальства провожают обратно на место.
Мне кажется вполне такой себе пример))
ЗЫ. Лучше чужие деньги не считать, таким макаром проще идти на вольные хлеба)
Я для себя как-то решил. Я прихожу на работу к 9:00 (лучше пораньше, чтобы разогнаться, кофе, чаи, письма и гит). Усиленно работаю до 12:00-13:00. Перерыв на обед 15 минут и дорабатываю до 17:00-17:30.
Это помогает понимать, что у тебя на разработку есть только 8 часов, не больше и не меньше. Это дает жесткое понимание, какие задачи выполнить сейчас или перенести на следующий день. Помогает крайне легко планировать не только работу, но и личную жизнь.
Одна проблема — менее дисциплинированные коллеги, зачастую, не понимают этого, они делают крайне удивительное лицо, когда ты уходишь ровно в 17:00.
1. Не берите с собой работу на выходные и праздники (читай пьянку)
2. Не надо брать с собой работу на выходные и праздники (читай пьянку)
3. Лучше не берите работу на выходные и праздники, а то будет хуже (читай пьянку)
4. Не обсуждайте серьезные вещи с клиентами вне работы
Смысл в скриншоте или тексте вывода есть всегда. Это придаст законченность вашему скрипту.
Почему бы не добавить определение кодировки консоли?
В заголовке речь о телеграм-боте — в примерах им и не пахнет)