В том то и проблема в том что такие вещи очень хороши при нулевом зацеплении объектов в вакууме. В реальной сфере зацепление у объектов/функций почти никогда не нулевое. И даже не единичные. Даже если мы всегда обмазываемся DI, CI и прочими паттернами. И обычно они зацеплены на целый ряд сервисов и интерфейсов (и повезет если того же самого модуля). И изменение любого этого сервиса и интерфейса приводит к лавиообразной сложности поддержки тестового покрытия написанного методом copy-paste.
Смиритесь с избыточностью, если она поддерживает простоту.
О да... Этот метод очень хорошо работает если для разработки продукта использовать правило: write-once-modify-never. Иначе на этой избыточности можно хорошо прогореть, особенно если писать тесты для чтения. а не для тестирования. Недавно в подобном проекте делал исправление: добавил одно малюсенькое правило, которое зависит от дополнительного параметра в окружении. Всё бы хорошо было на бумаге: Посмотрел что с выключенным свойством все тесты не упали, написал пару тестов при включенном окружении - проверил правило. Но, прошлый программист с кюа пытались написать тесты именно выше написанным способом, а в окружении явно требовало указывать эти параметры. Из за чего мне пришлось вносить дефолтное поведение в более чем 3к тестов и писать ещё несколько тестов на новое правило. Забавное скажу вам занятие....
ты не поверишь. но это люди которые действительно натасканы на собес. они не валятся на шаг влево - шаг вправо. они всё верно отвечают. и делают это даже лучше, чем слабо подготовленный реальный мидл. В отличии от спеца, они очень хорошо грызли теорию а не практику. и статья именно про то, какие вопросы надо задать чтобы вывести собес из теоретической части в практическую, не скатываясь на лайфкодинг и другие ухищрения )
Ну во первых не экзамен, а общение. Экзамен это когда я вам полгода объясняю какую то вещь, потом даю список вопросов. Даю время подготовится и спрашиваю по этому списку. А тут нет ни процесса обучения, ни списка вопросов. И задача не проверить знания, а хочется найти этот красный треугольник вашего Опыта, и желательно не методом стресса, а методом - поговорить по душам, но только в очерченной мелом границе
Я не буду рекламировать этого человека и его группы, но в реальности последние 3-4 года всё чаще встречаются вчерашние выпускники, которые нацелены только на то чтобы пройти собеседование: приписали себе 3-4 года опыта, пораcспрашивали своих менторов о ЖОПП и реально рассказывают как они героически решали задачи в проектах. Но в реальности не отвечают на чисто житейские вопросы: найди ошибку.или задачи синтеза опыта
К сожалению, откладывание базовой оптимизации изначально закладывает мину замедленного действия, из за которого потом портится пользовательский опыт, и копится техдолг - очень опасная практика. Преждевременная переоптимизация это конечно зло, но ещё большее зло - не задумываться об оптимизации вообще.
а функции надо выделять на этапе разбора лексем первоначального выражения и выписывать их как унарный оператор на самом высоком уровне. Т.е. у нас есть выражение:
В период рассвета нейросетей, обучить SF и сделать промпт который бы генерировал нужный контент в pixel art 1080P, не такая неподъемная задача, как сделать 10к спрайтов...
Странно что для питона используется dict а для js используется множественные условия. Хотя и там и там можно писать примерно одинаково (разница в скобках):
function isValid(s) {
let stack = [];
let brackets = {
')': '(',
']': '[',
'}': '{'
}
for (let char of s) {
if ('([{'.includes(char)) {
stack.push(char);
} else if (')]}'.includes(char)) {
if (stack.length == 0 || brackets[char] != stack.pop()) {
return false;
}
}
}
return stack.length == 0;
}
Как только РКН отпустит удавку и вернет доступ к Инсте, сколько это проживет?
Зависит от того сколько времени РКН буде держать эту удавку. Если месяц-два, или инстаграм не будет сражаться за российского пользователя - это одно. А если оно в режиме ВПН продлится год-другой то вполне вероятно, что массовый пользователь не вернется.
Контексты можно тоже преопределять, притом хрен кто поймет в каком месте это поменяно. Особенно если использовать displayName по извращенному кодестайлу. И в отличии от props drilling, это точно хрен найдешь...
а ещё можно провайдер завязать на функционал, который в зависимость берет туеву кучу параметров от родителя, который формируется на основе магии вуду индийского пошива.
а ещё можно каждый компонент обвязать 5-6 различными контекстами (каждый компонент конечно своим списком контекстов), каждый контекст из которых инициализируется в разных родительских компонентах...
я ещё знаю пару способов использования контекстов, которые заставят вашего разработчика сделать харакири, но их приводить не буду, так как запрещены Женевской конвенцией.
Вряд ли. Между официальным вымиранием птерозавров и появлением первых хомо прошло около 20 миллионов лет. Тогда как человек охотился на мамонтов, то даже предок человека не мог жить с птерозаврами в одно время.
В том то и проблема в том что такие вещи очень хороши при нулевом зацеплении объектов в вакууме. В реальной сфере зацепление у объектов/функций почти никогда не нулевое. И даже не единичные. Даже если мы всегда обмазываемся DI, CI и прочими паттернами. И обычно они зацеплены на целый ряд сервисов и интерфейсов (и повезет если того же самого модуля). И изменение любого этого сервиса и интерфейса приводит к лавиообразной сложности поддержки тестового покрытия написанного методом copy-paste.
О да... Этот метод очень хорошо работает если для разработки продукта использовать правило: write-once-modify-never. Иначе на этой избыточности можно хорошо прогореть, особенно если писать тесты для чтения. а не для тестирования. Недавно в подобном проекте делал исправление: добавил одно малюсенькое правило, которое зависит от дополнительного параметра в окружении. Всё бы хорошо было на бумаге: Посмотрел что с выключенным свойством все тесты не упали, написал пару тестов при включенном окружении - проверил правило. Но, прошлый программист с кюа пытались написать тесты именно выше написанным способом, а в окружении явно требовало указывать эти параметры. Из за чего мне пришлось вносить дефолтное поведение в более чем 3к тестов и писать ещё несколько тестов на новое правило. Забавное скажу вам занятие....
Легко если есть тестовое покрытие на типы )
ты не поверишь. но это люди которые действительно натасканы на собес. они не валятся на шаг влево - шаг вправо. они всё верно отвечают. и делают это даже лучше, чем слабо подготовленный реальный мидл. В отличии от спеца, они очень хорошо грызли теорию а не практику. и статья именно про то, какие вопросы надо задать чтобы вывести собес из теоретической части в практическую, не скатываясь на лайфкодинг и другие ухищрения )
Ну во первых не экзамен, а общение. Экзамен это когда я вам полгода объясняю какую то вещь, потом даю список вопросов. Даю время подготовится и спрашиваю по этому списку. А тут нет ни процесса обучения, ни списка вопросов. И задача не проверить знания, а хочется найти этот красный треугольник вашего Опыта, и желательно не методом стресса, а методом - поговорить по душам, но только в очерченной мелом границе
Я не буду рекламировать этого человека и его группы, но в реальности последние 3-4 года всё чаще встречаются вчерашние выпускники, которые нацелены только на то чтобы пройти собеседование: приписали себе 3-4 года опыта, пораcспрашивали своих менторов о ЖОПП и реально рассказывают как они героически решали задачи в проектах. Но в реальности не отвечают на чисто житейские вопросы: найди ошибку.или задачи синтеза опыта
К сожалению, откладывание базовой оптимизации изначально закладывает мину замедленного действия, из за которого потом портится пользовательский опыт, и копится техдолг - очень опасная практика. Преждевременная переоптимизация это конечно зло, но ещё большее зло - не задумываться об оптимизации вообще.
потому как айтишники его уже завоевали
степень это оператор выше умножения.
а функции надо выделять на этапе разбора лексем первоначального выражения и выписывать их как унарный оператор на самом высоком уровне. Т.е. у нас есть выражение:
exp(1+x)*-2
Его надо распарсить на 2 массива
f1 = exp . [1, +, x]
[f1, *, -2]
далее преобразуем оба массива в обратную польскую
f1 = exp . [1, x, +] = 1 x + exp
f1 -2 *
И во втором выражении подменяем f1
1 x + exp -2 *
Унарный минус эо признак числа, а не оператор. Такие вещи должны быть выявлены на этапе разбиения на лексемы исходного выражения
В период рассвета нейросетей, обучить SF и сделать промпт который бы генерировал нужный контент в pixel art 1080P, не такая неподъемная задача, как сделать 10к спрайтов...
Странно что для питона используется dict а для js используется множественные условия. Хотя и там и там можно писать примерно одинаково (разница в скобках):
А вот калькулятор все делали, и подскажут и посмотреть есть куда
не надо спрашивать куда смотреть. лучше попросить кодревью от какого нибудь сениора...
Особенно бесят задачи на 9 часов. Сделал за 8+1, кодревью прошел и сидят целый день без работы. сцки...
draw.io на минималках?
Зависит от того сколько времени РКН буде держать эту удавку. Если месяц-два, или инстаграм не будет сражаться за российского пользователя - это одно. А если оно в режиме ВПН продлится год-другой то вполне вероятно, что массовый пользователь не вернется.
не самый легкий для изучения язык
Контексты можно тоже преопределять, притом хрен кто поймет в каком месте это поменяно. Особенно если использовать displayName по извращенному кодестайлу. И в отличии от props drilling, это точно хрен найдешь...
а ещё можно провайдер завязать на функционал, который в зависимость берет туеву кучу параметров от родителя, который формируется на основе магии вуду индийского пошива.
а ещё можно каждый компонент обвязать 5-6 различными контекстами (каждый компонент конечно своим списком контекстов), каждый контекст из которых инициализируется в разных родительских компонентах...
я ещё знаю пару способов использования контекстов, которые заставят вашего разработчика сделать харакири, но их приводить не буду, так как запрещены Женевской конвенцией.
Вряд ли. Между официальным вымиранием птерозавров и появлением первых хомо прошло около 20 миллионов лет. Тогда как человек охотился на мамонтов, то даже предок человека не мог жить с птерозаврами в одно время.
шарить не код, а интерфейсы (типы) в общую библиотеку вроде всегда было нормой.