Muhamad Zununov
@VanquisherWinbringer
CIO
Информация
- В рейтинге
- Не участвует
- Откуда
- Россия
- Зарегистрирован
- Активность
Специализация
Chief Technology Officer (CTO), Chief information officer (CIO)
C#
Software development
Project management
Product management
Development management
Agile
Scrum
Kanban
Development of tech specifications
Scala
В общем, если кратко — результат работы советского дерьмового менеджмента.
В наследие от СССР нам осталось множество книг и брошюрок на самые разные темы — от разведения кроликов до постройки индукционных печей и фузоров Хирша в домашних условиях из подручных материалов.
Но вот чего вы не найдёте ни в одной такой брошюре — так это руководств по управлению командой. Способы выявления и гашения конфликтов, построение команды, слияние и разделение команд, организация работы… Накапливать и передавать другим эти знания почему-то не считали нужным.
Вот и выходило, что там, где в США конфликт между участниками команды был бы погашен в зародыше, советские менеджеры от сохи начинали чесаться не раньше, чем всё разрасталось до совершенно космических масштабов. И только когда уже вся команда вместо работы занималась откровенным саботажем и вредительством, просто чтоб досадить друг другу, набирая в итоге на два пожизненных и три расстрела, только тогда конфликт наконец разруливали, естественно сваливая всю вину на тех самых «антисоветских саботажников», а вовсе не на абсолютное неумение руководства не доводить до подобной катастрофы.
На самом деле нет никакой «задумки» в том, почему финансовая система такая. Всё проще — вокруг нас куча людей. Быть богаче их можно только делая что-то более уникальное. Покупка акций сама по себе не уникальна, а уникальные знания о финансовых рынках невозможно получить из статей на Хабре. Потому идея «купить акций и ничего не делая стать богатым» — полная наивность.
Есть всего 2 варианта быть богаче окружающих:
— удача. С вероятностью выиграть в лотерею можно выиграть в лотерею.
— уникальность. Если Вы умнее, больше работаете, больше знаете и т.д., то да, можете выделиться.
И это ответ и nanmen в том числе — когда покупка биткоинов стала не уникальна и доступна окружающим, это превратилось в лотерею.
Но аргументы, написанные выше, не столько против TDD, сколько против тестов вообще в определённых случаях.
Дело в том, что основной смысл в тестах — это фиксация поведения программы при определённых сценариях, чтобы не допустить регрессий при доработке программы. Также тесты играют роль документации. При это тесты не гарантируют корректность работы программы. Тесты, как и код, могут содержать ошибки. Тесты могут быть неполными даже при TDD.
Нужно ли писать тесты, если задача поисковая? Моё мнение — нет, потому что поведение программы постоянно меняется, а тесты, наоборот, его фиксируют. То есть придётся делать двойную работу: переписывать и код, и тесты. А если это обработка изображений, так затраты на тесты там вообще на порядки выше, чем на написание кода. Работоспособность алгоритмов намного проще проверить глазами.
Ну то есть тут уже всё становится индивидуально. Есть люди, кому проще писать код сразу с тестами — ок, пусть пишут. А если люди, кому это в тягость — пусть не пишут.
кубер не отменяет необходимости использовать кучу СТОРОННИХ решений. Потому что тот же сервис дискавери и балансировка в кубере — она подходит только для определенного класса задач — иначе приходится тащить тот же консул и строить балансировку самому. Аналогично с хранением секретов. Секреты в кубере в base64? Srsly? Тащим vault и получаем нормально управление жизненным циклом секретов, acl и все прочее
Что еще. Балансировка входа трафика в кубер. Что там? Ах, да — надо тащить MetalLB тот же, потому что на бареметал этот вопрос не продуман от слова совсем.
Блю-грин, канари и прочее — нет встроенных примитивов. Rolling Update Strategy костыль, причем лютый, который покрывает только базовый случай — нормальный A/B (или blue/Green) на нем не собрать, поэтому и появляются продукты вроде Flagger, в опеншифте там свои штуки и многое другое
А поскольку бесплатное скачивание платных статей — это пиратство, то Sci-Hub считается противоправным контентом. Как только доступ к нему станет полностью невозможным, про науку в России можно будет забыть.
Ещё примеры нужны или этого одного хватит?
Всегда отвечал на подобную глупость так — я и куриное яйцо снести не могу, но это не значит, что из-за этого я должен есть тухлые яйца.
Судя по вашим критериям — если вы не курица, то будете есть тухлые яйца, раз сами и таких не можете снести.
crate.io — шикарная штука которая совсем не упоминается на Хабре, но верю что выстрелит во всей красе. Ребята очень хорошую базу закрутили, жаль до релиза еще далековато.
Вы не можете иметь изменяемую ссылку на структуру и ее внутренность одновременно, потому что это эквивалентно двум изменяемым ссылкам на структуру.
Если вам такое нужно время от времени, то вы можете вынимать значение из структуры с помощью
mem::replace
, изменять его как отдельный объект вместе со структурой, а затем помещать измененное значение поля назад в структуру.Если же вам такое нужно постоянно, то придется использовать контейнерные типы для внутренней изменяемости, такие как
RefCell
:Запустить
Как вы можете видеть — это больно, но терпеть можно :)
Или использовать готовые решения, аля poeditor.com :)?
На работе мы используем Poeditor + для своих приложений, я написать мини скрипт на баше, который скачивает переводы и заменяет на то что в клиенте.
Используется для ios и андроид. Ещё голову забивать этим не хватало.
P/S: Если дерзко написал, прошу простить, просто статья такие эмоции вызвала.