Кстати, курс https://course.testdrivenlaravel.com/ очень рекомендую для всех кто пользуется Ларавелом. Это не только прекрасный курс по TDD, это еще и единственный видеокурс, который я с удовольствием изучил до конца, притом что ненавижу видеокурсы в частности и вообще видеоматериалы по программированию.
Да, материал за последнее время изрядно подорожал. Но ведь и Адам на свежем фото тоже прилично схуднул!
Да, материал за последнее время изрядно подорожал. Но ведь и Адам на свежем фото тоже прилично схуднул!
Testdrivenlaravel
Test-Driven Laravel
Learn to build robust, well-designed Laravel applications with TDD.
👍2
Посмотрел тут на днях минисериал-выживач про очередной попокалипсис, Earth Abides называется. Что могу сказать. В целом, барахло. Поэтому внизу будет некоторое количество спойлеров и ни капли сожалений о них.
Главный герой Ишервуд (сокращенно, Иш), проживая один где-то в кемпинге в горах, сует свои ручонки куда не надо, за что его кусает гремучая змея. Провалявшись три недели в змеиных приходах, Иш очухивается и возвращается в город. Где обнаруживает, что от очередного вируса умерли все и везде. Ну то есть совсем все и вообще везде.
И вот значит Иш начинает выживать, искать какой-либо еды чтоб пожрать, каких-то выживших, чтоб поговорить, и каких-нибудь событий, чтобы наполнить шесть часовых серий. И понемножку находит.
Каждая серия сделана как некая такая отдельная притча с налетом библейскости. То орды крыс на логово Иша нападают. То бабу он находит. То новые человеки присоединяются. И между каждым событием по несколько лет проходит. Некоторые притчи весьма красивы визуально, некоторые крайне драматичны. Отлично сняли например, как Иш по учебнику пытался разделать корову.
Но что ещё сильнее все объединяет — персонажи практически постоянно ведут себя как дебилы. Даже когда в поселение заезжает группа явно недобрых людей и кажется что вот сейчас-то уж точно научат героев как Родину любить, оказывается что недобрые люди — тоже все дебилы.
И даже главный «злодей» вместо того чтобы организовать подчинение Negan-style, расхаживает по лагерю безоружным и творит нехорошие дела с тупой наглой рожей, типа, и чо вы мне сделаете. В результате получает молотком по тупой безоружной башке, что видимо символизирует победу над злом.
Возможно, смысл в том, что Земля-матушка специально отобрала в качестве выживших всяких тупорылых. Ну, чтобы им точно соображалки не хватило вернуть всё «как было». Потому что главная идея у произведения именно такая — что всё было неправильно, и вот эти новые выжившие после вируса люди (которых буквально человек сто) должны теперь сделать как-то по-другому. Однако реализация этой идеи выглядит как и всё остальное — глупо.
Идею эту видимо придумали не авторы сериала, так как снят он по одноимённой книжке. К слову, название сериала Earth Abides, это отсыл к известной библейской фразе One generation goeth, and another generation cometh; but the earth abideth for ever. Что в нашем переводе означает примерно Одно поколение приходит, другое отходит, а земля пребывает веки.
Автор в своей книжке редуцировал эту фразу до Men go and come, but earth abides, наверное чтобы целевой аудитории было проще и понятнее. Ну а в переводе сериал вообще зафиксировали под названием «Земля без людей». Впрочем, жаловаться на переводы названий — все равно что на погоду.
Кстати, между прочим, легендарное The Dude abides из концовки Большого Лебовского — тоже отсыл к вышеупомянутой библейской цитате. Ну, только у братьев Коэнов получился шедевр на все времена. А сериал Earth Abides — фигня. Смотреть не рекомендую.
#сериалы
Главный герой Ишервуд (сокращенно, Иш), проживая один где-то в кемпинге в горах, сует свои ручонки куда не надо, за что его кусает гремучая змея. Провалявшись три недели в змеиных приходах, Иш очухивается и возвращается в город. Где обнаруживает, что от очередного вируса умерли все и везде. Ну то есть совсем все и вообще везде.
И вот значит Иш начинает выживать, искать какой-либо еды чтоб пожрать, каких-то выживших, чтоб поговорить, и каких-нибудь событий, чтобы наполнить шесть часовых серий. И понемножку находит.
Каждая серия сделана как некая такая отдельная притча с налетом библейскости. То орды крыс на логово Иша нападают. То бабу он находит. То новые человеки присоединяются. И между каждым событием по несколько лет проходит. Некоторые притчи весьма красивы визуально, некоторые крайне драматичны. Отлично сняли например, как Иш по учебнику пытался разделать корову.
Но что ещё сильнее все объединяет — персонажи практически постоянно ведут себя как дебилы. Даже когда в поселение заезжает группа явно недобрых людей и кажется что вот сейчас-то уж точно научат героев как Родину любить, оказывается что недобрые люди — тоже все дебилы.
И даже главный «злодей» вместо того чтобы организовать подчинение Negan-style, расхаживает по лагерю безоружным и творит нехорошие дела с тупой наглой рожей, типа, и чо вы мне сделаете. В результате получает молотком по тупой безоружной башке, что видимо символизирует победу над злом.
Возможно, смысл в том, что Земля-матушка специально отобрала в качестве выживших всяких тупорылых. Ну, чтобы им точно соображалки не хватило вернуть всё «как было». Потому что главная идея у произведения именно такая — что всё было неправильно, и вот эти новые выжившие после вируса люди (которых буквально человек сто) должны теперь сделать как-то по-другому. Однако реализация этой идеи выглядит как и всё остальное — глупо.
Идею эту видимо придумали не авторы сериала, так как снят он по одноимённой книжке. К слову, название сериала Earth Abides, это отсыл к известной библейской фразе One generation goeth, and another generation cometh; but the earth abideth for ever. Что в нашем переводе означает примерно Одно поколение приходит, другое отходит, а земля пребывает веки.
Автор в своей книжке редуцировал эту фразу до Men go and come, but earth abides, наверное чтобы целевой аудитории было проще и понятнее. Ну а в переводе сериал вообще зафиксировали под названием «Земля без людей». Впрочем, жаловаться на переводы названий — все равно что на погоду.
Кстати, между прочим, легендарное The Dude abides из концовки Большого Лебовского — тоже отсыл к вышеупомянутой библейской цитате. Ну, только у братьев Коэнов получился шедевр на все времена. А сериал Earth Abides — фигня. Смотреть не рекомендую.
#сериалы
👌1
В новостях все чаще появляются заголовки типа «Растратбанк уволил и больше не нанимает младших разработчиков». Внутри обычно намёк на повальное применение ИИ-ассистентов, дескать они легко заменяют младших разрабов (джунов) и экономят деньги. Ну с банками всё понятно, они не обеднеют. А что делать нам, маленьким студиям, скромным командам и компаниям-из-одного?
Если вы фанат отдачи строгих инструкций «Напиши класс A в котором есть вот этот список методов b(), c(), d(), e(), а также вот этот список тестов для них» и с пристрастием, до буквы проверяете результат, то только ИИ позволит сохранить остатки рассудка. Кодить надо строго одному, и желательно где-нибудь в глухом лесу.
Если же вы уже научились делегировать задачи в более крупную клетку и проверять качество исполнения, а не буквоедствовать, джун точно лучше ИИ. Особенно в долгосрочной перспективе — ведь он не всегда джуном будет.
Ну а на самом деле нужно и кодить с ИИ, и давать отдельные задачи джуну. Которому хотя бы на время стажировки лучше запретить самому включать ИИ. Чтобы тот не смущал неокрепший мозг своими электрическими овцами.
Если вы фанат отдачи строгих инструкций «Напиши класс A в котором есть вот этот список методов b(), c(), d(), e(), а также вот этот список тестов для них» и с пристрастием, до буквы проверяете результат, то только ИИ позволит сохранить остатки рассудка. Кодить надо строго одному, и желательно где-нибудь в глухом лесу.
Если же вы уже научились делегировать задачи в более крупную клетку и проверять качество исполнения, а не буквоедствовать, джун точно лучше ИИ. Особенно в долгосрочной перспективе — ведь он не всегда джуном будет.
Ну а на самом деле нужно и кодить с ИИ, и давать отдельные задачи джуну. Которому хотя бы на время стажировки лучше запретить самому включать ИИ. Чтобы тот не смущал неокрепший мозг своими электрическими овцами.
"Fernando this is extremely urgent!" пишет PM в слаке одной там команды.
Хорошее название для книги, статьи, или телеграм-канала. Также можно написать на футболке.
Хорошее название для книги, статьи, или телеграм-канала. Также можно написать на футболке.
Сначала у программистов был метод резинового утенка - чтобы объяснять несмышленому утенку как работает код (а у меня есть резиновый зомби).
Сегодня в качестве собеседника у нас есть чат жопотэ. Вот только непонятно, кто из нас теперь резиновый утенок?
Сегодня в качестве собеседника у нас есть чат жопотэ. Вот только непонятно, кто из нас теперь резиновый утенок?
🔥2
В конце февраля, как известно, закрывается Хабр.Фриланс. Уже штук восемь новых "замен" анонсировали отважные фрилансеры, так что плодовитость у платформы покруче чем у гидры.
Объявления на платформе я конечно мониторил, и даже регулярно, в надежде найти, как говорится, алмазы. Но честно говоря за пару лет мониторинга удалось найти всего один.
Зато это оказался целый питерский ИТМО. До сих пор сотрудничаем, пилим один проект для них. При случае как-нибудь расскажу, когда будет выглядеть достаточно презентабельно на мой строгий взгляд.
Объявления на платформе я конечно мониторил, и даже регулярно, в надежде найти, как говорится, алмазы. Но честно говоря за пару лет мониторинга удалось найти всего один.
Зато это оказался целый питерский ИТМО. До сих пор сотрудничаем, пилим один проект для них. При случае как-нибудь расскажу, когда будет выглядеть достаточно презентабельно на мой строгий взгляд.
👍3
Сходил тут как-то опять в стоматологию, и такое дело, товарищи. В общем, теперь дантисты безбожно перекладывают свою работу на обычных граждан!
Теперь у меня помимо обычной щётки - она кстати и так электрическая, чего вам ещё надо?! Есть также щётка монопучковая, нитки есть конечно, и даже ершики с ручками разной формы, чтобы промеж зубов втыкать, а затем вытаскивать.
И все эти процедуры необходимо производить постоянно. А другие специалисты говорят, что нужно еще вести телеграм-канал. И вот я спрашиваю вас, с телефоном в одной руке и тремя разными тюбиками с пастой в другой, - а жить-то когда, братцы?!
Теперь у меня помимо обычной щётки - она кстати и так электрическая, чего вам ещё надо?! Есть также щётка монопучковая, нитки есть конечно, и даже ершики с ручками разной формы, чтобы промеж зубов втыкать, а затем вытаскивать.
И все эти процедуры необходимо производить постоянно. А другие специалисты говорят, что нужно еще вести телеграм-канал. И вот я спрашиваю вас, с телефоном в одной руке и тремя разными тюбиками с пастой в другой, - а жить-то когда, братцы?!
😁4
Между тем пару дней назад незаметно начался третий сезон Ричера, отличного остросюжетного сериала про мужских мужиков и женских женщин, что не так уж часто в наше время и встретишь.
#сериалы
#сериалы
👍2🤔1
Иногда смотришь на реализацию и думаешь - как же может так ум за разум зайти.
1. Берем все материалы с признаком A (их много, десятки процентов от всех материалов вообще) и формируем батч для удаления признака А из них.
2. Теперь берем все материалы вообще и
3. Теперь идем по каждому материалу - не в батче, в цикле, и смотрим (через пересечение нескольких терминов таксономии), должен ли данный материал получить обратно признак A.
4. Только теперь ❗❗❗ формируем батч, чтобы собственно присвоить всем найденным таким образом материалам признак А.
Интересно, зачем тут вообще батчи, если на пунктах 2-3 всё равно запрос убьется?
Почему нельзя просто сделать батч по всем материалам, который для каждого отдельного материала делает 1, 3 и 4 и будет не очень быстро, но довольно стабильно работать?
1. Берем все материалы с признаком A (их много, десятки процентов от всех материалов вообще) и формируем батч для удаления признака А из них.
2. Теперь берем все материалы вообще и
Node::loadMultiple() 😱3. Теперь идем по каждому материалу - не в батче, в цикле, и смотрим (через пересечение нескольких терминов таксономии), должен ли данный материал получить обратно признак A.
4. Только теперь ❗❗❗ формируем батч, чтобы собственно присвоить всем найденным таким образом материалам признак А.
Интересно, зачем тут вообще батчи, если на пунктах 2-3 всё равно запрос убьется?
Почему нельзя просто сделать батч по всем материалам, который для каждого отдельного материала делает 1, 3 и 4 и будет не очень быстро, но довольно стабильно работать?
Конспирологические сериалы плодятся в последнее время как грибы, на днях появился и был просмотрен минисериал Zero Day.
На этот раз, рептилоиды, иллюминаты и неизвестные спецслужбы хотят растоптать американскую демократию и съесть мозги Роберта де Ниро. Для чего все время включают ему отличную песню Who killed Bambi? легендарных Sex Pistols. Изначальный рейтинг 6/10 на imdb в момент выхода похож на правду, история откровенно слабая, но потом рептилоиды подсуетились и нарисовали 7/10.
Так или иначе, кому нравятся сериалы про политику и теории заговора — рекомендую Secret State 2012 года с Габриэлом Бирном в главной роли. А тут смотреть особо не на что.
#сериалы
На этот раз, рептилоиды, иллюминаты и неизвестные спецслужбы хотят растоптать американскую демократию и съесть мозги Роберта де Ниро. Для чего все время включают ему отличную песню Who killed Bambi? легендарных Sex Pistols. Изначальный рейтинг 6/10 на imdb в момент выхода похож на правду, история откровенно слабая, но потом рептилоиды подсуетились и нарисовали 7/10.
Так или иначе, кому нравятся сериалы про политику и теории заговора — рекомендую Secret State 2012 года с Габриэлом Бирном в главной роли. А тут смотреть особо не на что.
#сериалы
👍1
20 лет работаю с Drupal, всё не могу привыкнуть. Почему, ну почему у материалов название - title, а у тегов таксономии название - name? Бесит аж кушать не могу!
😁4
На днях в соцсетях чуть-чуть пошумела история про 17-летнего мальчика, который прошел все собесы на должность тимлида в команду программистов, а потом его не взяли. Ну, потому что он на собесах умолчал, что ему 17 лет. Потому что видимо у него всё спросили, а паспорт не спросили. Как там в свежем Ричере было:
Эксперты по всему на свете, коими как известно Интернет наполнен под завязку, немедленно зашумели: глупцы! Эйджисты! Такого толкового мальчика нужно было брать несмотря ни на что! Ведь он прошел собеседование!!!11
У экспертов, понятно, всё просто. А как обстоят дела в реальной жизни?
А в реальной жизни, во-первых, компании придется столкнуться с особенностями трудового законодательства при приеме на работу несовершеннолетних. Возможно, это не так трудно, как может показаться, но немедленно возникает вопрос: а оно нам надо?
Во-вторых, и возможно это было основной мотивацией не брать мальчика, сразу возникает вопрос: а как моя команда матерыхволосатых бородатых разногрейдовых разрабов будет слушать указания 17-летнего пацана, и будет ли вообще? Возможно вы скажете, что это наверно плохая команда, если не будет внимать авторитету прошедшего собеседование мальчика. Ну давайте предположим, что да, плохая. Однако
- эта команда существует
- она уже трудоустроена и получает зарплаты
- она уже работает над проектом, то есть в нём разбирается.
Поэтому решение "что делать с кандидатом" принять гораздо легче, чем "что делать с командой". Он ведь наверное не единственный кандидат, правда?
В третьих, возникает еще более пагубная проблема. А что если матерые бородатые программисты будут не слушать указания мальчика, а наоборот - сами им будут манипулировать? Проталкивать кривые мерджи в код? Игнорировать линтеры всякие? Навязывать свое видение архитектуры?
Конечно, в воображении экспертов мальчик со всем этим справится, ведь он прошел собеседование. Но знаете, меня когда-то в первый раз позвали тимлидом в клёвую международную команду. Так вот они посмотрели страничку на апворке, увидели >10 лет опыта работы с системой, и предложили. Было одно короткое интервью где меня спросили что я делал с этой системой, я сказал, что делал всё, и вообще офигенный специалист, и меня тут же взяли. Никаких психотестов, никаких вообще лишних вопросов. У меня-то правда опыт руководства уже на тот момент был, все-таки лет мне было примерно в два раза больше, чем мальчику. А вот где этот опыт взял мальчик - скорее всего никто и не спрашивал.
Как-то так.
- But first a little test.
- What am I supposed to do with that?
- You're gonna play Russian roulette, asshole.
- Federal law prevents you from asking me if I'm married during a job interview, so I'm pretty sure this isn't allowed.
Эксперты по всему на свете, коими как известно Интернет наполнен под завязку, немедленно зашумели: глупцы! Эйджисты! Такого толкового мальчика нужно было брать несмотря ни на что! Ведь он прошел собеседование!!!11
У экспертов, понятно, всё просто. А как обстоят дела в реальной жизни?
А в реальной жизни, во-первых, компании придется столкнуться с особенностями трудового законодательства при приеме на работу несовершеннолетних. Возможно, это не так трудно, как может показаться, но немедленно возникает вопрос: а оно нам надо?
Во-вторых, и возможно это было основной мотивацией не брать мальчика, сразу возникает вопрос: а как моя команда матерых
- эта команда существует
- она уже трудоустроена и получает зарплаты
- она уже работает над проектом, то есть в нём разбирается.
Поэтому решение "что делать с кандидатом" принять гораздо легче, чем "что делать с командой". Он ведь наверное не единственный кандидат, правда?
В третьих, возникает еще более пагубная проблема. А что если матерые бородатые программисты будут не слушать указания мальчика, а наоборот - сами им будут манипулировать? Проталкивать кривые мерджи в код? Игнорировать линтеры всякие? Навязывать свое видение архитектуры?
Конечно, в воображении экспертов мальчик со всем этим справится, ведь он прошел собеседование. Но знаете, меня когда-то в первый раз позвали тимлидом в клёвую международную команду. Так вот они посмотрели страничку на апворке, увидели >10 лет опыта работы с системой, и предложили. Было одно короткое интервью где меня спросили что я делал с этой системой, я сказал, что делал всё, и вообще офигенный специалист, и меня тут же взяли. Никаких психотестов, никаких вообще лишних вопросов. У меня-то правда опыт руководства уже на тот момент был, все-таки лет мне было примерно в два раза больше, чем мальчику. А вот где этот опыт взял мальчик - скорее всего никто и не спрашивал.
Как-то так.
🤔3
Неплохое про оценки и человекочасы
https://habr.com/ru/articles/887990/
Проблемы с оценками, кстати, нередко растут из плохой или недостаточной аналитики.
https://habr.com/ru/articles/887990/
Проблемы с оценками, кстати, нередко растут из плохой или недостаточной аналитики.
Хабр
Как наладить управление ИТ командой, не привлекая внимания санитаров (про оценки и списания)
Неправильный учет ведет к иллюзии контроля Я давно наблюдаю, как ломаются копья в вечных спорах: " Нужно ли оценивать задачи? " и " Нужно ли списывать время? ". Мне кажется, я нашёл тот баланс,...
🔥2
Можно сколько угодно читать и писать литературу о тимлидстве, менеджменте, чистом коде и правильной разработке. Но только массовые расстрелы спасут нас от разработчиков, которые читают только заголовок задачи. И тут же задают вопрос, ответ на который написан прямо под заголовком. И конечно ничего не делают, пока не получат ответ.
😁3
This media is not supported in your browser
VIEW IN TELEGRAM
Недавно писал, что очень неплохо получается с помощью ИИ делать юнит- и фича-тесты. А в этой заметке решил разобрать подробнее, на примере, как это выглядит.
Для определенности уточню, что использую я плагин Codeium для Visual Studio Code под Linux, тариф бесплатный. Никаких дополнительных настроек не применял, на сайте указано что плагином используются Chat GPT, Claude, DeepSeek и Gemini. Проект, с которым я работаю, написан на Laravel, в нём есть такая функция — на определенный route можно отправить post-запрос с сообщением, и это сообщение будет отправлено телеграм-ботом в соотвествующий чат.
Эта функция уже написана, на неё есть тесты, и она работает. А в данном примере мы создадим feature-тест, проверяющий ограничение на количество сообщений в день в соответствии с тарифным планом пользователя. Такого функционала в проекте еще нет, я его хочу создать в соответствии с методикой TDD. То есть сначала написав тест, а затем последовательно запуская его и исправляя появившиеся ошибки.
Вот для написания данного feature-теста я и применю ИИ. Открываем подходящий для теста файл, жмём Ctrl+I. Чат жопотэ, поехали!
(к сожалению примеры с кодом в телеграме выглядят не очень, узенько как-то и читать неудобно даже в веб-версии, поэтому полный материал по ссылке на сайте)
https://graker.ru/news/2025/03/06/ai-feature-testing-example
Для определенности уточню, что использую я плагин Codeium для Visual Studio Code под Linux, тариф бесплатный. Никаких дополнительных настроек не применял, на сайте указано что плагином используются Chat GPT, Claude, DeepSeek и Gemini. Проект, с которым я работаю, написан на Laravel, в нём есть такая функция — на определенный route можно отправить post-запрос с сообщением, и это сообщение будет отправлено телеграм-ботом в соотвествующий чат.
Эта функция уже написана, на неё есть тесты, и она работает. А в данном примере мы создадим feature-тест, проверяющий ограничение на количество сообщений в день в соответствии с тарифным планом пользователя. Такого функционала в проекте еще нет, я его хочу создать в соответствии с методикой TDD. То есть сначала написав тест, а затем последовательно запуская его и исправляя появившиеся ошибки.
Вот для написания данного feature-теста я и применю ИИ. Открываем подходящий для теста файл, жмём Ctrl+I. Чат жопотэ, поехали!
(к сожалению примеры с кодом в телеграме выглядят не очень, узенько как-то и читать неудобно даже в веб-версии, поэтому полный материал по ссылке на сайте)
https://graker.ru/news/2025/03/06/ai-feature-testing-example
Graker.Ru
Пример разработки feature-теста с помощью ИИ
Недавно писал, что очень неплохо получается с помощью ИИ делать юнит- и фича-тесты. А в этой заметке решил разобрать подробнее, на примере, как это выглядит.
Для определенности уточню, что использую я плагин Codeium для Visual Studio Code под Linux, тариф…
Для определенности уточню, что использую я плагин Codeium для Visual Studio Code под Linux, тариф…
🔥4