Почему перечислять второй раз поля — плохо? Потому что возможна ситуация на скриншоте ⬆️ — поле
Почему вынести эту проверку на переданное значение
Систематических способа минимизировать ошибки в рантайме я знаю два, ТТ — как Тульский Токарев, только Типизация и Тесты.
Оба способа не гарантируют отсутствие ошибок, но позволяют вылавливать какое-то их количество на этапах до рантайма, то есть до пользователей. Чем лучше ТТ, тем меньше ошибок в рантайме.
Можно ли обойтись без типизации? Конечно, драматически увеличив количество тестов и проверок в коде, засорив код этими проверками.
Типизация помогает сократить количество тестов, потому что большой пласт ошибок выявляется на этапе проверки типов.
#python #it #codebetter
name в User переименовалось в username, а в типах параметра field осталось name. Система проверки типов не покажет ошибку при вызове print_user_name(user, "name"), а хотелось бы ошибку увидеть, так как поля name уже нет.Почему вынести эту проверку на переданное значение
field в блок try/except — плохо? Потому что это уведёт ошибку в runtime, а надо минимизировать ошибки в рантайме, ошибки в рантайме = грустящие пользователи.Систематических способа минимизировать ошибки в рантайме я знаю два, ТТ — как Тульский Токарев, только Типизация и Тесты.
Оба способа не гарантируют отсутствие ошибок, но позволяют вылавливать какое-то их количество на этапах до рантайма, то есть до пользователей. Чем лучше ТТ, тем меньше ошибок в рантайме.
Можно ли обойтись без типизации? Конечно, драматически увеличив количество тестов и проверок в коде, засорив код этими проверками.
Типизация помогает сократить количество тестов, потому что большой пласт ошибок выявляется на этапе проверки типов.
#python #it #codebetter
👍43🔥30❤2
О, ровно 5 лет назад, 10 декабря 2017го я снял свой первый видос на ютуб. Помню, как это было. Было очень интересно и очень тяжело:) Говорить в камеру непросто, потому как невольно смотришь на себя со стороны и понимаешь, что выглядишь сейчас как дурачок, говорящий сам с собой. Ощущение это прошло у меня много позже, после большого количества практики.
Старый офис, старый мак, старый фотик, молодой я:)
Счастлив, что всё не зря.
Спасибо вам!
Старый офис, старый мак, старый фотик, молодой я:)
Счастлив, что всё не зря.
Спасибо вам!
👍736🔥107🎉87❤71😁7
В вашей компании есть TDD?
Anonymous Poll
4%
Да, все строго долбим по TDD!
13%
Кое-где есть, худо-бедно!
32%
Никакого TDD!
50%
За TDD не скажу, но бананы есть, жёлтые!
👍35😁18🥰1
Вот люблю я ютуб за это!
К недавнему видосу, в котором помимо прочего говорится про DI и DI-контейнеры, Vadim Ryazanov написал комментарий: «в последнем примере на лицо сервис локатор. то есть некая функция ран сама дергает депенденси из контейнера которые ей нужны, что не торт».
И таки да! В таком сценарии это действительно Service Locator и антипаттерн. Углубился немного, почитал. Отличнейший блог, кстати. Последний пост от 2019го, надеюсь, у автора всё хорошо и он продолжит когда-нибудь писать дальше.
И ещё нашлась даже полноценная книга по DI.
Надо будет сделать отдельный материал в общем.
К недавнему видосу, в котором помимо прочего говорится про DI и DI-контейнеры, Vadim Ryazanov написал комментарий: «в последнем примере на лицо сервис локатор. то есть некая функция ран сама дергает депенденси из контейнера которые ей нужны, что не торт».
И таки да! В таком сценарии это действительно Service Locator и антипаттерн. Углубился немного, почитал. Отличнейший блог, кстати. Последний пост от 2019го, надеюсь, у автора всё хорошо и он продолжит когда-нибудь писать дальше.
И ещё нашлась даже полноценная книга по DI.
Надо будет сделать отдельный материал в общем.
👍103🔥19🥰2
Хорошие книги по информационным технологиям. Список не исчерпывающий, но есть с чего начать:)
https://youtu.be/dx7F7VqnsVQ
#books #IT #youtube #ботаним
https://youtu.be/dx7F7VqnsVQ
#books #IT #youtube #ботаним
YouTube
70 книг по IT, которые надо прочесть. Как писать хорошо, языки, тесты, БД, безопасность, soft skills
Хорошие книги по информационным технологиям. Список не исчерпывающий, но есть с чего начать:) https://botanim.to.digital/#popup:books
* Мой курс «Хардкорная веб-разработка» — https://course.to.digital
* Telegram — https://t0digital.t.me
0:00 Книги по информационным…
* Мой курс «Хардкорная веб-разработка» — https://course.to.digital
* Telegram — https://t0digital.t.me
0:00 Книги по информационным…
👍138🔥51❤9🎉3🥰2
В ботанском клубе выбрали следующей книгой «Теоретический минимум по Computer Science. Все что нужно программисту и разработчику», ссылка. Сижу про логические вентили, полусумматоры и сумматоры читаю. Интересно оччччень:)
Планируем до НГ прочитать-разобрать её. Старт на следующей неделе.
#ботаним
Планируем до НГ прочитать-разобрать её. Старт на следующей неделе.
#ботаним
👍80🔥15
Господа PHP’шники, а што, нет нонче замыканий в PHP:)?
Почему сие великолепие печатает 111, а не 123?
Питон печатает 123:
JS печатает 123 (красиво на JS, даа!):
Go печатает 123:
А PHP 111.
О — оригинальность!
Или я что-то делаю не так в PHP примере? Замена use на global заставит работать аналогично и PHP-пример, но это как-то кривенько совсем:)
<?php
function closure_example($counter) {
return function() use ($counter) {
$counter++;
return $counter;
};
};
$result = closure_example(0);
foreach (range(0,2) as $_){
print_r($result());
}
Почему сие великолепие печатает 111, а не 123?
Питон печатает 123:
def closure_example(counter):
def inner():
nonlocal counter
counter += 1
return counter
return inner
result = closure_example(0)
for _ in range(3):
print(result(), end="")
JS печатает 123 (красиво на JS, даа!):
const closure_example = counter => () => ++counter
const result = closure_example(0)
for (const _ of Array(3).keys()) {
console.log(result())
}
Go печатает 123:
package main
import "fmt"
func closureExample(counter int) func() int {
return func() int {
counter++
return counter
}
}
func main() {
result := closureExample(0)
for range [3]int{} {
fmt.Print(result())
}
}
А PHP 111.
О — оригинальность!
Или я что-то делаю не так в PHP примере? Замена use на global заставит работать аналогично и PHP-пример, но это как-то кривенько совсем:)
😁44👍16🥰1
Вопрос снят, таки есть способ заставить это работать и в PHP. Этот мир не потерян!
😁71👍13🎉3
По мотивам первой главы книги «Теоретический минимум по CS».
Вжух!
https://youtu.be/s7g7ZUCZ2q8
#youtube #IT
Вжух!
https://youtu.be/s7g7ZUCZ2q8
#youtube #IT
YouTube
Теоретический минимум по CS: логические вентили, булева алгебра, сумматоры. Читаем главу 1 «Основы»
Из книжного клуба «Ботаним!» https://botanim.to.digital
* Мой курс «Хардкорная веб-разработка» — https://course.to.digital
* Telegram — https://t0digital.t.me
0:00 Что происходит
1:01 Блок-схемы
2:31 Булева алгебра, почему и зачем
6:55 Логические вентили…
* Мой курс «Хардкорная веб-разработка» — https://course.to.digital
* Telegram — https://t0digital.t.me
0:00 Что происходит
1:01 Блок-схемы
2:31 Булева алгебра, почему и зачем
6:55 Логические вентили…
👍69🔥16❤7
Дядя Боб и SRP сначала сформулировал, потом сказал ой нет, чота вы все, балбесы, его неправильно понимаете, сформулируя-ка я его по-другому! И теперь принцип единой ответственности по идее должен звучать как принцип единого актора:) Правит правила на ходу!
https://xn--r1a.website/softwareengineervlog/1338
https://xn--r1a.website/softwareengineervlog/1338
Telegram
SOER
Дядюшка Боб еще в 2018 году рассказал о том, что большая часть программистов LSP понимают неправильно. Вероятно скоро может оказаться, что весь SOLID уже не такой правильный.
😁40👍7
Так... Поможем человеку?
Пинтагон это, предположу, место для выпивки. Гонят пинтами.
А Пентагон это сервис на Хачатуряна.
Зачем ему их ломать...
Пинтагон это, предположу, место для выпивки. Гонят пинтами.
А Пентагон это сервис на Хачатуряна.
Зачем ему их ломать...
😁284👍23🔥15🥰1🎉1
Следующей книгой будем ботанить «PostgreSQL. Основы языка SQL :: Евгений Моргунов», бумажная версия (ozon), бесплатная PDF версия, начинаем в первых числах января. Присоединяйтесь.
По Чистому коду у меня получилось 4.5 часа видео дополнений/комментариев. По Теоретический минимум по Computer Science 2 часа. Все эти материалы тоже доступны в группе по одной подписке.
За 1.5 месяца проработали 2 книги там. Мне нравится. Качаем скиллы. Основная польза не в моих комментариях, конечно, а в самом факте проработки материала — вместе, в одном ритме, с обсуждением этого материала, опечаток, корявых пояснений или, наоборот, хороших формулировок.
Касательно книги по постгресу. БД это важнейшая часть приложения. Ей мало внимания уделяют обычно на старте изучения ИТ и иногда не уделяют должного внимания на старте проектов, но чем взрослее проект, тем важнее БД становится. Код можно переписать, и бэк, и фронт, а БД это центровая часть, ядро. Двигать его непросто. Особенно когда на проекте уже много пользователей и данных. Недаром в микросервисах предлагается делать изолированные небольшие базки под каждый сервис.
БД структурирует данные, хранит их, даёт доступ к ним. Неважно, насколько чистый код у вас в приложении и насколько круты его алгоритмы, если в данных расколбас. Если крутыми алгоритмами и чистым кодом обработать расколбас, на выходе всё равно будет расколбас. Из-за отсутствия ограничений в БД записались кривые данные или вообще не записалась часть данных, и привет.
Плюс БД это почти всегда первое, что создаст проблемы с ростом нагрузки пользователями и нагрузки данными. Почти всегда не алгоритмы в вашем питон-коде систему положат, а БД.
И при всём этом многие уделяют много внимания языку приложения и обвязке вокруг этого — фреймворкам, ORM и прочему, но почти не уделяют внимание БД. Вот несложные селекты-джоины умеем писать и всё. Этого мало.
Кто хочет углубиться в постгрес — приходите. Я книгу полистал, там есть в частности для меня новый материал, который мне хочется проработать-систематизировать.
#books
По Чистому коду у меня получилось 4.5 часа видео дополнений/комментариев. По Теоретический минимум по Computer Science 2 часа. Все эти материалы тоже доступны в группе по одной подписке.
За 1.5 месяца проработали 2 книги там. Мне нравится. Качаем скиллы. Основная польза не в моих комментариях, конечно, а в самом факте проработки материала — вместе, в одном ритме, с обсуждением этого материала, опечаток, корявых пояснений или, наоборот, хороших формулировок.
Касательно книги по постгресу. БД это важнейшая часть приложения. Ей мало внимания уделяют обычно на старте изучения ИТ и иногда не уделяют должного внимания на старте проектов, но чем взрослее проект, тем важнее БД становится. Код можно переписать, и бэк, и фронт, а БД это центровая часть, ядро. Двигать его непросто. Особенно когда на проекте уже много пользователей и данных. Недаром в микросервисах предлагается делать изолированные небольшие базки под каждый сервис.
БД структурирует данные, хранит их, даёт доступ к ним. Неважно, насколько чистый код у вас в приложении и насколько круты его алгоритмы, если в данных расколбас. Если крутыми алгоритмами и чистым кодом обработать расколбас, на выходе всё равно будет расколбас. Из-за отсутствия ограничений в БД записались кривые данные или вообще не записалась часть данных, и привет.
Плюс БД это почти всегда первое, что создаст проблемы с ростом нагрузки пользователями и нагрузки данными. Почти всегда не алгоритмы в вашем питон-коде систему положат, а БД.
И при всём этом многие уделяют много внимания языку приложения и обвязке вокруг этого — фреймворкам, ORM и прочему, но почти не уделяют внимание БД. Вот несложные селекты-джоины умеем писать и всё. Этого мало.
Кто хочет углубиться в постгрес — приходите. Я книгу полистал, там есть в частности для меня новый материал, который мне хочется проработать-систематизировать.
#books
👍162🔥27❤14😁1
Гипер-лайфхак для всех магазинов!
Делюсь бесплатно! Только сегодня! Эксклюзив! Через час удалю!
Так как я имею некоторое отношение к eCommerce и на основании своего опыта в этой сфере, и на основании погруженности в тему благодаря нашему Salesbeat, хочу дать магазинщикам (из 20к присутствующих кто-то ведь имеет отношение, не правда ли?) супер-пупер-гипер лайфхак, унесущий бизнес-показатели магазина в космос!
Итак, что же нужно интернет-магазину для роста заказов? Может быть, новый ультра-современный дезигн? Быстрый удобный сайт? Бонусная программа?! Machine Learning?! Big data? Чудо-мобильное приложение?! Какое-то выезжающее говно на весь экран?!
Ниф-ниф наф-наф нах-нах!
Попробуйте-ка ТУПО ОТВЕЧАТЬ клиентам!
Воу! Очччень просто. Прям вот берём и делаем так, шобы на телефонные звонки отвечали, в чате авито отвечали, в чате на сайте отвечали — быстро и чётенько. И никаких гипер-технологий не надо, простое человеческое тепло на том конце телефона или чата. Вжууух!
Пытался я давеча макбук коллеге купить. В разрекламированном по всему ютубу biggeek мне тупо не ответили. Я по 5 минут честно на звонке висел несколько звонков подряд. Примерно четверть млн руб выручки ушла в магазин, где просто мне ответили. Реклама biggeek не помогла ему сделать транзакцию.
Летом покупал новую камеру и линзу. Снова несколько магазинов тупо не ответили, один магазин с авито ответил. Не очень люблю покупать на Савёловском рынке, но раз они единственные, кто ответил, заехал к ним и купил. Сейчас снова искал штуку, и снова только кто-то с Савёлы ответил мне, приехал и узнал тот же магазин, в котором был летом. Итого ~ 0.5 млн руб выручки им сделал за этот год — просто потому что мне ответили, быстро и по делу. Без роботов, без «ваш звонок до фига важен для нас», без мелодичных получасовых симфоний. «Здрасьте, есть эта штука, заеду щас заберу? Оплатить как?» «Да, заезжайте, наличка или перевод на карту». «Супер, сейчас буду». Всё.
У меня был магазин часов. Я заметил, что конверсия звонка в продажу близилась к 100%, соответственно пропущенный звонок, на который быстро не перезвонили, это чистая потеря выручки. Менеджеру был установлен штраф в размере прибыли среднего заказа за каждый неотвеченный звонок, по которому не было перезвона в течение, не помню, пары минут. Один штраф за всё время работы был реализован и все остальные клиентские обращения были чётко обработаны и проведены заказы. Элементарно.
Мы вообще мутили там сервис. Человек мог позвонить нам в 19ч вечера и через час-полтора получить свой заказ. Тогда ещё яндекс go, самоката и прочего не было, а мы уже это делали. Помню, как люди удивлялись.
Дааа, возможно я один такой вредный чебурашка, который хочет, чтобы ему отвечали, когда он хочет что-то уточнить. Аааа может и нет. Так или иначе те магазины, которые меня не игнорят, кажется, зарабатывают несколько больше тех, что мне не отвечают:)
Самая адовая хрень это чат на сайте, в котором никого нет. Людям рассказали, что вот поставьте скрипт на сайт и ваши продажи чудом увеличатся! Благо хоть не пообещали, что пиписка ещё вырастет от этого скрипта:) То, что там кто-то должен отвечать в этом чате, это людям не рассказали. Это ж оно работать тогда кому-то надо. Работать не хочецца, хочецца скриптов и магии! Хочется, чтобы дезигн, биг дата, машин лернинг и деньги сразу на счёт шли! Ну пазязя!
А оно вот нет. Работать надо. Бгг!
Делюсь бесплатно! Только сегодня! Эксклюзив! Через час удалю!
Так как я имею некоторое отношение к eCommerce и на основании своего опыта в этой сфере, и на основании погруженности в тему благодаря нашему Salesbeat, хочу дать магазинщикам (из 20к присутствующих кто-то ведь имеет отношение, не правда ли?) супер-пупер-гипер лайфхак, унесущий бизнес-показатели магазина в космос!
Итак, что же нужно интернет-магазину для роста заказов? Может быть, новый ультра-современный дезигн? Быстрый удобный сайт? Бонусная программа?! Machine Learning?! Big data? Чудо-мобильное приложение?! Какое-то выезжающее говно на весь экран?!
Ниф-ниф наф-наф нах-нах!
Попробуйте-ка ТУПО ОТВЕЧАТЬ клиентам!
Воу! Очччень просто. Прям вот берём и делаем так, шобы на телефонные звонки отвечали, в чате авито отвечали, в чате на сайте отвечали — быстро и чётенько. И никаких гипер-технологий не надо, простое человеческое тепло на том конце телефона или чата. Вжууух!
Пытался я давеча макбук коллеге купить. В разрекламированном по всему ютубу biggeek мне тупо не ответили. Я по 5 минут честно на звонке висел несколько звонков подряд. Примерно четверть млн руб выручки ушла в магазин, где просто мне ответили. Реклама biggeek не помогла ему сделать транзакцию.
Летом покупал новую камеру и линзу. Снова несколько магазинов тупо не ответили, один магазин с авито ответил. Не очень люблю покупать на Савёловском рынке, но раз они единственные, кто ответил, заехал к ним и купил. Сейчас снова искал штуку, и снова только кто-то с Савёлы ответил мне, приехал и узнал тот же магазин, в котором был летом. Итого ~ 0.5 млн руб выручки им сделал за этот год — просто потому что мне ответили, быстро и по делу. Без роботов, без «ваш звонок до фига важен для нас», без мелодичных получасовых симфоний. «Здрасьте, есть эта штука, заеду щас заберу? Оплатить как?» «Да, заезжайте, наличка или перевод на карту». «Супер, сейчас буду». Всё.
У меня был магазин часов. Я заметил, что конверсия звонка в продажу близилась к 100%, соответственно пропущенный звонок, на который быстро не перезвонили, это чистая потеря выручки. Менеджеру был установлен штраф в размере прибыли среднего заказа за каждый неотвеченный звонок, по которому не было перезвона в течение, не помню, пары минут. Один штраф за всё время работы был реализован и все остальные клиентские обращения были чётко обработаны и проведены заказы. Элементарно.
Мы вообще мутили там сервис. Человек мог позвонить нам в 19ч вечера и через час-полтора получить свой заказ. Тогда ещё яндекс go, самоката и прочего не было, а мы уже это делали. Помню, как люди удивлялись.
Дааа, возможно я один такой вредный чебурашка, который хочет, чтобы ему отвечали, когда он хочет что-то уточнить. Аааа может и нет. Так или иначе те магазины, которые меня не игнорят, кажется, зарабатывают несколько больше тех, что мне не отвечают:)
Самая адовая хрень это чат на сайте, в котором никого нет. Людям рассказали, что вот поставьте скрипт на сайт и ваши продажи чудом увеличатся! Благо хоть не пообещали, что пиписка ещё вырастет от этого скрипта:) То, что там кто-то должен отвечать в этом чате, это людям не рассказали. Это ж оно работать тогда кому-то надо. Работать не хочецца, хочецца скриптов и магии! Хочется, чтобы дезигн, биг дата, машин лернинг и деньги сразу на счёт шли! Ну пазязя!
А оно вот нет. Работать надо. Бгг!
👍392🔥39😁30❤15🎉4
Диджитализируй!
Photo
Вот, 21 октября сделал заметку по одной теме, которую ковырял тогда, сейчас понадобилось погрузиться в неё ещё раз — открыл, освежил, погнал делать. В очередной раз рекомендую всем делать заметки. Экономия времени и просто приятно, когда не надо два раза делать одну работу.
Как и где писать — не так важно. Notion, Obsidian, рукописно на iPad или в блокноте/тетради. Важно, чтобы вернуться можно было, когда понадобится.
PS. Это приложение GoodNotes для iPad. Хотя иногда что-то рукописное просто в приложении заметок пишу.
#tools
Как и где писать — не так важно. Notion, Obsidian, рукописно на iPad или в блокноте/тетради. Важно, чтобы вернуться можно было, когда понадобится.
PS. Это приложение GoodNotes для iPad. Хотя иногда что-то рукописное просто в приложении заметок пишу.
#tools
👍174🔥14❤3🥰3😁2
Позабыты хлопоты,
Остановлен век,
Вкалывают роботы,
А не человек!
А ты — доверяешь искусственному интеллехту?!
https://xn--r1a.website/rian_ru/189995
Остановлен век,
Вкалывают роботы,
А не человек!
А ты — доверяешь искусственному интеллехту?!
https://xn--r1a.website/rian_ru/189995
Telegram
РИА Новости
55% россиян заявили, что скорее доверяют искусственному интеллекту, при этом 51% сказали, что не могут объяснить, что это такое, а еще 13% впервые о нем слышат (ВЦИОМ).
Среди положительных эффектов развития искусственного интеллекта респонденты назвали освобождение…
Среди положительных эффектов развития искусственного интеллекта респонденты назвали освобождение…
❤20😁15👍12🔥1