Маленькая история с прошлой работы. Делали свертку финансовой(платежи, списания и тд) информации базе - переносили в отдельную, не связанную с продакшаном. Старые данные перенесли, осталось почистить таблички и тут человек, который это делал, перепутал в sql-запросе знак: вместо "=" и удалил все новые данные, включая текущий день. В 6 утра делался бекап - большую часть оттуда вытащили,- а вот с 6 и до момента очистки пришлось вручную по логам собирать, благо немного было.
у нас годами тянулась неуловимая проблема с тем, что пользователи иногда могли видеть чужие входящие. мы выпускали отладочные билды с доп логированием, пытались фиксить абсолютно все, трясли с админов клиента схему их сети, где какие сервера, как это все настроено, провели кучу брейнштормов. проблема оказалась в балансировщике ARR. под нагрузкой просто подменялись куки и ответ приходил от чужого запроса. больше мы не используем ARR :D
Когда Ты имеешь квалификацию, и можешь поделиться полезными продуктами с другими, проведя тесты, не стыдно за деньги рекламировать решения, которые помогут в работе. В общем Я за такую рекламу, а не то что сейчас показывают по телевизору, на большинстве сайтов, и каналах ютуб.
В фильме "Социальная сеть" Джесси Айзенберг отлично сыграл, но Марк явно не такой, в фильме он показан как принципиальный человек, а в реальности далек от персонажа.
Надо подумать, просто если дать какие-то рекомендации, то обязательно будут те, кто скажет - а здесь это работать не будет. Это действительно так, потому что рекомендации - это не правило и не закон. Я сделал пометку, постараюсь рассказать про это на Програмысли видеоуроки
Было дело, приложение писал с онлайн оплатами через SberAPI, в логи ответов писал в папку публичную, на тестовом шлюзе была отладка, потом переключил на боевой шлюз на продакшн, а логи забыл закрыть\отключить)) Но вовремя заметил, закрыл логи через .htaccess и убрал из них конфиденциальные данные. Да это страшно)))
Здравствуйте. У вас отличные ролики . Скажите пожалуйста какой Линукс ставит актуальный в 2021 году для обучения и применения для разработки в python и DevOps ???? Ещё вопрос стою перед выбором покупки MacBook Pro 16 (2019) i7 16/1tb или air m1 13 16/1tb цена на Авито оба устройства 130-140тр , какой взять для полноценной разработки python & devops и полноценной работы на Linux ?? Просто я правильно понимаю что установка Linux спомощью виртуальной машины на макбук не является полноценной операционной системой Linux, а всего лишь урезанная его версия и полноценно программировать на нём не получиться????
Раньше в работе больше сталкивался с centos, но теперь смотрю все больше u Ubuntu ставят не только на десктопы, но и сервера. Мне Ubuntu всегда нравился
Интересный фэйл - парень в названии процедуры postgres указал с вместо c. Тоесть с на кириллице вместо латиницы. Заметили за день до выкатки на прод. Час гадали почему процедура не найдена, хотя имя один в один правильное
У меня тоже саемое было, я тоже в названии метода использовал русскую С, но вычислили сразу же, до продакшена, потому что QA не смогли вызвать метод из командной строки. Правда ушло на поиски проблемы около часу. У меня все работало, а QA не может вызвать этот же метод. У меня работало, потому что я копировал метод, а QA набирал вручную
Было такое же: в названии роли доступа к одному из методов контроллера была русская С вместо C. Метод был недоступен, хотя у разработчика локально работало, потому что он и локально умудрился завести роль с русской С.
Автоматизируем аптеку, приехал наш инженер, инженер Сбербанка, развернули свое ПО, тестируем - безнал не работает. Подключается удаленно второй наш инженер. Втроем (!) несколько минут бегаем по настройкам - везде все правильно, а работать не хочет. И тут взгляд цепляется за название папки с ПО Сбера "cs552", а по негласному стандарту всегда было "sc552". Это сочетание стало настолько привычным, что глаз замылился.
try-catch можно использовать для обработки disposable. Using это же псевдоним для try finally {dispose}, но это решение не должно быть повсеместным, оно больше для особых решений.
Наоборот, using должен быть повсеместным потому, что он именно для закрытия disposible. Если ты используешь try catch, то помимо проблем ты еще и глушишь исключительные ситуации или вынужден будешь их перезапускать заново вот так: try { } catch { Dispoise() throw // перезапуск исключительной ситуауции } Если ты используешь using, то перезапускать exception не нужно
@@programisli finally, насколько я помню выполняется в любом случае после завершения блока try-catch. Но да, этой штукой нужно пользоваться только крепко подумав, предпочтительнее использовать using
Интересное видео:). Вот ты часто говоришь о написании запросов к бд и тут у меня возник вопрос: часто ли в проектах вы используете entity framework, или работаете с бд через sql запросы?
По поводу моего фейла. До сих пор стыдно. Клиент был очень хороший. Поэтому не стал ругаться. Или чего подобное. Но было очень неприятно. Мы для проекта клиента делали обновление. Что-то вроде системы, где за каждый поиск платятся деньги. И мы подключали новую услугу к имеющемуся проекту. Всё сделали, протестировали на отдельном сервере. Всё работало. Перенесли в прод. И только через месяц заметили, что почему-то за месяц 0 денег сняло с клиентов… Оказалось. Мы просто тупо забыли расскоментировать снятие денег…, и никто не заметил этого. Буквально все это пропустили. Клиент потерял деньги за месяц работы сервиса… Стыдно. Так как комментировал этот код я.
Ошибки бывают, но на них нужно учиться. В данном случае можно сделать вывод - тестировать и на рабочей системе тоже. За счет того, что мы после запуска сразу же тестировали и посмотрели на сумму денег, мы увидели проблему очень быстро.
По поводу комментирования кода, не знаю как сейчас, но я как-то делал игру на сайте, где за правильный ответ давайли 10 центов и я сделал защиту, чтобы народ не получал поинты дважды. Ушли в прод, а какой-то программист ради тестирования локально отключил защиту....
@@programisli Это было очень давно. Но с этим клиентом работаем до сих пор. Конечно такое я уже давно не делаю :) Но такой опыт в своё время очень серьезно заставил задуматься.
Странно, что клиент сам не стал проверять новый функционал. Мне кажется, что в первую очередь это в его интересах, чтобы фича работала. Особенно когда дело касается денег. Ещё вариант самим провести демо клиенту, обычно на таких встречах становятся заметны подобные проблемы (и не только) 😉
терпеть не могу продукты, которым впадлу указать честный прайс у себя на сайте. сразу попахивает колхозом, а вдруг реально фейсбук придет, а мы прдешевим..
Подобные продукты всегда используют такую ценовую политику, потому что она обычно гибкая и не от продешевить, а от сделать скидку. Если придет MS и скажется - закупаем 10000 лицензий сразу на 5 лет, давайте обсуждать и компания начнет обсуждать условия поставки. А если ты придешь к MS и скажешь, закупаю 10000 лицензий на 10 лет, какой ты ответ получишь? Идите на фиг, у нас вот ценник стоит.
@@programisli к примеру ? у нормальных вендоров всегда есть лицензии на небольшие и средние команды с явным ценником. и интерпрайз без цены, но с указанием, звоните, договоримся.
Во время тестов никто настоящие данные не присылает. Банк высылает тестовые данные из своей тестовой базы, которые содержали маленькие цифры и не вызвали подозрения
Никто не откажется. Если бы мы сразу не проверили результат, то не знаю, кто бы отвечал за такой косяк своей головой - я как программист или QA, потому что пропустили или банк, который неверно дал данные
Про null exception. Конечно, надо всё проверять. Вот только, когда тебе говорят: нам нужно завтра запускаться... И надо срочно доделать то-то и то-то и времени совсем нет на раздумья. Тут уже не про проверки думаешь. А как успеть... В таком аврале даже юнит тесты нет времени написать...
Привет. Я хз куда писать про эту тему. Напишу сюда. Что там за поползновения, типа "A.I." заменят программистов... уже написано им кучу кода. Шо за хрень?
У тебя реально талант рассказывать на камеру, спасибо тебе большое за видео и за историю!
Рассказывать реальные истории о том, что было в моем опыте мне проще всего
@@programisli это понятно, просто я за многими слежу ;) у тебя действительно очень круто получается
@@VanyaQA Поддерживаю. Однозначно
300 лайк был мой:)
Твои книги, особенно по ООП Delphi, очень помогли мне, когда учился в унике. Ты 😎🔥
Маленькая история с прошлой работы. Делали свертку финансовой(платежи, списания и тд) информации базе - переносили в отдельную, не связанную с продакшаном. Старые данные перенесли, осталось почистить таблички и тут человек, который это делал, перепутал в sql-запросе знак: вместо "=" и удалил все новые данные, включая текущий день. В 6 утра делался бекап - большую часть оттуда вытащили,- а вот с 6 и до момента очистки пришлось вручную по логам собирать, благо немного было.
Михаил, по вашим книгам начинал изучать программирование в нулевых (я их честно покупал в магазине), рад возможности сказать спасибо не только рублём)
Спасибо.
у нас годами тянулась неуловимая проблема с тем, что пользователи иногда могли видеть чужие входящие. мы выпускали отладочные билды с доп логированием, пытались фиксить абсолютно все, трясли с админов клиента схему их сети, где какие сервера, как это все настроено, провели кучу брейнштормов. проблема оказалась в балансировщике ARR. под нагрузкой просто подменялись куки и ответ приходил от чужого запроса. больше мы не используем ARR :D
Миша, от души! на шарпах не прогаю, но с npe и сложным легаси - прям в сердечко
Когда Ты имеешь квалификацию, и можешь поделиться полезными продуктами с другими, проведя тесты, не стыдно за деньги рекламировать решения, которые помогут в работе. В общем Я за такую рекламу, а не то что сейчас показывают по телевизору, на большинстве сайтов, и каналах ютуб.
Хе-хе... Не не не, лучше останусь в уютном game dev, чем идти в такой нервный энтерпрайз
хорошие примеры из практики
В фильме "Социальная сеть" Джесси Айзенберг отлично сыграл, но Марк явно не такой, в фильме он показан как принципиальный человек, а в реальности далек от персонажа.
Можешь снять видео про try catch, exceptions, error handling? Просто в видео упомянулось про это, хотелось бы послушать.
Надо подумать, просто если дать какие-то рекомендации, то обязательно будут те, кто скажет - а здесь это работать не будет. Это действительно так, потому что рекомендации - это не правило и не закон. Я сделал пометку, постараюсь рассказать про это на Програмысли видеоуроки
@@programisli Спасибо)
Завалить сервер facebook, вот это эпичный фейл. Интересно, что было с админами и программистами, которые завалили социальную сеть
try except... вырвалось у Михаила... Delphi невозможно забыть)
Хотя уже много лет прошло
Было дело, приложение писал с онлайн оплатами через SberAPI, в логи ответов писал в папку публичную, на тестовом шлюзе была отладка, потом переключил на боевой шлюз на продакшн, а логи забыл закрыть\отключить)) Но вовремя заметил, закрыл логи через .htaccess и убрал из них конфиденциальные данные. Да это страшно)))
Здравствуйте. У вас отличные ролики . Скажите пожалуйста какой Линукс ставит актуальный в 2021 году для обучения и применения для разработки в python и DevOps ????
Ещё вопрос стою перед выбором покупки MacBook Pro 16 (2019) i7 16/1tb или air m1 13 16/1tb цена на Авито оба устройства 130-140тр , какой взять для полноценной разработки python & devops и полноценной работы на Linux ??
Просто я правильно понимаю что установка Linux спомощью виртуальной машины на макбук не является полноценной операционной системой Linux, а всего лишь урезанная его версия и полноценно программировать на нём не получиться????
Раньше в работе больше сталкивался с centos, но теперь смотрю все больше u Ubuntu ставят не только на десктопы, но и сервера. Мне Ubuntu всегда нравился
А зачем тебе Linux на. Mac? macOS - сертифицированный Linux, в нем есть такая же командная строка, можно также использовать Python и devops
Интересный фэйл - парень в названии процедуры postgres указал с вместо c. Тоесть с на кириллице вместо латиницы. Заметили за день до выкатки на прод. Час гадали почему процедура не найдена, хотя имя один в один правильное
У меня тоже саемое было, я тоже в названии метода использовал русскую С, но вычислили сразу же, до продакшена, потому что QA не смогли вызвать метод из командной строки. Правда ушло на поиски проблемы около часу. У меня все работало, а QA не может вызвать этот же метод. У меня работало, потому что я копировал метод, а QA набирал вручную
Было такое же: в названии роли доступа к одному из методов контроллера была русская С вместо C. Метод был недоступен, хотя у разработчика локально работало, потому что он и локально умудрился завести роль с русской С.
Автоматизируем аптеку, приехал наш инженер, инженер Сбербанка, развернули свое ПО, тестируем - безнал не работает. Подключается удаленно второй наш инженер. Втроем (!) несколько минут бегаем по настройкам - везде все правильно, а работать не хочет. И тут взгляд цепляется за название папки с ПО Сбера "cs552", а по негласному стандарту всегда было "sc552". Это сочетание стало настолько привычным, что глаз замылился.
try-catch можно использовать для обработки disposable. Using это же псевдоним для try finally {dispose}, но это решение не должно быть повсеместным, оно больше для особых решений.
Наоборот, using должен быть повсеместным потому, что он именно для закрытия disposible. Если ты используешь try catch, то помимо проблем ты еще и глушишь исключительные ситуации или вынужден будешь их перезапускать заново вот так:
try {
}
catch {
Dispoise()
throw // перезапуск исключительной ситуауции
}
Если ты используешь using, то перезапускать exception не нужно
@@programisli finally, насколько я помню выполняется в любом случае после завершения блока try-catch. Но да, этой штукой нужно пользоваться только крепко подумав, предпочтительнее использовать using
добрый день, Вы написали книгу "биюлия C#"?
Было такое
@@programisli Книга супер, все понятно. для меня как для самоучки все доходчиво.
Еще веселые баги бывают с ненаписанным await перед асинхронным методом
Интересное видео:). Вот ты часто говоришь о написании запросов к бд и тут у меня возник вопрос: часто ли в проектах вы используете entity framework, или работаете с бд через sql запросы?
Всегда использовали SQL, сейчас я впервые работаю в компании, где используют Entity Framework
По поводу моего фейла. До сих пор стыдно. Клиент был очень хороший. Поэтому не стал ругаться. Или чего подобное. Но было очень неприятно. Мы для проекта клиента делали обновление. Что-то вроде системы, где за каждый поиск платятся деньги. И мы подключали новую услугу к имеющемуся проекту. Всё сделали, протестировали на отдельном сервере. Всё работало. Перенесли в прод. И только через месяц заметили, что почему-то за месяц 0 денег сняло с клиентов…
Оказалось. Мы просто тупо забыли расскоментировать снятие денег…, и никто не заметил этого. Буквально все это пропустили. Клиент потерял деньги за месяц работы сервиса… Стыдно. Так как комментировал этот код я.
Ошибки бывают, но на них нужно учиться. В данном случае можно сделать вывод - тестировать и на рабочей системе тоже. За счет того, что мы после запуска сразу же тестировали и посмотрели на сумму денег, мы увидели проблему очень быстро.
По поводу комментирования кода, не знаю как сейчас, но я как-то делал игру на сайте, где за правильный ответ давайли 10 центов и я сделал защиту, чтобы народ не получал поинты дважды. Ушли в прод, а какой-то программист ради тестирования локально отключил защиту....
@@programisli Это было очень давно. Но с этим клиентом работаем до сих пор. Конечно такое я уже давно не делаю :) Но такой опыт в своё время очень серьезно заставил задуматься.
Странно, что клиент сам не стал проверять новый функционал. Мне кажется, что в первую очередь это в его интересах, чтобы фича работала. Особенно когда дело касается денег.
Ещё вариант самим провести демо клиенту, обычно на таких встречах становятся заметны подобные проблемы (и не только) 😉
терпеть не могу продукты, которым впадлу указать честный прайс у себя на сайте. сразу попахивает колхозом, а вдруг реально фейсбук придет, а мы прдешевим..
Подобные продукты всегда используют такую ценовую политику, потому что она обычно гибкая и не от продешевить, а от сделать скидку. Если придет MS и скажется - закупаем 10000 лицензий сразу на 5 лет, давайте обсуждать и компания начнет обсуждать условия поставки.
А если ты придешь к MS и скажешь, закупаю 10000 лицензий на 10 лет, какой ты ответ получишь? Идите на фиг, у нас вот ценник стоит.
@@programisli к примеру ?
у нормальных вендоров всегда есть лицензии на небольшие и средние команды с явным ценником. и интерпрайз без цены, но с указанием, звоните, договоримся.
Про первую историю о кашбацке:
А тогда не было интеграционных тестов? Не были получены настоящие данные?
Во время тестов никто настоящие данные не присылает. Банк высылает тестовые данные из своей тестовой базы, которые содержали маленькие цифры и не вызвали подозрения
Я только ЗА такие кешбеки! 😁
Никто не откажется. Если бы мы сразу не проверили результат, то не знаю, кто бы отвечал за такой косяк своей головой - я как программист или QA, потому что пропустили или банк, который неверно дал данные
@@programisli Тот кто составлял ТЗ. Ты как программист сделал, согласно заданию. Тут ближе QA мог пропустить. если не на реальном сервисе проверяет
Про null exception. Конечно, надо всё проверять. Вот только, когда тебе говорят: нам нужно завтра запускаться... И надо срочно доделать то-то и то-то и времени совсем нет на раздумья. Тут уже не про проверки думаешь. А как успеть... В таком аврале даже юнит тесты нет времени написать...
Вот когда в аврале и некогда нормально тестировать код, вот тогда как раз и можно использовать анализаторы, чтобы они находили проблемы
А что там за история с шифровальщиком в Торонто? Что после этого дела общественный транспорт приостановился! Вот на днях.
Не слышал о такой, чтобы транспорт встал.
Привет. Я хз куда писать про эту тему. Напишу сюда. Что там за поползновения, типа "A.I." заменят программистов... уже написано им кучу кода. Шо за хрень?
Я пока не волнуюсь на эту тему. Программисты пока ещё нужны
Второй)
Всем хорошего просмотра)
Первый!!!
Второй!!!)